diff --git a/.all-contributorsrc b/.all-contributorsrc index f9a6b749141c..838b35ebe549 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -751,6 +751,33 @@ "contributions": [ "code" ] + }, + { + "login": "stevenshan", + "name": "Steven Shan", + "avatar_url": "https://avatars.githubusercontent.com/u/3723174?v=4", + "profile": "https://github.com/stevenshan", + "contributions": [ + "code" + ] + }, + { + "login": "barryoneill", + "name": "Barry O'Neill", + "avatar_url": "https://avatars.githubusercontent.com/u/885049?v=4", + "profile": "https://github.com/barryoneill", + "contributions": [ + "code" + ] + }, + { + "login": "akiesler", + "name": "Andy Kiesler", + "avatar_url": "https://avatars.githubusercontent.com/u/4186292?v=4", + "profile": "https://github.com/akiesler", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/.brazil.json b/.brazil.json index 8e0266e6e537..9059e5646031 100644 --- a/.brazil.json +++ b/.brazil.json @@ -30,6 +30,7 @@ "url-connection-client": { "packageName": "AwsJavaSdk-HttpClient-UrlConnectionClient" }, "utils": { "packageName": "AwsJavaSdk-Core-Utils" }, "imds": { "packageName": "AwsJavaSdk-Imds" }, + "crt-core": { "packageName": "AwsJavaSdk-Core-CrtCore" }, "dynamodb": { "packageName": "AwsJavaSdk-DynamoDb" }, "waf": { "packageName": "AwsJavaSdk-Waf" }, @@ -97,7 +98,7 @@ "com.fasterxml.jackson.jr:jackson-jr-objects": { "packageName": "Maven-com-fasterxml-jackson-jr_jackson-jr-objects", "packageVersion": "2.11.x" }, "com.fasterxml.jackson.jr:jackson-jr-stree": { "packageName": "Maven-com-fasterxml-jackson-jr_jackson-jr-stree", "packageVersion": "2.11.x" }, "com.jayway.jsonpath:json-path": { "packageName": "JMESPathJava", "packageVersion": "1.0" }, - "com.squareup:javapoet": { "packageName": "Maven-com-squareup_javapoet", "packageVersion": "1.11.x" }, + "com.squareup:javapoet": { "packageName": "Maven-com-squareup_javapoet", "packageVersion": "1.13.x" }, "com.typesafe.netty:netty-reactive-streams": { "packageName": "Netty4", "packageVersion": "4.1" }, "com.typesafe.netty:netty-reactive-streams-http": { "packageName": "Maven-com-typesafe-netty_netty-reactive-streams-http", "packageVersion": "2.x" }, "commons-codec:commons-codec": { "packageName": "JakartaCommons-codec", "packageVersion": "1.x" }, diff --git a/.changes/2.20.10.json b/.changes/2.20.10.json new file mode 100644 index 000000000000..f54527a7df1f --- /dev/null +++ b/.changes/2.20.10.json @@ -0,0 +1,42 @@ +{ + "version": "2.20.10", + "date": "2023-02-22", + "entries": [ + { + "type": "feature", + "category": "AWS DataSync", + "contributor": "", + "description": "AWS DataSync has relaxed the minimum length constraint of AccessKey for Object Storage locations to 1." + }, + { + "type": "feature", + "category": "Amazon Chime SDK Voice", + "contributor": "", + "description": "This release introduces support for Voice Connector media metrics in the Amazon Chime SDK Voice namespace" + }, + { + "type": "feature", + "category": "Amazon CloudFront", + "contributor": "", + "description": "CloudFront now supports block lists in origin request policies so that you can forward all headers, cookies, or query string from viewer requests to the origin *except* for those specified in the block list." + }, + { + "type": "feature", + "category": "Amazon OpenSearch Service", + "contributor": "", + "description": "This release lets customers configure Off-peak window and software update related properties for a new/existing domain. It enhances the capabilities of StartServiceSoftwareUpdate API; adds 2 new APIs - ListScheduledActions & UpdateScheduledAction; and allows Auto-tune to make use of Off-peak window." + }, + { + "type": "feature", + "category": "Amazon Simple Systems Manager (SSM)", + "contributor": "", + "description": "Document only update for Feb 2023" + }, + { + "type": "feature", + "category": "CloudWatch RUM", + "contributor": "", + "description": "CloudWatch RUM now supports CloudWatch Custom Metrics" + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.11.json b/.changes/2.20.11.json new file mode 100644 index 000000000000..996c1cf1e0c0 --- /dev/null +++ b/.changes/2.20.11.json @@ -0,0 +1,60 @@ +{ + "version": "2.20.11", + "date": "2023-02-23", + "entries": [ + { + "type": "feature", + "category": "AWS IoT Wireless", + "contributor": "", + "description": "In this release, we add additional capabilities for the FUOTA which allows user to configure the fragment size, the sending interval and the redundancy ratio of the FUOTA tasks" + }, + { + "type": "feature", + "category": "AWS WAFV2", + "contributor": "", + "description": "You can now associate an AWS WAF v2 web ACL with an AWS App Runner service." + }, + { + "type": "feature", + "category": "Amazon Appflow", + "contributor": "", + "description": "This release enables the customers to choose whether to use Private Link for Metadata and Authorization call when using a private Salesforce connections" + }, + { + "type": "feature", + "category": "Amazon EC2 Container Service", + "contributor": "", + "description": "This release supports deleting Amazon ECS task definitions that are in the INACTIVE state." + }, + { + "type": "feature", + "category": "Amazon GuardDuty", + "contributor": "", + "description": "Updated API and data types descriptions for CreateFilter, UpdateFilter, and TriggerDetails." + }, + { + "type": "feature", + "category": "Amazon Location Service", + "contributor": "", + "description": "This release adds support for using Maps APIs with an API Key in addition to AWS Cognito. This includes support for adding, listing, updating and deleting API Keys." + }, + { + "type": "feature", + "category": "Amazon Macie 2", + "contributor": "", + "description": "This release adds support for a new finding type, Policy:IAMUser/S3BucketSharedWithCloudFront, and S3 bucket metadata that indicates if a bucket is shared with an Amazon CloudFront OAI or OAC." + }, + { + "type": "feature", + "category": "Amazon Managed Grafana", + "contributor": "", + "description": "Doc-only update. Updated information on attached role policies for customer provided roles" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.12.json b/.changes/2.20.12.json new file mode 100644 index 000000000000..6a6a680d1499 --- /dev/null +++ b/.changes/2.20.12.json @@ -0,0 +1,36 @@ +{ + "version": "2.20.12", + "date": "2023-02-24", + "entries": [ + { + "type": "feature", + "category": "AWS SecurityHub", + "contributor": "", + "description": "New Security Hub APIs and updates to existing APIs that help you consolidate control findings and enable and disable controls across all supported standards" + }, + { + "type": "feature", + "category": "AWS Service Catalog", + "contributor": "", + "description": "Documentation updates for Service Catalog" + }, + { + "type": "feature", + "category": "Amazon Connect Cases", + "contributor": "", + "description": "This release adds the ability to delete domains through the DeleteDomain API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html" + }, + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "StartTaskContact API now supports linked task creation with a new optional RelatedContactId parameter" + }, + { + "type": "feature", + "category": "Amazon Redshift", + "contributor": "", + "description": "Documentation updates for Redshift API bringing it in line with IAM best practices." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.13.json b/.changes/2.20.13.json new file mode 100644 index 000000000000..e00c1230d439 --- /dev/null +++ b/.changes/2.20.13.json @@ -0,0 +1,54 @@ +{ + "version": "2.20.13", + "date": "2023-02-27", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "stevenshan", + "description": "Fix race in FlatteningSubscriber where onClose called before items passed to onNext. See [#3734](https://github.com/aws/aws-sdk-java-v2/issues/3734)" + }, + { + "type": "feature", + "category": "AWS Elemental MediaConvert", + "contributor": "", + "description": "The AWS Elemental MediaConvert SDK has added support for HDR10 to SDR tone mapping, and animated GIF video input sources." + }, + { + "type": "feature", + "category": "AWS Lambda", + "contributor": "", + "description": "This release adds the ability to create ESMs with Document DB change streams as event source. For more information see https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html." + }, + { + "type": "feature", + "category": "Amazon CloudWatch Internet Monitor", + "contributor": "", + "description": "CloudWatch Internet Monitor is a a new service within CloudWatch that will help application developers and network engineers continuously monitor internet performance metrics such as availability and performance between their AWS-hosted applications and end-users of these applications" + }, + { + "type": "feature", + "category": "Amazon DevOps Guru", + "contributor": "", + "description": "This release adds the description field on ListAnomaliesForInsight and DescribeAnomaly API responses for proactive anomalies." + }, + { + "type": "feature", + "category": "Amazon Timestream Write", + "contributor": "", + "description": "This release adds the ability to ingest batched historical data or migrate data in bulk from S3 into Timestream using CSV files." + }, + { + "type": "feature", + "category": "Elastic Disaster Recovery Service", + "contributor": "", + "description": "New fields were added to reflect availability zone data in source server and recovery instance description commands responses, as well as source server launch status." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.14.json b/.changes/2.20.14.json new file mode 100644 index 000000000000..d0ac51abf800 --- /dev/null +++ b/.changes/2.20.14.json @@ -0,0 +1,54 @@ +{ + "version": "2.20.14", + "date": "2023-02-28", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Add commons-codec to bom-internal to fix dependency convergence issue. See [#3787](https://github.com/aws/aws-sdk-java-v2/issues/3787)" + }, + { + "type": "feature", + "category": "AWS Key Management Service", + "contributor": "", + "description": "AWS KMS is deprecating the RSAES_PKCS1_V1_5 wrapping algorithm option in the GetParametersForImport API that is used in the AWS KMS Import Key Material feature. AWS KMS will end support for this wrapping algorithm by October 1, 2023." + }, + { + "type": "feature", + "category": "Amazon Comprehend", + "contributor": "", + "description": "Amazon Comprehend now supports flywheels to help you train and manage new model versions for custom models." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "This release allows IMDS support to be set to v2-only on an existing AMI, so that all future instances launched from that AMI will use IMDSv2 by default." + }, + { + "type": "feature", + "category": "Amazon Lightsail", + "contributor": "", + "description": "This release adds Lightsail for Research feature support, such as GUI session access, cost estimates, stop instance on idle, and disk auto mount." + }, + { + "type": "feature", + "category": "Amazon Managed Blockchain", + "contributor": "", + "description": "This release adds support for tagging to the accessor resource in Amazon Managed Blockchain" + }, + { + "type": "feature", + "category": "Amazon Omics", + "contributor": "", + "description": "Minor model changes to accomodate batch imports feature" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.15.json b/.changes/2.20.15.json new file mode 100644 index 000000000000..817629c86b95 --- /dev/null +++ b/.changes/2.20.15.json @@ -0,0 +1,30 @@ +{ + "version": "2.20.15", + "date": "2023-03-01", + "entries": [ + { + "type": "feature", + "category": "AWS Price List Service", + "contributor": "", + "description": "This release adds 2 new APIs - ListPriceLists which returns a list of applicable price lists, and GetPriceListFileUrl which outputs a URL to retrieve your price lists from the generated file from ListPriceLists" + }, + { + "type": "feature", + "category": "Amazon CodeCatalyst", + "contributor": "", + "description": "Published Dev Environments StopDevEnvironmentSession API" + }, + { + "type": "feature", + "category": "Amazon S3 on Outposts", + "contributor": "", + "description": "S3 on Outposts introduces a new API ListOutpostsWithS3, with this API you can list all your Outposts with S3 capacity." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.16.json b/.changes/2.20.16.json new file mode 100644 index 000000000000..e3ccf004ad9c --- /dev/null +++ b/.changes/2.20.16.json @@ -0,0 +1,48 @@ +{ + "version": "2.20.16", + "date": "2023-03-02", + "entries": [ + { + "type": "feature", + "category": "AWS IoT", + "contributor": "", + "description": "A recurring maintenance window is an optional configuration used for rolling out the job document to all devices in the target group observing a predetermined start time, duration, and frequency that the maintenance window occurs." + }, + { + "type": "feature", + "category": "AWS Organizations", + "contributor": "", + "description": "This release introduces a new reason code, ACCOUNT_CREATION_NOT_COMPLETE, to ConstraintViolationException in CreateOrganization API." + }, + { + "type": "feature", + "category": "AWS Performance Insights", + "contributor": "", + "description": "This release adds a new field PeriodAlignment to allow the customer specifying the returned timestamp of time periods to be either the start or end time." + }, + { + "type": "feature", + "category": "Amazon EventBridge Pipes", + "contributor": "", + "description": "This release fixes some input parameter range and patterns." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Add a new field \"EndpointMetrics\" in SageMaker Inference Recommender \"ListInferenceRecommendationsJobSteps\" API response." + }, + { + "type": "feature", + "category": "Migration Hub Strategy Recommendations", + "contributor": "", + "description": "This release updates the File Import API to allow importing servers already discovered by customers with reduced pre-requisites." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.17.json b/.changes/2.20.17.json new file mode 100644 index 000000000000..5a36db6fe22d --- /dev/null +++ b/.changes/2.20.17.json @@ -0,0 +1,48 @@ +{ + "version": "2.20.17", + "date": "2023-03-03", + "entries": [ + { + "type": "feature", + "category": "AWS Elemental MediaConvert", + "contributor": "", + "description": "The AWS Elemental MediaConvert SDK has improved handling for different input and output color space combinations." + }, + { + "type": "feature", + "category": "AWS Elemental MediaLive", + "contributor": "", + "description": "AWS Elemental MediaLive adds support for Nielsen watermark timezones." + }, + { + "type": "feature", + "category": "Amazon DynamoDB", + "contributor": "", + "description": "Documentation updates for DynamoDB." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "This release adds support for a new boot mode for EC2 instances called 'UEFI Preferred'." + }, + { + "type": "feature", + "category": "Amazon Macie 2", + "contributor": "", + "description": "Documentation updates for Amazon Macie" + }, + { + "type": "feature", + "category": "Amazon Transcribe Service", + "contributor": "", + "description": "Amazon Transcribe now supports role access for these API operations: CreateVocabulary, UpdateVocabulary, CreateVocabularyFilter, and UpdateVocabularyFilter." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.18.json b/.changes/2.20.18.json new file mode 100644 index 000000000000..cbd8b97ded22 --- /dev/null +++ b/.changes/2.20.18.json @@ -0,0 +1,18 @@ +{ + "version": "2.20.18", + "date": "2023-03-06", + "entries": [ + { + "type": "feature", + "category": "AWS Account", + "contributor": "", + "description": "AWS Account alternate contact email addresses can now have a length of 254 characters and contain the character \"|\"." + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service", + "contributor": "", + "description": "Updated text description in DeleteChannel, Stream, and StreamSummary." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.19.json b/.changes/2.20.19.json new file mode 100644 index 000000000000..888a11db629e --- /dev/null +++ b/.changes/2.20.19.json @@ -0,0 +1,24 @@ +{ + "version": "2.20.19", + "date": "2023-03-07", + "entries": [ + { + "type": "feature", + "category": "AWS Database Migration Service", + "contributor": "", + "description": "This release adds DMS Fleet Advisor Target Recommendation APIs and exposes functionality for DMS Fleet Advisor. It adds functionality to start Target Recommendation calculation." + }, + { + "type": "feature", + "category": "Amazon Location Service", + "contributor": "", + "description": "Documentation update for the release of 3 additional map styles for use with Open Data Maps: Open Data Standard Dark, Open Data Visualization Light & Open Data Visualization Dark." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.2.json b/.changes/2.20.2.json new file mode 100644 index 000000000000..c68959a4e688 --- /dev/null +++ b/.changes/2.20.2.json @@ -0,0 +1,48 @@ +{ + "version": "2.20.2", + "date": "2023-02-10", + "entries": [ + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "This update provides the Wisdom session ARN for contacts enabled for Wisdom in the chat channel." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "Adds support for waiters that automatically poll for an imported snapshot until it reaches the completed state." + }, + { + "type": "feature", + "category": "Amazon Polly", + "contributor": "", + "description": "Amazon Polly adds two new neural Japanese voices - Kazuha, Tomoko" + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Amazon SageMaker Autopilot adds support for selecting algorithms in CreateAutoMLJob API." + }, + { + "type": "feature", + "category": "Amazon Simple Notification Service", + "contributor": "", + "description": "This release adds support for SNS X-Ray active tracing as well as other updates." + }, + { + "type": "feature", + "category": "Auto Scaling", + "contributor": "", + "description": "You can now either terminate/replace, ignore, or wait for EC2 Auto Scaling instances on standby or protected from scale in. Also, you can also roll back changes from a failed instance refresh." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.20.json b/.changes/2.20.20.json new file mode 100644 index 000000000000..a62d36bf828b --- /dev/null +++ b/.changes/2.20.20.json @@ -0,0 +1,66 @@ +{ + "version": "2.20.20", + "date": "2023-03-08", + "entries": [ + { + "type": "feature", + "category": "AWS Elemental MediaPackage", + "contributor": "", + "description": "This release provides the date and time live resources were created." + }, + { + "type": "feature", + "category": "AWS Elemental MediaPackage VOD", + "contributor": "", + "description": "This release provides the date and time VOD resources were created." + }, + { + "type": "feature", + "category": "AWS Lake Formation", + "contributor": "", + "description": "This release adds two new API support \"GetDataCellsFiler\" and \"UpdateDataCellsFilter\", and also updates the corresponding documentation." + }, + { + "type": "feature", + "category": "Amazon Athena", + "contributor": "", + "description": "A new field SubstatementType is added to GetQueryExecution API, so customers have an error free way to detect the query type and interpret the result." + }, + { + "type": "feature", + "category": "Amazon DynamoDB", + "contributor": "", + "description": "Adds deletion protection support to DynamoDB tables. Tables with deletion protection enabled cannot be deleted. Deletion protection is disabled by default, can be enabled via the CreateTable or UpdateTable APIs, and is visible in TableDescription. This setting is not replicated for Global Tables." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "Introducing Amazon EC2 C7g, M7g and R7g instances, powered by the latest generation AWS Graviton3 processors and deliver up to 25% better performance over Graviton2-based instances." + }, + { + "type": "feature", + "category": "Amazon Route 53 Resolver", + "contributor": "", + "description": "Add dual-stack and IPv6 support for Route 53 Resolver Endpoint,Add IPv6 target IP in Route 53 Resolver Forwarding Rule" + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Adding PartType field to UploadPartRequest to indicate whether the part is the last part or not." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "There needs to be a user identity to specify the SageMaker user who perform each action regarding the entity. However, these is a not a unified concept of user identity across SageMaker service that could be used today." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.21.json b/.changes/2.20.21.json new file mode 100644 index 000000000000..d589d6c96383 --- /dev/null +++ b/.changes/2.20.21.json @@ -0,0 +1,66 @@ +{ + "version": "2.20.21", + "date": "2023-03-09", + "entries": [ + { + "type": "feature", + "category": "AWS Cloud Map", + "contributor": "", + "description": "Updated all AWS Cloud Map APIs to provide consistent throttling exception (RequestLimitExceeded)" + }, + { + "type": "feature", + "category": "AWS Network Manager", + "contributor": "", + "description": "This update provides example usage for TransitGatewayRouteTableArn." + }, + { + "type": "feature", + "category": "Amazon CloudWatch Evidently", + "contributor": "", + "description": "Updated entity override documentation" + }, + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "This release adds a new API, GetMetricDataV2, which returns metric data for Amazon Connect." + }, + { + "type": "feature", + "category": "Amazon QuickSight", + "contributor": "", + "description": "This release has two changes: add state persistence feature for embedded dashboard and console in GenerateEmbedUrlForRegisteredUser API; add properties for hidden collapsed row dimensions in PivotTableOptions." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Amazon SageMaker Inference now allows SSM access to customer's model container by setting the \"EnableSSMAccess\" parameter for a ProductionVariant in CreateEndpointConfig API." + }, + { + "type": "feature", + "category": "Amazon Simple Email Service", + "contributor": "", + "description": "This release introduces a new recommendation in Virtual Deliverability Manager Advisor, which detects missing or misconfigured Brand Indicator for Message Identification (BIMI) DNS records for customer sending identities." + }, + { + "type": "feature", + "category": "CodeArtifact", + "contributor": "", + "description": "This release introduces the generic package format, a mechanism for storing arbitrary binary assets. It also adds a new API, PublishPackageVersion, to allow for publishing generic packages." + }, + { + "type": "feature", + "category": "Redshift Data API Service", + "contributor": "", + "description": "Added support for Redshift Serverless workgroup-arn wherever the WorkgroupName parameter is available." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.22.json b/.changes/2.20.22.json new file mode 100644 index 000000000000..a5e499ba8d08 --- /dev/null +++ b/.changes/2.20.22.json @@ -0,0 +1,24 @@ +{ + "version": "2.20.22", + "date": "2023-03-10", + "entries": [ + { + "type": "feature", + "category": "AWS Secrets Manager", + "contributor": "", + "description": "The type definitions of SecretString and SecretBinary now have a minimum length of 1 in the model to match the exception thrown when you pass in empty values." + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service Chat", + "contributor": "", + "description": "This release adds a new exception returned when calling AWS IVS chat UpdateLoggingConfiguration. Now UpdateLoggingConfiguration can return ConflictException when invalid updates are made in sequence to Logging Configurations." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.23.json b/.changes/2.20.23.json new file mode 100644 index 000000000000..8d7e151ce4fc --- /dev/null +++ b/.changes/2.20.23.json @@ -0,0 +1,42 @@ +{ + "version": "2.20.23", + "date": "2023-03-13", + "entries": [ + { + "type": "feature", + "category": "AWS Lake Formation", + "contributor": "", + "description": "This release updates the documentation regarding Get/Update DataCellsFilter" + }, + { + "type": "feature", + "category": "AWS S3 Control", + "contributor": "", + "description": "Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts." + }, + { + "type": "feature", + "category": "AWS Telco Network Builder", + "contributor": "", + "description": "This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate." + }, + { + "type": "feature", + "category": "Amazon AppIntegrations Service", + "contributor": "", + "description": "Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint." + }, + { + "type": "feature", + "category": "Amazon Connect Wisdom Service", + "contributor": "", + "description": "This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.24.json b/.changes/2.20.24.json new file mode 100644 index 000000000000..19946075c492 --- /dev/null +++ b/.changes/2.20.24.json @@ -0,0 +1,48 @@ +{ + "version": "2.20.24", + "date": "2023-03-14", + "entries": [ + { + "type": "feature", + "category": "AWS Data Exchange", + "contributor": "", + "description": "This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies." + }, + { + "type": "feature", + "category": "AWS Direct Connect", + "contributor": "", + "description": "describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating." + }, + { + "type": "feature", + "category": "AWS Identity and Access Management", + "contributor": "", + "description": "Documentation only updates to correct customer-reported issues" + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs." + }, + { + "type": "feature", + "category": "Amazon Keyspaces", + "contributor": "", + "description": "Adding support for client-side timestamps" + }, + { + "type": "feature", + "category": "Application Auto Scaling", + "contributor": "", + "description": "Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.25.json b/.changes/2.20.25.json new file mode 100644 index 000000000000..36f84c88ff74 --- /dev/null +++ b/.changes/2.20.25.json @@ -0,0 +1,30 @@ +{ + "version": "2.20.25", + "date": "2023-03-15", + "entries": [ + { + "type": "feature", + "category": "AWS S3 Control", + "contributor": "", + "description": "Added support for S3 Object Lambda aliases." + }, + { + "type": "feature", + "category": "Amazon Security Lake", + "contributor": "", + "description": "Make Create/Get/ListSubscribers APIs return resource share ARN and name so they can be used to validate the RAM resource share to accept. GetDatalake can be used to track status of UpdateDatalake and DeleteDatalake requests." + }, + { + "type": "feature", + "category": "Migration Hub Strategy Recommendations", + "contributor": "", + "description": "This release adds the binary analysis that analyzes IIS application DLLs on Windows and Java applications on Linux to provide anti-pattern report without configuring access to the source code." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.26.json b/.changes/2.20.26.json new file mode 100644 index 000000000000..c678b892dfde --- /dev/null +++ b/.changes/2.20.26.json @@ -0,0 +1,30 @@ +{ + "version": "2.20.26", + "date": "2023-03-16", + "entries": [ + { + "type": "feature", + "category": "AWS Resource Explorer", + "contributor": "", + "description": "Documentation updates for APIs." + }, + { + "type": "feature", + "category": "Amazon GuardDuty", + "contributor": "", + "description": "Updated 9 APIs for feature enablement to reflect expansion of GuardDuty to features. Added new APIs and updated existing APIs to support RDS Protection GA." + }, + { + "type": "feature", + "category": "Amazon SageMaker Runtime", + "contributor": "", + "description": "Documentation updates for SageMaker Runtime" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.27.json b/.changes/2.20.27.json new file mode 100644 index 000000000000..243a3e81d67c --- /dev/null +++ b/.changes/2.20.27.json @@ -0,0 +1,30 @@ +{ + "version": "2.20.27", + "date": "2023-03-17", + "entries": [ + { + "type": "feature", + "category": "AWSBillingConductor", + "contributor": "", + "description": "This release adds a new filter to ListAccountAssociations API and a new filter to ListBillingGroups API." + }, + { + "type": "feature", + "category": "AWS Config", + "contributor": "", + "description": "This release adds resourceType enums for types released from October 2022 through February 2023." + }, + { + "type": "feature", + "category": "AWS Database Migration Service", + "contributor": "", + "description": "S3 setting to create AWS Glue Data Catalog. Oracle setting to control conversion of timestamp column. Support for Kafka SASL Plain authentication. Setting to map boolean from PostgreSQL to Redshift. SQL Server settings to force lob lookup on inline LOBs and to control access of database logs." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.28.json b/.changes/2.20.28.json new file mode 100644 index 000000000000..8aa1f071edfe --- /dev/null +++ b/.changes/2.20.28.json @@ -0,0 +1,42 @@ +{ + "version": "2.20.28", + "date": "2023-03-20", + "entries": [ + { + "type": "feature", + "category": "AWS CRT-based S3 client", + "contributor": "", + "description": "Exposes `S3CrtHttpConfiguration` to allow users to configure HTTP settings such as proxy and connection timeout on AWS CRT-based S3 client. [#3262](https://github.com/aws/aws-sdk-java-v2/issues/3262)" + }, + { + "type": "feature", + "category": "Amazon Neptune", + "contributor": "", + "description": "This release makes following few changes. db-cluster-identifier is now a required parameter of create-db-instance. describe-db-cluster will now return PendingModifiedValues and GlobalClusterIdentifier fields in the response." + }, + { + "type": "feature", + "category": "Amazon S3 on Outposts", + "contributor": "", + "description": "S3 On Outposts added support for endpoint status, and a failed endpoint reason, if any" + }, + { + "type": "feature", + "category": "Amazon WorkDocs", + "contributor": "", + "description": "This release adds a new API, SearchResources, which enable users to search through metadata and content of folders, documents, document versions and comments in a WorkDocs site." + }, + { + "type": "feature", + "category": "Application Auto Scaling", + "contributor": "", + "description": "With this release customers can now tag their Application Auto Scaling registered targets with key-value pairs and manage IAM permissions for all the tagged resources centrally." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.29.json b/.changes/2.20.29.json new file mode 100644 index 000000000000..ac4b19bb6701 --- /dev/null +++ b/.changes/2.20.29.json @@ -0,0 +1,42 @@ +{ + "version": "2.20.29", + "date": "2023-03-21", + "entries": [ + { + "type": "feature", + "category": "AWS Clean Rooms Service", + "contributor": "", + "description": "GA Release of AWS Clean Rooms, Added Tagging Functionality" + }, + { + "type": "feature", + "category": "AWS IoT SiteWise", + "contributor": "", + "description": "Provide support for tagging of data streams and enabling tag based authorization for property alias" + }, + { + "type": "feature", + "category": "Amazon Chime SDK Messaging", + "contributor": "", + "description": "Amazon Chime SDK messaging customers can now manage streaming configuration for messaging data for archival and analysis." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "This release adds support for AWS Network Firewall, AWS PrivateLink, and Gateway Load Balancers to Amazon VPC Reachability Analyzer, and it makes the path destination optional as long as a destination address in the filter at source is provided." + }, + { + "type": "feature", + "category": "Application Migration Service", + "contributor": "", + "description": "This release introduces the Import and export feature and expansion of the post-launch actions" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.3.json b/.changes/2.20.3.json new file mode 100644 index 000000000000..7c82cb3d2017 --- /dev/null +++ b/.changes/2.20.3.json @@ -0,0 +1,36 @@ +{ + "version": "2.20.3", + "date": "2023-02-13", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Keep precedence of options when passed to ProfileFileSupplier.aggregate" + }, + { + "type": "feature", + "category": "AWS Account", + "contributor": "", + "description": "This release of the Account Management API enables customers to view and manage whether AWS Opt-In Regions are enabled or disabled for their Account. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html" + }, + { + "type": "feature", + "category": "AWS AppConfig Data", + "contributor": "", + "description": "AWS AppConfig now offers the option to set a version label on hosted configuration versions. If a labeled hosted configuration version is deployed, its version label is available in the GetLatestConfiguration response." + }, + { + "type": "feature", + "category": "Amazon Import/Export Snowball", + "contributor": "", + "description": "Adds support for EKS Anywhere on Snowball. AWS Snow Family customers can now install EKS Anywhere service on Snowball Edge Compute Optimized devices." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.30.json b/.changes/2.20.30.json new file mode 100644 index 000000000000..1b0219c83f21 --- /dev/null +++ b/.changes/2.20.30.json @@ -0,0 +1,48 @@ +{ + "version": "2.20.30", + "date": "2023-03-22", + "entries": [ + { + "type": "feature", + "category": "AWS Identity and Access Management", + "contributor": "", + "description": "Documentation updates for AWS Identity and Access Management (IAM)." + }, + { + "type": "feature", + "category": "AWS IoT TwinMaker", + "contributor": "", + "description": "This release adds support of adding metadata when creating a new scene or updating an existing scene." + }, + { + "type": "feature", + "category": "AWS Network Manager", + "contributor": "", + "description": "This release includes an update to create-transit-gateway-route-table-attachment, showing example usage for TransitGatewayRouteTableArn." + }, + { + "type": "feature", + "category": "AWS Resilience Hub", + "contributor": "", + "description": "This release provides customers with the ability to import resources from within an EKS cluster and assess the resiliency of EKS cluster workloads." + }, + { + "type": "feature", + "category": "Amazon EventBridge Pipes", + "contributor": "", + "description": "This release improves validation on the ARNs in the API model" + }, + { + "type": "feature", + "category": "Amazon Simple Systems Manager (SSM)", + "contributor": "", + "description": "This Patch Manager release supports creating, updating, and deleting Patch Baselines for AmazonLinux2023, AlmaLinux." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.31.json b/.changes/2.20.31.json new file mode 100644 index 000000000000..c542a9608cca --- /dev/null +++ b/.changes/2.20.31.json @@ -0,0 +1,90 @@ +{ + "version": "2.20.31", + "date": "2023-03-23", + "entries": [ + { + "type": "feature", + "category": "AWS Batch", + "contributor": "", + "description": "This feature allows Batch to support configuration of ephemeral storage size for jobs running on FARGATE" + }, + { + "type": "feature", + "category": "AWS Cloud Map", + "contributor": "", + "description": "Reverted the throttling exception RequestLimitExceeded for AWS Cloud Map APIs introduced in SDK version 1.12.424 2023-03-09 to previous exception specified in the ErrorCode." + }, + { + "type": "feature", + "category": "AWS Elemental MediaConvert", + "contributor": "", + "description": "AWS Elemental MediaConvert SDK now supports passthrough of ID3v2 tags for audio inputs to audio-only HLS outputs." + }, + { + "type": "feature", + "category": "Amazon Chime SDK Identity", + "contributor": "", + "description": "AppInstanceBots can be used to add a bot powered by Amazon Lex to chat channels. ExpirationSettings provides automatic resource deletion for AppInstanceUsers." + }, + { + "type": "feature", + "category": "Amazon Chime SDK Media Pipelines", + "contributor": "", + "description": "This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio." + }, + { + "type": "feature", + "category": "Amazon Chime SDK Messaging", + "contributor": "", + "description": "ExpirationSettings provides automatic resource deletion for Channels." + }, + { + "type": "feature", + "category": "Amazon Chime SDK Voice", + "contributor": "", + "description": "This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio." + }, + { + "type": "feature", + "category": "Amazon GuardDuty", + "contributor": "", + "description": "Adds AutoEnableOrganizationMembers attribute to DescribeOrganizationConfiguration and UpdateOrganizationConfiguration APIs." + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service RealTime", + "contributor": "", + "description": "Initial release of the Amazon Interactive Video Service RealTime API." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Amazon SageMaker Autopilot adds two new APIs - CreateAutoMLJobV2 and DescribeAutoMLJobV2. Amazon SageMaker Notebook Instances now supports the ml.geospatial.interactive instance type." + }, + { + "type": "feature", + "category": "Amazon Textract", + "contributor": "", + "description": "The AnalyzeDocument - Tables feature adds support for new elements in the API: table titles, footers, section titles, summary cells/tables, and table type." + }, + { + "type": "feature", + "category": "CodeArtifact", + "contributor": "", + "description": "Repository CreationTime is added to the CreateRepository and ListRepositories API responses." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Introducing Enhanced Document API: A Higher-Level API for Working with Amazon DynamoDB Items" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.32.json b/.changes/2.20.32.json new file mode 100644 index 000000000000..d90e8a98d57e --- /dev/null +++ b/.changes/2.20.32.json @@ -0,0 +1,42 @@ +{ + "version": "2.20.32", + "date": "2023-03-24", + "entries": [ + { + "type": "bugfix", + "category": "Netty NIO HTTP Client", + "contributor": "", + "description": "Fix a bug where, if validation of of the amount of expected data to be received (HTTP `Content-Length`) fails, the connection would be left dangling, consuming a connection from the pool until the client is shut down." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Adds ServiceClientConfiguration to SdkClient which exposes client settings to the user" + }, + { + "type": "feature", + "category": "Amazon CloudWatch", + "contributor": "", + "description": "Doc-only update to correct alarm actions list" + }, + { + "type": "feature", + "category": "Amazon Comprehend", + "contributor": "", + "description": "This release adds a new field (FlywheelArn) to the EntitiesDetectionJobProperties object. The FlywheelArn field is returned in the DescribeEntitiesDetectionJob and ListEntitiesDetectionJobs responses when the EntitiesDetection job is started with a FlywheelArn instead of an EntityRecognizerArn ." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Added error code CreateCustomDBEngineVersionFault for when the create custom engine version for Custom engines fails." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.33.json b/.changes/2.20.33.json new file mode 100644 index 000000000000..1460784b6c03 --- /dev/null +++ b/.changes/2.20.33.json @@ -0,0 +1,66 @@ +{ + "version": "2.20.33", + "date": "2023-03-27", + "entries": [ + { + "type": "feature", + "category": "AWS Elemental MediaLive", + "contributor": "", + "description": "AWS Elemental MediaLive now supports ID3 tag insertion for audio only HLS output groups. AWS Elemental Link devices now support tagging." + }, + { + "type": "feature", + "category": "AWS IoT Wireless", + "contributor": "", + "description": "Introducing new APIs that enable Sidewalk devices to communicate with AWS IoT Core through Sidewalk gateways. This will empower AWS customers to connect Sidewalk devices with other AWS IoT Services, creating possibilities for seamless integration and advanced device management." + }, + { + "type": "feature", + "category": "AWS SecurityHub", + "contributor": "", + "description": "Added new resource detail objects to ASFF, including resources for AwsEksCluster, AWSS3Bucket, AwsEc2RouteTable and AwsEC2Instance." + }, + { + "type": "feature", + "category": "AWS Service Catalog App Registry", + "contributor": "", + "description": "In this release, we started supporting ARN in applicationSpecifier and attributeGroupSpecifier. GetAttributeGroup, ListAttributeGroups and ListAttributeGroupsForApplication APIs will now have CreatedBy field in the response." + }, + { + "type": "feature", + "category": "Amazon Athena", + "contributor": "", + "description": "Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries." + }, + { + "type": "feature", + "category": "Amazon Chime SDK Voice", + "contributor": "", + "description": "Documentation updates for Amazon Chime SDK Voice." + }, + { + "type": "feature", + "category": "Amazon Connect Participant Service", + "contributor": "", + "description": "This release provides an update to the SendMessage API to handle interactive message response content-types." + }, + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "This release introduces support for RelatedContactId in the StartChatContact API. Interactive message and interactive message response have been added to the list of supported message content types for this API as well." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Fixed some improperly rendered links in SDK documentation." + }, + { + "type": "feature", + "category": "Amazon Voice ID", + "contributor": "", + "description": "Amazon Connect Voice ID now supports multiple fraudster watchlists. Every domain has a default watchlist where all existing fraudsters are placed by default. Custom watchlists may now be created, managed, and evaluated against for known fraudster detection." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.34.json b/.changes/2.20.34.json new file mode 100644 index 000000000000..48cd9430f826 --- /dev/null +++ b/.changes/2.20.34.json @@ -0,0 +1,36 @@ +{ + "version": "2.20.34", + "date": "2023-03-28", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "A binary attribute value must be encoded in base64 format for its String representation in EnhancedDocument.toJson() API" + }, + { + "type": "feature", + "category": "AWS IoT Data Plane", + "contributor": "", + "description": "Add endpoint ruleset support for cn-north-1." + }, + { + "type": "feature", + "category": "AWS Systems Manager Incident Manager", + "contributor": "", + "description": "Increased maximum length of \"TriggerDetails.rawData\" to 10K characters and \"IncidentSummary\" to 8K characters." + }, + { + "type": "feature", + "category": "AWS Systems Manager Incident Manager Contacts", + "contributor": "", + "description": "This release adds 12 new APIs as part of Oncall Schedule feature release, adds support for a new contact type: ONCALL_SCHEDULE. Check public documentation for AWS ssm-contacts for more information" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.35.json b/.changes/2.20.35.json new file mode 100644 index 000000000000..0b6fb5fd574f --- /dev/null +++ b/.changes/2.20.35.json @@ -0,0 +1,24 @@ +{ + "version": "2.20.35", + "date": "2023-03-29", + "entries": [ + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Add support for creating a read replica DB instance from a Multi-AZ DB cluster." + }, + { + "type": "feature", + "category": "OpenSearch Service Serverless", + "contributor": "", + "description": "This release includes two new exception types \"ServiceQuotaExceededException\" and \"OcuLimitExceededException\"." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.36.json b/.changes/2.20.36.json new file mode 100644 index 000000000000..989d05bb5a69 --- /dev/null +++ b/.changes/2.20.36.json @@ -0,0 +1,108 @@ +{ + "version": "2.20.36", + "date": "2023-03-30", + "entries": [ + { + "type": "feature", + "category": "AWS Batch", + "contributor": "", + "description": "This feature allows Batch on EKS to support configuration of Pod Labels through Metadata for Batch on EKS Jobs." + }, + { + "type": "feature", + "category": "AWS Compute Optimizer", + "contributor": "", + "description": "This release adds support for HDD EBS volume types and io2 Block Express. We are also adding support for 61 new instance types and instances that have non consecutive runtime." + }, + { + "type": "feature", + "category": "AWS Glue", + "contributor": "", + "description": "This release adds support for AWS Glue Data Quality, which helps you evaluate and monitor the quality of your data and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations." + }, + { + "type": "feature", + "category": "AWSKendraFrontendService", + "contributor": "", + "description": "AWS Kendra now supports featured results for a query." + }, + { + "type": "feature", + "category": "AWS Network Firewall", + "contributor": "", + "description": "AWS Network Firewall added TLS inspection configurations to allow TLS traffic inspection." + }, + { + "type": "feature", + "category": "AWS Well-Architected Tool", + "contributor": "", + "description": "AWS Well-Architected SDK now supports getting consolidated report metrics and generating a consolidated report PDF." + }, + { + "type": "feature", + "category": "Amazon Athena", + "contributor": "", + "description": "Make DefaultExecutorDpuSize and CoordinatorDpuSize fields optional in StartSession" + }, + { + "type": "feature", + "category": "Amazon EMR", + "contributor": "", + "description": "Updated DescribeCluster and ListClusters API responses to include ErrorDetail that specifies error code, programmatically accessible error data,and an error message. ErrorDetail provides the underlying reason for cluster failure and recommends actions to simplify troubleshooting of EMR clusters." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "This release adds support for Tunnel Endpoint Lifecycle control, a new feature that provides Site-to-Site VPN customers with better visibility and control of their VPN tunnel maintenance updates." + }, + { + "type": "feature", + "category": "Amazon GuardDuty", + "contributor": "", + "description": "Added EKS Runtime Monitoring feature support to existing detector, finding APIs and introducing new Coverage APIs" + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service", + "contributor": "", + "description": "Amazon Interactive Video Service (IVS) now offers customers the ability to configure IVS channels to allow insecure RTMP ingest." + }, + { + "type": "feature", + "category": "Amazon SageMaker geospatial capabilities", + "contributor": "", + "description": "Amazon SageMaker geospatial capabilities now supports server-side encryption with customer managed KMS key and SageMaker notebooks with a SageMaker geospatial image in a Amazon SageMaker Domain with VPC only mode." + }, + { + "type": "feature", + "category": "Amazon VPC Lattice", + "contributor": "", + "description": "General Availability (GA) release of Amazon VPC Lattice" + }, + { + "type": "feature", + "category": "Auto Scaling", + "contributor": "", + "description": "Amazon EC2 Auto Scaling now supports Elastic Load Balancing traffic sources with the AttachTrafficSources, DetachTrafficSources, and DescribeTrafficSources APIs. This release also introduces a new activity status, \"WaitingForConnectionDraining\", for VPC Lattice to the DescribeScalingActivities API." + }, + { + "type": "feature", + "category": "EC2 Image Builder", + "contributor": "", + "description": "Adds support for new image workflow details and image vulnerability detection." + }, + { + "type": "feature", + "category": "Elastic Disaster Recovery Service", + "contributor": "", + "description": "Adding a field to the replication configuration APIs to support the auto replicate new disks feature. We also deprecated RetryDataReplication." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.37.json b/.changes/2.20.37.json new file mode 100644 index 000000000000..802de1c95dc5 --- /dev/null +++ b/.changes/2.20.37.json @@ -0,0 +1,60 @@ +{ + "version": "2.20.37", + "date": "2023-03-31", + "entries": [ + { + "type": "bugfix", + "category": "AWS CRT-based S3 client", + "contributor": "", + "description": "Fixed the issue where AWS CRT-based S3 client was eagerly buffering data before the underlying CRT component was able to handle it. See [#3726](https://github.com/aws/aws-sdk-java-v2/issues/3726)" + }, + { + "type": "bugfix", + "category": "AWS CRT-based S3 client", + "contributor": "", + "description": "Reduced the buffer used to upload object from 16MB to 1MB." + }, + { + "type": "feature", + "category": "AWS Resilience Hub", + "contributor": "", + "description": "Adding EKS related documentation for appTemplateBody" + }, + { + "type": "feature", + "category": "AWS Server Migration Service", + "contributor": "", + "description": "Deprecating AWS Server Migration Service." + }, + { + "type": "feature", + "category": "Amazon CloudWatch Internet Monitor", + "contributor": "", + "description": "This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to deliver internet measurements to Amazon S3 buckets as well as CloudWatch Logs." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "Documentation updates for EC2 On Demand Capacity Reservations" + }, + { + "type": "feature", + "category": "Amazon SageMaker Feature Store Runtime", + "contributor": "", + "description": "In this release, you can now chose between soft delete and hard delete when calling the DeleteRecord API, so you have more flexibility when it comes to managing online store data." + }, + { + "type": "feature", + "category": "Amazon Simple Storage Service", + "contributor": "", + "description": "Documentation updates for Amazon S3" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.38.json b/.changes/2.20.38.json new file mode 100644 index 000000000000..4d7d9ba73f67 --- /dev/null +++ b/.changes/2.20.38.json @@ -0,0 +1,54 @@ +{ + "version": "2.20.38", + "date": "2023-04-03", + "entries": [ + { + "type": "feature", + "category": "AWS Glue", + "contributor": "", + "description": "Add support for database-level federation" + }, + { + "type": "feature", + "category": "AWS Lake Formation", + "contributor": "", + "description": "Add support for database-level federation" + }, + { + "type": "feature", + "category": "AWS License Manager", + "contributor": "", + "description": "This release adds grant override options to the CreateGrantVersion API. These options can be used to specify grant replacement behavior during grant activation." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "mpdn", + "description": "Added option of using an explicit `ExecutorService` in `FileAsyncResponseTransformer`" + }, + { + "type": "feature", + "category": "AWS Service Catalog", + "contributor": "", + "description": "This release introduces Service Catalog support for Terraform open source. It enables 1. The notify* APIs to Service Catalog. These APIs are used by the terraform engine to notify the result of the provisioning engine execution. 2. Adds a new TERRAFORM_OPEN_SOURCE product type in CreateProduct API." + }, + { + "type": "feature", + "category": "AWS WAFV2", + "contributor": "", + "description": "For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs." + }, + { + "type": "feature", + "category": "AmazonMWAA", + "contributor": "", + "description": "This Amazon MWAA release adds the ability to customize the Apache Airflow environment by launching a shell script at startup. This shell script is hosted in your environment's Amazon S3 bucket. Amazon MWAA runs the script before installing requirements and initializing the Apache Airflow process." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.39.json b/.changes/2.20.39.json new file mode 100644 index 000000000000..792e7399b710 --- /dev/null +++ b/.changes/2.20.39.json @@ -0,0 +1,60 @@ +{ + "version": "2.20.39", + "date": "2023-04-04", + "entries": [ + { + "type": "feature", + "category": "AWS Amplify UI Builder", + "contributor": "", + "description": "Support StorageField and custom displays for data-bound options in form builder. Support non-string operands for predicates in collections. Support choosing client to get token from." + }, + { + "type": "feature", + "category": "AWS Data Exchange", + "contributor": "", + "description": "This release updates the value of MaxResults." + }, + { + "type": "feature", + "category": "AWS WAFV2", + "contributor": "", + "description": "This release rolls back association config feature for webACLs that protect CloudFront protections." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "C6in, M6in, M6idn, R6in and R6idn bare metal instances are powered by 3rd Generation Intel Xeon Scalable processors and offer up to 200 Gbps of network bandwidth." + }, + { + "type": "feature", + "category": "Amazon Elastic Inference", + "contributor": "", + "description": "Updated public documentation for the Describe and Tagging APIs." + }, + { + "type": "feature", + "category": "Amazon SageMaker Runtime", + "contributor": "", + "description": "Amazon SageMaker Asynchronous Inference now provides customers a FailureLocation as a response parameter in InvokeEndpointAsync API to capture the model failure responses." + }, + { + "type": "feature", + "category": "Amazon SageMaker Service", + "contributor": "", + "description": "Amazon SageMaker Asynchronous Inference now allows customer's to receive failure model responses in S3 and receive success/failure model responses in SNS notifications." + }, + { + "type": "feature", + "category": "Auto Scaling", + "contributor": "", + "description": "Documentation updates for Amazon EC2 Auto Scaling" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.4.json b/.changes/2.20.4.json new file mode 100644 index 000000000000..f081330a1dcf --- /dev/null +++ b/.changes/2.20.4.json @@ -0,0 +1,24 @@ +{ + "version": "2.20.4", + "date": "2023-02-14", + "entries": [ + { + "type": "feature", + "category": "AWS DataSync", + "contributor": "", + "description": "With this launch, we are giving customers the ability to use older SMB protocol versions, enabling them to use DataSync to copy data to and from their legacy storage arrays." + }, + { + "type": "feature", + "category": "Amazon AppConfig", + "contributor": "", + "description": "AWS AppConfig now offers the option to set a version label on hosted configuration versions. Version labels allow you to identify specific hosted configuration versions based on an alternate versioning scheme that you define." + }, + { + "type": "feature", + "category": "Amazon Elastic Compute Cloud", + "contributor": "", + "description": "With this release customers can turn host maintenance on or off when allocating or modifying a supported dedicated host. Host maintenance is turned on by default for supported hosts." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.40.json b/.changes/2.20.40.json new file mode 100644 index 000000000000..adab6a579afd --- /dev/null +++ b/.changes/2.20.40.json @@ -0,0 +1,60 @@ +{ + "version": "2.20.40", + "date": "2023-04-05", + "entries": [ + { + "type": "feature", + "category": "AWS App Runner", + "contributor": "", + "description": "App Runner adds support for seven new vCPU and memory configurations." + }, + { + "type": "feature", + "category": "AWS Config", + "contributor": "", + "description": "This release adds resourceType enums for types released in March 2023." + }, + { + "type": "feature", + "category": "AWS Network Firewall", + "contributor": "", + "description": "AWS Network Firewall now supports IPv6-only subnets." + }, + { + "type": "feature", + "category": "AWS SSO Identity Store", + "contributor": "", + "description": "Documentation updates for Identity Store CLI command reference." + }, + { + "type": "feature", + "category": "AWS Service Catalog", + "contributor": "", + "description": "removed incorrect product type value" + }, + { + "type": "feature", + "category": "Amazon EC2 Container Service", + "contributor": "", + "description": "This is a document only updated to add information about Amazon Elastic Inference (EI)." + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service RealTime", + "contributor": "", + "description": "Fix ParticipantToken ExpirationTime format" + }, + { + "type": "feature", + "category": "Amazon VPC Lattice", + "contributor": "", + "description": "This release removes the entities in the API doc model package for auth policies." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.41.json b/.changes/2.20.41.json new file mode 100644 index 000000000000..1ea07858e7ae --- /dev/null +++ b/.changes/2.20.41.json @@ -0,0 +1,42 @@ +{ + "version": "2.20.41", + "date": "2023-04-06", + "entries": [ + { + "type": "feature", + "category": "AWS CloudFormation", + "contributor": "", + "description": "Including UPDATE_COMPLETE as a failed status for DeleteStack waiter." + }, + { + "type": "feature", + "category": "AWS IoT Greengrass V2", + "contributor": "", + "description": "Add support for SUCCEEDED value in coreDeviceExecutionStatus field. Documentation updates for Greengrass V2." + }, + { + "type": "feature", + "category": "AWS Proton", + "contributor": "", + "description": "This release adds support for the AWS Proton service sync feature. Service sync enables managing an AWS Proton service (creating and updating instances) and all of it's corresponding service instances from a Git repository." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Adds and updates the SDK examples" + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Adding feature for parsing S3 URIs" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.42.json b/.changes/2.20.42.json new file mode 100644 index 000000000000..77d8e830fe1b --- /dev/null +++ b/.changes/2.20.42.json @@ -0,0 +1,60 @@ +{ + "version": "2.20.42", + "date": "2023-04-07", + "entries": [ + { + "type": "bugfix", + "category": "Amazon DynamoDB Enhanced Client", + "contributor": "akiesler", + "description": "Include flattened mappers in attribute converter resolution" + }, + { + "type": "feature", + "category": "AWS Lambda", + "contributor": "", + "description": "This release adds a new Lambda InvokeWithResponseStream API to support streaming Lambda function responses. The release also adds a new InvokeMode parameter to Function Url APIs to control whether the response will be streamed or buffered." + }, + { + "type": "feature", + "category": "AWS Service Catalog", + "contributor": "", + "description": "Updates description for property" + }, + { + "type": "feature", + "category": "Amazon Data Lifecycle Manager", + "contributor": "", + "description": "Updated timestamp format for GetLifecyclePolicy API" + }, + { + "type": "feature", + "category": "Amazon DocumentDB with MongoDB compatibility", + "contributor": "", + "description": "This release adds a new parameter 'DBClusterParameterGroupName' to 'RestoreDBClusterFromSnapshot' API to associate the name of the DB cluster parameter group while performing restore." + }, + { + "type": "feature", + "category": "Amazon FSx", + "contributor": "", + "description": "Amazon FSx for Lustre now supports creating data repository associations on Persistent_1 and Scratch_2 file systems." + }, + { + "type": "feature", + "category": "Amazon QuickSight", + "contributor": "", + "description": "This release has two changes: adding the OR condition to tag-based RLS rules in CreateDataSet and UpdateDataSet; adding RefreshSchedule and Incremental RefreshProperties operations for users to programmatically configure SPICE dataset ingestions." + }, + { + "type": "feature", + "category": "Amazon S3", + "contributor": "", + "description": "Add support for the following in the CRT S3 client:\n\n - Enabling/disabling accelerate endpoints\n - Using pathstyle addressing" + }, + { + "type": "feature", + "category": "Redshift Data API Service", + "contributor": "", + "description": "Update documentation of API descriptions as needed in support of temporary credentials with IAM identity." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.43.json b/.changes/2.20.43.json new file mode 100644 index 000000000000..0477c2f70e5b --- /dev/null +++ b/.changes/2.20.43.json @@ -0,0 +1,54 @@ +{ + "version": "2.20.43", + "date": "2023-04-10", + "entries": [ + { + "type": "feature", + "category": "AWS Elemental MediaConvert", + "contributor": "", + "description": "AWS Elemental MediaConvert SDK now supports conversion of 608 paint-on captions to pop-on captions for SCC sources." + }, + { + "type": "feature", + "category": "AWS Marketplace Catalog Service", + "contributor": "", + "description": "Added three new APIs to support resource sharing: GetResourcePolicy, PutResourcePolicy, and DeleteResourcePolicy. Added new OwnershipType field to ListEntities request to let users filter on entities that are shared with them. Increased max page size of ListEntities response from 20 to 50 results." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Expose StandardRetryOptions of S3ClientOptions in the S3CrtClient Interface" + }, + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "This release adds the ability to configure an agent's routing profile to receive contacts from multiple channels at the same time via extending the UpdateRoutingProfileConcurrency, CreateRoutingProfile and DescribeRoutingProfile APIs." + }, + { + "type": "feature", + "category": "Amazon EC2 Container Service", + "contributor": "", + "description": "This release adds support for enabling FIPS compliance on Amazon ECS Fargate tasks" + }, + { + "type": "feature", + "category": "Amazon Omics", + "contributor": "", + "description": "Remove unexpected API changes." + }, + { + "type": "feature", + "category": "Amazon Rekognition", + "contributor": "", + "description": "This release adds support for Face Liveness APIs in Amazon Rekognition. Updates UpdateStreamProcessor to return ResourceInUseException Exception. Minor updates to API documentation." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.44.json b/.changes/2.20.44.json new file mode 100644 index 000000000000..c48417c44521 --- /dev/null +++ b/.changes/2.20.44.json @@ -0,0 +1,54 @@ +{ + "version": "2.20.44", + "date": "2023-04-11", + "entries": [ + { + "type": "feature", + "category": "AWS IoT", + "contributor": "", + "description": "Re-release to remove unexpected API changes" + }, + { + "type": "feature", + "category": "AWS IoT Data Plane", + "contributor": "", + "description": "This release adds support for MQTT5 user properties when calling the AWS IoT GetRetainedMessage API" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Exposes endpointOverride in SdkClient through ServiceClientConfiguration" + }, + { + "type": "feature", + "category": "AWS WAFV2", + "contributor": "", + "description": "For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs." + }, + { + "type": "feature", + "category": "Amazon Elastic Container Registry Public", + "contributor": "", + "description": "This release will allow using registry alias as registryId in BatchDeleteImage request." + }, + { + "type": "feature", + "category": "Amazon EventBridge", + "contributor": "", + "description": "EventBridge PutTarget support for multiple SQL arguments on RedshiftDataParameters" + }, + { + "type": "feature", + "category": "EMR Serverless", + "contributor": "", + "description": "This release extends GetJobRun API to return job run timeout (executionTimeoutMinutes) specified during StartJobRun call (or default timeout of 720 minutes if none was specified)." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.45.json b/.changes/2.20.45.json new file mode 100644 index 000000000000..8d808db7662f --- /dev/null +++ b/.changes/2.20.45.json @@ -0,0 +1,24 @@ +{ + "version": "2.20.45", + "date": "2023-04-12", + "entries": [ + { + "type": "feature", + "category": "AWS Ground Station", + "contributor": "", + "description": "AWS Ground Station Wideband DigIF GA Release" + }, + { + "type": "feature", + "category": "Amazon Managed Blockchain", + "contributor": "", + "description": "Removal of the Ropsten network. The Ethereum foundation ceased support of Ropsten on December 31st, 2022.." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.46.json b/.changes/2.20.46.json new file mode 100644 index 000000000000..73ebafa41c9f --- /dev/null +++ b/.changes/2.20.46.json @@ -0,0 +1,24 @@ +{ + "version": "2.20.46", + "date": "2023-04-13", + "entries": [ + { + "type": "feature", + "category": "AWS MediaConnect", + "contributor": "", + "description": "Gateway is a new feature of AWS Elemental MediaConnect. Gateway allows the deployment of on-premises resources for the purpose of transporting live video to and from the AWS Cloud." + }, + { + "type": "feature", + "category": "Amazon Chime SDK Voice", + "contributor": "", + "description": "This release adds tagging support for Voice Connectors and SIP Media Applications" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.5.json b/.changes/2.20.5.json new file mode 100644 index 000000000000..224b6f0ad12d --- /dev/null +++ b/.changes/2.20.5.json @@ -0,0 +1,54 @@ +{ + "version": "2.20.5", + "date": "2023-02-15", + "entries": [ + { + "type": "feature", + "category": "AWS CloudTrail", + "contributor": "", + "description": "This release adds an InsufficientEncryptionPolicyException type to the StartImport endpoint" + }, + { + "type": "feature", + "category": "AWS Glue", + "contributor": "", + "description": "Fix DirectJDBCSource not showing up in CLI code gen" + }, + { + "type": "feature", + "category": "AWS Private 5G", + "contributor": "", + "description": "This release introduces a new StartNetworkResourceUpdate API, which enables return/replacement of hardware from a NetworkSite." + }, + { + "type": "feature", + "category": "AWS WAFV2", + "contributor": "", + "description": "For protected CloudFront distributions, you can now use the AWS WAF Fraud Control account takeover prevention (ATP) managed rule group to block new login attempts from clients that have recently submitted too many failed login attempts." + }, + { + "type": "feature", + "category": "Amazon Elastic File System", + "contributor": "", + "description": "Documentation update for EFS to support IAM best practices." + }, + { + "type": "feature", + "category": "Amazon Fraud Detector", + "contributor": "", + "description": "This release introduces Lists feature which allows customers to reference a set of values in Fraud Detector's rules. With Lists, customers can dynamically manage these attributes in real time. Lists can be created/deleted and its contents can be modified using the Fraud Detector API." + }, + { + "type": "feature", + "category": "Amazon Relational Database Service", + "contributor": "", + "description": "Database Activity Stream support for RDS for SQL Server." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.6.json b/.changes/2.20.6.json new file mode 100644 index 000000000000..27cbb6fbd756 --- /dev/null +++ b/.changes/2.20.6.json @@ -0,0 +1,36 @@ +{ + "version": "2.20.6", + "date": "2023-02-16", + "entries": [ + { + "type": "feature", + "category": "AWS WAFV2", + "contributor": "", + "description": "Added a notice for account takeover prevention (ATP). The interface incorrectly lets you to configure ATP response inspection in regional web ACLs in Region US East (N. Virginia), without returning an error. ATP response inspection is only available in web ACLs that protect CloudFront distributions." + }, + { + "type": "feature", + "category": "Amazon EMR", + "contributor": "", + "description": "This release provides customers the ability to define a timeout period for procuring capacity during a resize operation for Instance Fleet clusters. Customers can specify this timeout using the ResizeSpecifications parameter supported by RunJobFlow, ModifyInstanceFleet and AddInstanceFleet APIs." + }, + { + "type": "feature", + "category": "Amazon Interactive Video Service", + "contributor": "", + "description": "Doc-only update. Updated text description in DeleteChannel, Stream, and StreamSummary." + }, + { + "type": "feature", + "category": "Amazon Managed Grafana", + "contributor": "", + "description": "With this release Amazon Managed Grafana now supports inbound Network Access Control that helps you to restrict user access to your Grafana workspaces" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.7.json b/.changes/2.20.7.json new file mode 100644 index 000000000000..63aff9d5fa61 --- /dev/null +++ b/.changes/2.20.7.json @@ -0,0 +1,24 @@ +{ + "version": "2.20.7", + "date": "2023-02-17", + "entries": [ + { + "type": "feature", + "category": "AWS App Runner", + "contributor": "", + "description": "This release supports removing MaxSize limit for AutoScalingConfiguration." + }, + { + "type": "feature", + "category": "AWS Glue", + "contributor": "", + "description": "Release of Delta Lake Data Lake Format for Glue Studio Service" + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.8.json b/.changes/2.20.8.json new file mode 100644 index 000000000000..99a3d9644535 --- /dev/null +++ b/.changes/2.20.8.json @@ -0,0 +1,18 @@ +{ + "version": "2.20.8", + "date": "2023-02-20", + "entries": [ + { + "type": "feature", + "category": "AWS Audit Manager", + "contributor": "", + "description": "This release introduces a ServiceQuotaExceededException to the UpdateAssessmentFrameworkShare API operation." + }, + { + "type": "feature", + "category": "Amazon Connect Service", + "contributor": "", + "description": "Reasons for failed diff has been approved by SDK Reviewer" + } + ] +} \ No newline at end of file diff --git a/.changes/2.20.9.json b/.changes/2.20.9.json new file mode 100644 index 000000000000..623491d144ec --- /dev/null +++ b/.changes/2.20.9.json @@ -0,0 +1,42 @@ +{ + "version": "2.20.9", + "date": "2023-02-21", + "entries": [ + { + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Fix race condition that could cause a NullPointerException to be raised from ProfileCredentialsProvider." + }, + { + "type": "feature", + "category": "AWS Resilience Hub", + "contributor": "", + "description": "In this release we improved resilience hub application creation and maintenance by introducing new resource and app component crud APIs, improving visibility and maintenance of application input sources and added support for additional information attributes to be provided by customers." + }, + { + "type": "feature", + "category": "AWS SecurityHub", + "contributor": "", + "description": "Documentation updates for AWS Security Hub" + }, + { + "type": "feature", + "category": "AWS Telco Network Builder", + "contributor": "", + "description": "This is the initial SDK release for AWS Telco Network Builder (TNB). AWS Telco Network Builder is a network automation service that helps you deploy and manage telecom networks." + }, + { + "type": "feature", + "category": "Amazon QuickSight", + "contributor": "", + "description": "S3 data sources now accept a custom IAM role." + }, + { + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated endpoint and partition metadata." + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c746839658d9..2d47dbd469ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,1211 @@ +# __2.20.46__ __2023-04-13__ +## __AWS MediaConnect__ + - ### Features + - Gateway is a new feature of AWS Elemental MediaConnect. Gateway allows the deployment of on-premises resources for the purpose of transporting live video to and from the AWS Cloud. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Voice__ + - ### Features + - This release adds tagging support for Voice Connectors and SIP Media Applications + +# __2.20.45__ __2023-04-12__ +## __AWS Ground Station__ + - ### Features + - AWS Ground Station Wideband DigIF GA Release + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Managed Blockchain__ + - ### Features + - Removal of the Ropsten network. The Ethereum foundation ceased support of Ropsten on December 31st, 2022.. + +# __2.20.44__ __2023-04-11__ +## __AWS IoT__ + - ### Features + - Re-release to remove unexpected API changes + +## __AWS IoT Data Plane__ + - ### Features + - This release adds support for MQTT5 user properties when calling the AWS IoT GetRetainedMessage API + +## __AWS SDK for Java v2__ + - ### Features + - Exposes endpointOverride in SdkClient through ServiceClientConfiguration + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs. + +## __Amazon Elastic Container Registry Public__ + - ### Features + - This release will allow using registry alias as registryId in BatchDeleteImage request. + +## __Amazon EventBridge__ + - ### Features + - EventBridge PutTarget support for multiple SQL arguments on RedshiftDataParameters + +## __EMR Serverless__ + - ### Features + - This release extends GetJobRun API to return job run timeout (executionTimeoutMinutes) specified during StartJobRun call (or default timeout of 720 minutes if none was specified). + +# __2.20.43__ __2023-04-10__ +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK now supports conversion of 608 paint-on captions to pop-on captions for SCC sources. + +## __AWS Marketplace Catalog Service__ + - ### Features + - Added three new APIs to support resource sharing: GetResourcePolicy, PutResourcePolicy, and DeleteResourcePolicy. Added new OwnershipType field to ListEntities request to let users filter on entities that are shared with them. Increased max page size of ListEntities response from 20 to 50 results. + +## __AWS SDK for Java v2__ + - ### Features + - Expose StandardRetryOptions of S3ClientOptions in the S3CrtClient Interface + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - This release adds the ability to configure an agent's routing profile to receive contacts from multiple channels at the same time via extending the UpdateRoutingProfileConcurrency, CreateRoutingProfile and DescribeRoutingProfile APIs. + +## __Amazon EC2 Container Service__ + - ### Features + - This release adds support for enabling FIPS compliance on Amazon ECS Fargate tasks + +## __Amazon Omics__ + - ### Features + - Remove unexpected API changes. + +## __Amazon Rekognition__ + - ### Features + - This release adds support for Face Liveness APIs in Amazon Rekognition. Updates UpdateStreamProcessor to return ResourceInUseException Exception. Minor updates to API documentation. + +# __2.20.42__ __2023-04-07__ +## __AWS Lambda__ + - ### Features + - This release adds a new Lambda InvokeWithResponseStream API to support streaming Lambda function responses. The release also adds a new InvokeMode parameter to Function Url APIs to control whether the response will be streamed or buffered. + +## __AWS Service Catalog__ + - ### Features + - Updates description for property + +## __Amazon Data Lifecycle Manager__ + - ### Features + - Updated timestamp format for GetLifecyclePolicy API + +## __Amazon DocumentDB with MongoDB compatibility__ + - ### Features + - This release adds a new parameter 'DBClusterParameterGroupName' to 'RestoreDBClusterFromSnapshot' API to associate the name of the DB cluster parameter group while performing restore. + +## __Amazon DynamoDB Enhanced Client__ + - ### Bugfixes + - Include flattened mappers in attribute converter resolution + - Contributed by: [@akiesler](https://github.com/akiesler) + +## __Amazon FSx__ + - ### Features + - Amazon FSx for Lustre now supports creating data repository associations on Persistent_1 and Scratch_2 file systems. + +## __Amazon QuickSight__ + - ### Features + - This release has two changes: adding the OR condition to tag-based RLS rules in CreateDataSet and UpdateDataSet; adding RefreshSchedule and Incremental RefreshProperties operations for users to programmatically configure SPICE dataset ingestions. + +## __Amazon S3__ + - ### Features + - Add support for the following in the CRT S3 client: + + - Enabling/disabling accelerate endpoints + - Using pathstyle addressing + +## __Redshift Data API Service__ + - ### Features + - Update documentation of API descriptions as needed in support of temporary credentials with IAM identity. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@akiesler](https://github.com/akiesler) +# __2.20.41__ __2023-04-06__ +## __AWS CloudFormation__ + - ### Features + - Including UPDATE_COMPLETE as a failed status for DeleteStack waiter. + +## __AWS IoT Greengrass V2__ + - ### Features + - Add support for SUCCEEDED value in coreDeviceExecutionStatus field. Documentation updates for Greengrass V2. + +## __AWS Proton__ + - ### Features + - This release adds support for the AWS Proton service sync feature. Service sync enables managing an AWS Proton service (creating and updating instances) and all of it's corresponding service instances from a Git repository. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Relational Database Service__ + - ### Features + - Adds and updates the SDK examples + +## __Amazon S3__ + - ### Features + - Adding feature for parsing S3 URIs + +# __2.20.40__ __2023-04-05__ +## __AWS App Runner__ + - ### Features + - App Runner adds support for seven new vCPU and memory configurations. + +## __AWS Config__ + - ### Features + - This release adds resourceType enums for types released in March 2023. + +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall now supports IPv6-only subnets. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS SSO Identity Store__ + - ### Features + - Documentation updates for Identity Store CLI command reference. + +## __AWS Service Catalog__ + - ### Features + - removed incorrect product type value + +## __Amazon EC2 Container Service__ + - ### Features + - This is a document only updated to add information about Amazon Elastic Inference (EI). + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Fix ParticipantToken ExpirationTime format + +## __Amazon VPC Lattice__ + - ### Features + - This release removes the entities in the API doc model package for auth policies. + +# __2.20.39__ __2023-04-04__ +## __AWS Amplify UI Builder__ + - ### Features + - Support StorageField and custom displays for data-bound options in form builder. Support non-string operands for predicates in collections. Support choosing client to get token from. + +## __AWS Data Exchange__ + - ### Features + - This release updates the value of MaxResults. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - This release rolls back association config feature for webACLs that protect CloudFront protections. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - C6in, M6in, M6idn, R6in and R6idn bare metal instances are powered by 3rd Generation Intel Xeon Scalable processors and offer up to 200 Gbps of network bandwidth. + +## __Amazon Elastic Inference__ + - ### Features + - Updated public documentation for the Describe and Tagging APIs. + +## __Amazon SageMaker Runtime__ + - ### Features + - Amazon SageMaker Asynchronous Inference now provides customers a FailureLocation as a response parameter in InvokeEndpointAsync API to capture the model failure responses. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Asynchronous Inference now allows customer's to receive failure model responses in S3 and receive success/failure model responses in SNS notifications. + +## __Auto Scaling__ + - ### Features + - Documentation updates for Amazon EC2 Auto Scaling + +# __2.20.38__ __2023-04-03__ +## __AWS Glue__ + - ### Features + - Add support for database-level federation + +## __AWS Lake Formation__ + - ### Features + - Add support for database-level federation + +## __AWS License Manager__ + - ### Features + - This release adds grant override options to the CreateGrantVersion API. These options can be used to specify grant replacement behavior during grant activation. + +## __AWS SDK for Java v2__ + - ### Features + - Added option of using an explicit `ExecutorService` in `FileAsyncResponseTransformer` + - Contributed by: [@mpdn](https://github.com/mpdn) + - Updated endpoint and partition metadata. + +## __AWS Service Catalog__ + - ### Features + - This release introduces Service Catalog support for Terraform open source. It enables 1. The notify* APIs to Service Catalog. These APIs are used by the terraform engine to notify the result of the provisioning engine execution. 2. Adds a new TERRAFORM_OPEN_SOURCE product type in CreateProduct API. + +## __AWS WAFV2__ + - ### Features + - For web ACLs that protect CloudFront protections, the default request body inspection size is now 16 KB, and you can use the new association configuration to increase the inspection size further, up to 64 KB. Sizes over 16 KB can incur additional costs. + +## __AmazonMWAA__ + - ### Features + - This Amazon MWAA release adds the ability to customize the Apache Airflow environment by launching a shell script at startup. This shell script is hosted in your environment's Amazon S3 bucket. Amazon MWAA runs the script before installing requirements and initializing the Apache Airflow process. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@mpdn](https://github.com/mpdn) +# __2.20.37__ __2023-03-31__ +## __AWS CRT-based S3 client__ + - ### Bugfixes + - Fixed the issue where AWS CRT-based S3 client was eagerly buffering data before the underlying CRT component was able to handle it. See [#3726](https://github.com/aws/aws-sdk-java-v2/issues/3726) + - Reduced the buffer used to upload object from 16MB to 1MB. + +## __AWS Resilience Hub__ + - ### Features + - Adding EKS related documentation for appTemplateBody + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Server Migration Service__ + - ### Features + - Deprecating AWS Server Migration Service. + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - This release adds a new feature for Amazon CloudWatch Internet Monitor that enables customers to deliver internet measurements to Amazon S3 buckets as well as CloudWatch Logs. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Documentation updates for EC2 On Demand Capacity Reservations + +## __Amazon SageMaker Feature Store Runtime__ + - ### Features + - In this release, you can now chose between soft delete and hard delete when calling the DeleteRecord API, so you have more flexibility when it comes to managing online store data. + +## __Amazon Simple Storage Service__ + - ### Features + - Documentation updates for Amazon S3 + +# __2.20.36__ __2023-03-30__ +## __AWS Batch__ + - ### Features + - This feature allows Batch on EKS to support configuration of Pod Labels through Metadata for Batch on EKS Jobs. + +## __AWS Compute Optimizer__ + - ### Features + - This release adds support for HDD EBS volume types and io2 Block Express. We are also adding support for 61 new instance types and instances that have non consecutive runtime. + +## __AWS Glue__ + - ### Features + - This release adds support for AWS Glue Data Quality, which helps you evaluate and monitor the quality of your data and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations. + +## __AWS Network Firewall__ + - ### Features + - AWS Network Firewall added TLS inspection configurations to allow TLS traffic inspection. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Well-Architected Tool__ + - ### Features + - AWS Well-Architected SDK now supports getting consolidated report metrics and generating a consolidated report PDF. + +## __AWSKendraFrontendService__ + - ### Features + - AWS Kendra now supports featured results for a query. + +## __Amazon Athena__ + - ### Features + - Make DefaultExecutorDpuSize and CoordinatorDpuSize fields optional in StartSession + +## __Amazon EMR__ + - ### Features + - Updated DescribeCluster and ListClusters API responses to include ErrorDetail that specifies error code, programmatically accessible error data,and an error message. ErrorDetail provides the underlying reason for cluster failure and recommends actions to simplify troubleshooting of EMR clusters. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for Tunnel Endpoint Lifecycle control, a new feature that provides Site-to-Site VPN customers with better visibility and control of their VPN tunnel maintenance updates. + +## __Amazon GuardDuty__ + - ### Features + - Added EKS Runtime Monitoring feature support to existing detector, finding APIs and introducing new Coverage APIs + +## __Amazon Interactive Video Service__ + - ### Features + - Amazon Interactive Video Service (IVS) now offers customers the ability to configure IVS channels to allow insecure RTMP ingest. + +## __Amazon SageMaker geospatial capabilities__ + - ### Features + - Amazon SageMaker geospatial capabilities now supports server-side encryption with customer managed KMS key and SageMaker notebooks with a SageMaker geospatial image in a Amazon SageMaker Domain with VPC only mode. + +## __Amazon VPC Lattice__ + - ### Features + - General Availability (GA) release of Amazon VPC Lattice + +## __Auto Scaling__ + - ### Features + - Amazon EC2 Auto Scaling now supports Elastic Load Balancing traffic sources with the AttachTrafficSources, DetachTrafficSources, and DescribeTrafficSources APIs. This release also introduces a new activity status, "WaitingForConnectionDraining", for VPC Lattice to the DescribeScalingActivities API. + +## __EC2 Image Builder__ + - ### Features + - Adds support for new image workflow details and image vulnerability detection. + +## __Elastic Disaster Recovery Service__ + - ### Features + - Adding a field to the replication configuration APIs to support the auto replicate new disks feature. We also deprecated RetryDataReplication. + +# __2.20.35__ __2023-03-29__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Relational Database Service__ + - ### Features + - Add support for creating a read replica DB instance from a Multi-AZ DB cluster. + +## __OpenSearch Service Serverless__ + - ### Features + - This release includes two new exception types "ServiceQuotaExceededException" and "OcuLimitExceededException". + +# __2.20.34__ __2023-03-28__ +## __AWS IoT Data Plane__ + - ### Features + - Add endpoint ruleset support for cn-north-1. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - A binary attribute value must be encoded in base64 format for its String representation in EnhancedDocument.toJson() API + +## __AWS Systems Manager Incident Manager__ + - ### Features + - Increased maximum length of "TriggerDetails.rawData" to 10K characters and "IncidentSummary" to 8K characters. + +## __AWS Systems Manager Incident Manager Contacts__ + - ### Features + - This release adds 12 new APIs as part of Oncall Schedule feature release, adds support for a new contact type: ONCALL_SCHEDULE. Check public documentation for AWS ssm-contacts for more information + +# __2.20.33__ __2023-03-27__ +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive now supports ID3 tag insertion for audio only HLS output groups. AWS Elemental Link devices now support tagging. + +## __AWS IoT Wireless__ + - ### Features + - Introducing new APIs that enable Sidewalk devices to communicate with AWS IoT Core through Sidewalk gateways. This will empower AWS customers to connect Sidewalk devices with other AWS IoT Services, creating possibilities for seamless integration and advanced device management. + +## __AWS SecurityHub__ + - ### Features + - Added new resource detail objects to ASFF, including resources for AwsEksCluster, AWSS3Bucket, AwsEc2RouteTable and AwsEC2Instance. + +## __AWS Service Catalog App Registry__ + - ### Features + - In this release, we started supporting ARN in applicationSpecifier and attributeGroupSpecifier. GetAttributeGroup, ListAttributeGroups and ListAttributeGroupsForApplication APIs will now have CreatedBy field in the response. + +## __Amazon Athena__ + - ### Features + - Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries. + +## __Amazon Chime SDK Voice__ + - ### Features + - Documentation updates for Amazon Chime SDK Voice. + +## __Amazon Connect Participant Service__ + - ### Features + - This release provides an update to the SendMessage API to handle interactive message response content-types. + +## __Amazon Connect Service__ + - ### Features + - This release introduces support for RelatedContactId in the StartChatContact API. Interactive message and interactive message response have been added to the list of supported message content types for this API as well. + +## __Amazon SageMaker Service__ + - ### Features + - Fixed some improperly rendered links in SDK documentation. + +## __Amazon Voice ID__ + - ### Features + - Amazon Connect Voice ID now supports multiple fraudster watchlists. Every domain has a default watchlist where all existing fraudsters are placed by default. Custom watchlists may now be created, managed, and evaluated against for known fraudster detection. + +# __2.20.32__ __2023-03-24__ +## __AWS SDK for Java v2__ + - ### Features + - Adds ServiceClientConfiguration to SdkClient which exposes client settings to the user + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch__ + - ### Features + - Doc-only update to correct alarm actions list + +## __Amazon Comprehend__ + - ### Features + - This release adds a new field (FlywheelArn) to the EntitiesDetectionJobProperties object. The FlywheelArn field is returned in the DescribeEntitiesDetectionJob and ListEntitiesDetectionJobs responses when the EntitiesDetection job is started with a FlywheelArn instead of an EntityRecognizerArn . + +## __Amazon Relational Database Service__ + - ### Features + - Added error code CreateCustomDBEngineVersionFault for when the create custom engine version for Custom engines fails. + +## __Netty NIO HTTP Client__ + - ### Bugfixes + - Fix a bug where, if validation of of the amount of expected data to be received (HTTP `Content-Length`) fails, the connection would be left dangling, consuming a connection from the pool until the client is shut down. + +# __2.20.31__ __2023-03-23__ +## __AWS Batch__ + - ### Features + - This feature allows Batch to support configuration of ephemeral storage size for jobs running on FARGATE + +## __AWS Cloud Map__ + - ### Features + - Reverted the throttling exception RequestLimitExceeded for AWS Cloud Map APIs introduced in SDK version 1.12.424 2023-03-09 to previous exception specified in the ErrorCode. + +## __AWS Elemental MediaConvert__ + - ### Features + - AWS Elemental MediaConvert SDK now supports passthrough of ID3v2 tags for audio inputs to audio-only HLS outputs. + +## __AWS SDK for Java v2__ + - ### Features + - Introducing Enhanced Document API: A Higher-Level API for Working with Amazon DynamoDB Items + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Identity__ + - ### Features + - AppInstanceBots can be used to add a bot powered by Amazon Lex to chat channels. ExpirationSettings provides automatic resource deletion for AppInstanceUsers. + +## __Amazon Chime SDK Media Pipelines__ + - ### Features + - This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio. + +## __Amazon Chime SDK Messaging__ + - ### Features + - ExpirationSettings provides automatic resource deletion for Channels. + +## __Amazon Chime SDK Voice__ + - ### Features + - This release adds Amazon Chime SDK call analytics. Call analytics include voice analytics, which provides speaker search and voice tone analysis. These capabilities can be used with Amazon Transcribe and Transcribe Call Analytics to generate machine-learning-powered insights from real-time audio. + +## __Amazon GuardDuty__ + - ### Features + - Adds AutoEnableOrganizationMembers attribute to DescribeOrganizationConfiguration and UpdateOrganizationConfiguration APIs. + +## __Amazon Interactive Video Service RealTime__ + - ### Features + - Initial release of the Amazon Interactive Video Service RealTime API. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds two new APIs - CreateAutoMLJobV2 and DescribeAutoMLJobV2. Amazon SageMaker Notebook Instances now supports the ml.geospatial.interactive instance type. + +## __Amazon Textract__ + - ### Features + - The AnalyzeDocument - Tables feature adds support for new elements in the API: table titles, footers, section titles, summary cells/tables, and table type. + +## __CodeArtifact__ + - ### Features + - Repository CreationTime is added to the CreateRepository and ListRepositories API responses. + +# __2.20.30__ __2023-03-22__ +## __AWS Identity and Access Management__ + - ### Features + - Documentation updates for AWS Identity and Access Management (IAM). + +## __AWS IoT TwinMaker__ + - ### Features + - This release adds support of adding metadata when creating a new scene or updating an existing scene. + +## __AWS Network Manager__ + - ### Features + - This release includes an update to create-transit-gateway-route-table-attachment, showing example usage for TransitGatewayRouteTableArn. + +## __AWS Resilience Hub__ + - ### Features + - This release provides customers with the ability to import resources from within an EKS cluster and assess the resiliency of EKS cluster workloads. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EventBridge Pipes__ + - ### Features + - This release improves validation on the ARNs in the API model + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - This Patch Manager release supports creating, updating, and deleting Patch Baselines for AmazonLinux2023, AlmaLinux. + +# __2.20.29__ __2023-03-21__ +## __AWS Clean Rooms Service__ + - ### Features + - GA Release of AWS Clean Rooms, Added Tagging Functionality + +## __AWS IoT SiteWise__ + - ### Features + - Provide support for tagging of data streams and enabling tag based authorization for property alias + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Chime SDK Messaging__ + - ### Features + - Amazon Chime SDK messaging customers can now manage streaming configuration for messaging data for archival and analysis. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for AWS Network Firewall, AWS PrivateLink, and Gateway Load Balancers to Amazon VPC Reachability Analyzer, and it makes the path destination optional as long as a destination address in the filter at source is provided. + +## __Application Migration Service__ + - ### Features + - This release introduces the Import and export feature and expansion of the post-launch actions + +# __2.20.28__ __2023-03-20__ +## __AWS CRT-based S3 client__ + - ### Features + - Exposes `S3CrtHttpConfiguration` to allow users to configure HTTP settings such as proxy and connection timeout on AWS CRT-based S3 client. [#3262](https://github.com/aws/aws-sdk-java-v2/issues/3262) + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Neptune__ + - ### Features + - This release makes following few changes. db-cluster-identifier is now a required parameter of create-db-instance. describe-db-cluster will now return PendingModifiedValues and GlobalClusterIdentifier fields in the response. + +## __Amazon S3 on Outposts__ + - ### Features + - S3 On Outposts added support for endpoint status, and a failed endpoint reason, if any + +## __Amazon WorkDocs__ + - ### Features + - This release adds a new API, SearchResources, which enable users to search through metadata and content of folders, documents, document versions and comments in a WorkDocs site. + +## __Application Auto Scaling__ + - ### Features + - With this release customers can now tag their Application Auto Scaling registered targets with key-value pairs and manage IAM permissions for all the tagged resources centrally. + +# __2.20.27__ __2023-03-17__ +## __AWS Config__ + - ### Features + - This release adds resourceType enums for types released from October 2022 through February 2023. + +## __AWS Database Migration Service__ + - ### Features + - S3 setting to create AWS Glue Data Catalog. Oracle setting to control conversion of timestamp column. Support for Kafka SASL Plain authentication. Setting to map boolean from PostgreSQL to Redshift. SQL Server settings to force lob lookup on inline LOBs and to control access of database logs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWSBillingConductor__ + - ### Features + - This release adds a new filter to ListAccountAssociations API and a new filter to ListBillingGroups API. + +# __2.20.26__ __2023-03-16__ +## __AWS Resource Explorer__ + - ### Features + - Documentation updates for APIs. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon GuardDuty__ + - ### Features + - Updated 9 APIs for feature enablement to reflect expansion of GuardDuty to features. Added new APIs and updated existing APIs to support RDS Protection GA. + +## __Amazon SageMaker Runtime__ + - ### Features + - Documentation updates for SageMaker Runtime + +# __2.20.25__ __2023-03-15__ +## __AWS S3 Control__ + - ### Features + - Added support for S3 Object Lambda aliases. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Security Lake__ + - ### Features + - Make Create/Get/ListSubscribers APIs return resource share ARN and name so they can be used to validate the RAM resource share to accept. GetDatalake can be used to track status of UpdateDatalake and DeleteDatalake requests. + +## __Migration Hub Strategy Recommendations__ + - ### Features + - This release adds the binary analysis that analyzes IIS application DLLs on Windows and Java applications on Linux to provide anti-pattern report without configuring access to the source code. + +# __2.20.24__ __2023-03-14__ +## __AWS Data Exchange__ + - ### Features + - This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies. + +## __AWS Direct Connect__ + - ### Features + - describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating. + +## __AWS Identity and Access Management__ + - ### Features + - Documentation only updates to correct customer-reported issues + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs. + +## __Amazon Keyspaces__ + - ### Features + - Adding support for client-side timestamps + +## __Application Auto Scaling__ + - ### Features + - Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric. + +# __2.20.23__ __2023-03-13__ +## __AWS Lake Formation__ + - ### Features + - This release updates the documentation regarding Get/Update DataCellsFilter + +## __AWS S3 Control__ + - ### Features + - Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Telco Network Builder__ + - ### Features + - This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate. + +## __Amazon AppIntegrations Service__ + - ### Features + - Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint. + +## __Amazon Connect Wisdom Service__ + - ### Features + - This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField + +# __2.20.22__ __2023-03-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS Secrets Manager__ + - ### Features + - The type definitions of SecretString and SecretBinary now have a minimum length of 1 in the model to match the exception thrown when you pass in empty values. + +## __Amazon Interactive Video Service Chat__ + - ### Features + - This release adds a new exception returned when calling AWS IVS chat UpdateLoggingConfiguration. Now UpdateLoggingConfiguration can return ConflictException when invalid updates are made in sequence to Logging Configurations. + +# __2.20.21__ __2023-03-09__ +## __AWS Cloud Map__ + - ### Features + - Updated all AWS Cloud Map APIs to provide consistent throttling exception (RequestLimitExceeded) + +## __AWS Network Manager__ + - ### Features + - This update provides example usage for TransitGatewayRouteTableArn. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CloudWatch Evidently__ + - ### Features + - Updated entity override documentation + +## __Amazon Connect Service__ + - ### Features + - This release adds a new API, GetMetricDataV2, which returns metric data for Amazon Connect. + +## __Amazon QuickSight__ + - ### Features + - This release has two changes: add state persistence feature for embedded dashboard and console in GenerateEmbedUrlForRegisteredUser API; add properties for hidden collapsed row dimensions in PivotTableOptions. + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Inference now allows SSM access to customer's model container by setting the "EnableSSMAccess" parameter for a ProductionVariant in CreateEndpointConfig API. + +## __Amazon Simple Email Service__ + - ### Features + - This release introduces a new recommendation in Virtual Deliverability Manager Advisor, which detects missing or misconfigured Brand Indicator for Message Identification (BIMI) DNS records for customer sending identities. + +## __CodeArtifact__ + - ### Features + - This release introduces the generic package format, a mechanism for storing arbitrary binary assets. It also adds a new API, PublishPackageVersion, to allow for publishing generic packages. + +## __Redshift Data API Service__ + - ### Features + - Added support for Redshift Serverless workgroup-arn wherever the WorkgroupName parameter is available. + +# __2.20.20__ __2023-03-08__ +## __AWS Elemental MediaPackage__ + - ### Features + - This release provides the date and time live resources were created. + +## __AWS Elemental MediaPackage VOD__ + - ### Features + - This release provides the date and time VOD resources were created. + +## __AWS Lake Formation__ + - ### Features + - This release adds two new API support "GetDataCellsFiler" and "UpdateDataCellsFilter", and also updates the corresponding documentation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Athena__ + - ### Features + - A new field SubstatementType is added to GetQueryExecution API, so customers have an error free way to detect the query type and interpret the result. + +## __Amazon DynamoDB__ + - ### Features + - Adds deletion protection support to DynamoDB tables. Tables with deletion protection enabled cannot be deleted. Deletion protection is disabled by default, can be enabled via the CreateTable or UpdateTable APIs, and is visible in TableDescription. This setting is not replicated for Global Tables. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Introducing Amazon EC2 C7g, M7g and R7g instances, powered by the latest generation AWS Graviton3 processors and deliver up to 25% better performance over Graviton2-based instances. + +## __Amazon Route 53 Resolver__ + - ### Features + - Add dual-stack and IPv6 support for Route 53 Resolver Endpoint,Add IPv6 target IP in Route 53 Resolver Forwarding Rule + +## __Amazon S3__ + - ### Features + - Adding PartType field to UploadPartRequest to indicate whether the part is the last part or not. + +## __Amazon SageMaker Service__ + - ### Features + - There needs to be a user identity to specify the SageMaker user who perform each action regarding the entity. However, these is a not a unified concept of user identity across SageMaker service that could be used today. + +# __2.20.19__ __2023-03-07__ +## __AWS Database Migration Service__ + - ### Features + - This release adds DMS Fleet Advisor Target Recommendation APIs and exposes functionality for DMS Fleet Advisor. It adds functionality to start Target Recommendation calculation. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Location Service__ + - ### Features + - Documentation update for the release of 3 additional map styles for use with Open Data Maps: Open Data Standard Dark, Open Data Visualization Light & Open Data Visualization Dark. + +# __2.20.18__ __2023-03-06__ +## __AWS Account__ + - ### Features + - AWS Account alternate contact email addresses can now have a length of 254 characters and contain the character "|". + +## __Amazon Interactive Video Service__ + - ### Features + - Updated text description in DeleteChannel, Stream, and StreamSummary. + +# __2.20.17__ __2023-03-03__ +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has improved handling for different input and output color space combinations. + +## __AWS Elemental MediaLive__ + - ### Features + - AWS Elemental MediaLive adds support for Nielsen watermark timezones. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon DynamoDB__ + - ### Features + - Documentation updates for DynamoDB. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release adds support for a new boot mode for EC2 instances called 'UEFI Preferred'. + +## __Amazon Macie 2__ + - ### Features + - Documentation updates for Amazon Macie + +## __Amazon Transcribe Service__ + - ### Features + - Amazon Transcribe now supports role access for these API operations: CreateVocabulary, UpdateVocabulary, CreateVocabularyFilter, and UpdateVocabularyFilter. + +# __2.20.16__ __2023-03-02__ +## __AWS IoT__ + - ### Features + - A recurring maintenance window is an optional configuration used for rolling out the job document to all devices in the target group observing a predetermined start time, duration, and frequency that the maintenance window occurs. + +## __AWS Organizations__ + - ### Features + - This release introduces a new reason code, ACCOUNT_CREATION_NOT_COMPLETE, to ConstraintViolationException in CreateOrganization API. + +## __AWS Performance Insights__ + - ### Features + - This release adds a new field PeriodAlignment to allow the customer specifying the returned timestamp of time periods to be either the start or end time. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon EventBridge Pipes__ + - ### Features + - This release fixes some input parameter range and patterns. + +## __Amazon SageMaker Service__ + - ### Features + - Add a new field "EndpointMetrics" in SageMaker Inference Recommender "ListInferenceRecommendationsJobSteps" API response. + +## __Migration Hub Strategy Recommendations__ + - ### Features + - This release updates the File Import API to allow importing servers already discovered by customers with reduced pre-requisites. + +# __2.20.15__ __2023-03-01__ +## __AWS Price List Service__ + - ### Features + - This release adds 2 new APIs - ListPriceLists which returns a list of applicable price lists, and GetPriceListFileUrl which outputs a URL to retrieve your price lists from the generated file from ListPriceLists + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon CodeCatalyst__ + - ### Features + - Published Dev Environments StopDevEnvironmentSession API + +## __Amazon S3 on Outposts__ + - ### Features + - S3 on Outposts introduces a new API ListOutpostsWithS3, with this API you can list all your Outposts with S3 capacity. + +# __2.20.14__ __2023-02-28__ +## __AWS Key Management Service__ + - ### Features + - AWS KMS is deprecating the RSAES_PKCS1_V1_5 wrapping algorithm option in the GetParametersForImport API that is used in the AWS KMS Import Key Material feature. AWS KMS will end support for this wrapping algorithm by October 1, 2023. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Add commons-codec to bom-internal to fix dependency convergence issue. See [#3787](https://github.com/aws/aws-sdk-java-v2/issues/3787) + +## __Amazon Comprehend__ + - ### Features + - Amazon Comprehend now supports flywheels to help you train and manage new model versions for custom models. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - This release allows IMDS support to be set to v2-only on an existing AMI, so that all future instances launched from that AMI will use IMDSv2 by default. + +## __Amazon Lightsail__ + - ### Features + - This release adds Lightsail for Research feature support, such as GUI session access, cost estimates, stop instance on idle, and disk auto mount. + +## __Amazon Managed Blockchain__ + - ### Features + - This release adds support for tagging to the accessor resource in Amazon Managed Blockchain + +## __Amazon Omics__ + - ### Features + - Minor model changes to accomodate batch imports feature + +# __2.20.13__ __2023-02-27__ +## __AWS Elemental MediaConvert__ + - ### Features + - The AWS Elemental MediaConvert SDK has added support for HDR10 to SDR tone mapping, and animated GIF video input sources. + +## __AWS Lambda__ + - ### Features + - This release adds the ability to create ESMs with Document DB change streams as event source. For more information see https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix race in FlatteningSubscriber where onClose called before items passed to onNext. See [#3734](https://github.com/aws/aws-sdk-java-v2/issues/3734) + - Contributed by: [@stevenshan](https://github.com/stevenshan) + +## __Amazon CloudWatch Internet Monitor__ + - ### Features + - CloudWatch Internet Monitor is a a new service within CloudWatch that will help application developers and network engineers continuously monitor internet performance metrics such as availability and performance between their AWS-hosted applications and end-users of these applications + +## __Amazon DevOps Guru__ + - ### Features + - This release adds the description field on ListAnomaliesForInsight and DescribeAnomaly API responses for proactive anomalies. + +## __Amazon Timestream Write__ + - ### Features + - This release adds the ability to ingest batched historical data or migrate data in bulk from S3 into Timestream using CSV files. + +## __Elastic Disaster Recovery Service__ + - ### Features + - New fields were added to reflect availability zone data in source server and recovery instance description commands responses, as well as source server launch status. + +## __Contributors__ +Special thanks to the following contributors to this release: + +[@stevenshan](https://github.com/stevenshan) +# __2.20.12__ __2023-02-24__ +## __AWS SecurityHub__ + - ### Features + - New Security Hub APIs and updates to existing APIs that help you consolidate control findings and enable and disable controls across all supported standards + +## __AWS Service Catalog__ + - ### Features + - Documentation updates for Service Catalog + +## __Amazon Connect Cases__ + - ### Features + - This release adds the ability to delete domains through the DeleteDomain API. For more information see https://docs.aws.amazon.com/cases/latest/APIReference/Welcome.html + +## __Amazon Connect Service__ + - ### Features + - StartTaskContact API now supports linked task creation with a new optional RelatedContactId parameter + +## __Amazon Redshift__ + - ### Features + - Documentation updates for Redshift API bringing it in line with IAM best practices. + +# __2.20.11__ __2023-02-23__ +## __AWS IoT Wireless__ + - ### Features + - In this release, we add additional capabilities for the FUOTA which allows user to configure the fragment size, the sending interval and the redundancy ratio of the FUOTA tasks + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - You can now associate an AWS WAF v2 web ACL with an AWS App Runner service. + +## __Amazon Appflow__ + - ### Features + - This release enables the customers to choose whether to use Private Link for Metadata and Authorization call when using a private Salesforce connections + +## __Amazon EC2 Container Service__ + - ### Features + - This release supports deleting Amazon ECS task definitions that are in the INACTIVE state. + +## __Amazon GuardDuty__ + - ### Features + - Updated API and data types descriptions for CreateFilter, UpdateFilter, and TriggerDetails. + +## __Amazon Location Service__ + - ### Features + - This release adds support for using Maps APIs with an API Key in addition to AWS Cognito. This includes support for adding, listing, updating and deleting API Keys. + +## __Amazon Macie 2__ + - ### Features + - This release adds support for a new finding type, Policy:IAMUser/S3BucketSharedWithCloudFront, and S3 bucket metadata that indicates if a bucket is shared with an Amazon CloudFront OAI or OAC. + +## __Amazon Managed Grafana__ + - ### Features + - Doc-only update. Updated information on attached role policies for customer provided roles + +# __2.20.10__ __2023-02-22__ +## __AWS DataSync__ + - ### Features + - AWS DataSync has relaxed the minimum length constraint of AccessKey for Object Storage locations to 1. + +## __Amazon Chime SDK Voice__ + - ### Features + - This release introduces support for Voice Connector media metrics in the Amazon Chime SDK Voice namespace + +## __Amazon CloudFront__ + - ### Features + - CloudFront now supports block lists in origin request policies so that you can forward all headers, cookies, or query string from viewer requests to the origin *except* for those specified in the block list. + +## __Amazon OpenSearch Service__ + - ### Features + - This release lets customers configure Off-peak window and software update related properties for a new/existing domain. It enhances the capabilities of StartServiceSoftwareUpdate API; adds 2 new APIs - ListScheduledActions & UpdateScheduledAction; and allows Auto-tune to make use of Off-peak window. + +## __Amazon Simple Systems Manager (SSM)__ + - ### Features + - Document only update for Feb 2023 + +## __CloudWatch RUM__ + - ### Features + - CloudWatch RUM now supports CloudWatch Custom Metrics + +# __2.20.9__ __2023-02-21__ +## __AWS Resilience Hub__ + - ### Features + - In this release we improved resilience hub application creation and maintenance by introducing new resource and app component crud APIs, improving visibility and maintenance of application input sources and added support for additional information attributes to be provided by customers. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Fix race condition that could cause a NullPointerException to be raised from ProfileCredentialsProvider. + +## __AWS SecurityHub__ + - ### Features + - Documentation updates for AWS Security Hub + +## __AWS Telco Network Builder__ + - ### Features + - This is the initial SDK release for AWS Telco Network Builder (TNB). AWS Telco Network Builder is a network automation service that helps you deploy and manage telecom networks. + +## __Amazon QuickSight__ + - ### Features + - S3 data sources now accept a custom IAM role. + +# __2.20.8__ __2023-02-20__ +## __AWS Audit Manager__ + - ### Features + - This release introduces a ServiceQuotaExceededException to the UpdateAssessmentFrameworkShare API operation. + +## __Amazon Connect Service__ + - ### Features + - Reasons for failed diff has been approved by SDK Reviewer + +# __2.20.7__ __2023-02-17__ +## __AWS App Runner__ + - ### Features + - This release supports removing MaxSize limit for AutoScalingConfiguration. + +## __AWS Glue__ + - ### Features + - Release of Delta Lake Data Lake Format for Glue Studio Service + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +# __2.20.6__ __2023-02-16__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - Added a notice for account takeover prevention (ATP). The interface incorrectly lets you to configure ATP response inspection in regional web ACLs in Region US East (N. Virginia), without returning an error. ATP response inspection is only available in web ACLs that protect CloudFront distributions. + +## __Amazon EMR__ + - ### Features + - This release provides customers the ability to define a timeout period for procuring capacity during a resize operation for Instance Fleet clusters. Customers can specify this timeout using the ResizeSpecifications parameter supported by RunJobFlow, ModifyInstanceFleet and AddInstanceFleet APIs. + +## __Amazon Interactive Video Service__ + - ### Features + - Doc-only update. Updated text description in DeleteChannel, Stream, and StreamSummary. + +## __Amazon Managed Grafana__ + - ### Features + - With this release Amazon Managed Grafana now supports inbound Network Access Control that helps you to restrict user access to your Grafana workspaces + +# __2.20.5__ __2023-02-15__ +## __AWS CloudTrail__ + - ### Features + - This release adds an InsufficientEncryptionPolicyException type to the StartImport endpoint + +## __AWS Glue__ + - ### Features + - Fix DirectJDBCSource not showing up in CLI code gen + +## __AWS Private 5G__ + - ### Features + - This release introduces a new StartNetworkResourceUpdate API, which enables return/replacement of hardware from a NetworkSite. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __AWS WAFV2__ + - ### Features + - For protected CloudFront distributions, you can now use the AWS WAF Fraud Control account takeover prevention (ATP) managed rule group to block new login attempts from clients that have recently submitted too many failed login attempts. + +## __Amazon Elastic File System__ + - ### Features + - Documentation update for EFS to support IAM best practices. + +## __Amazon Fraud Detector__ + - ### Features + - This release introduces Lists feature which allows customers to reference a set of values in Fraud Detector's rules. With Lists, customers can dynamically manage these attributes in real time. Lists can be created/deleted and its contents can be modified using the Fraud Detector API. + +## __Amazon Relational Database Service__ + - ### Features + - Database Activity Stream support for RDS for SQL Server. + +# __2.20.4__ __2023-02-14__ +## __AWS DataSync__ + - ### Features + - With this launch, we are giving customers the ability to use older SMB protocol versions, enabling them to use DataSync to copy data to and from their legacy storage arrays. + +## __Amazon AppConfig__ + - ### Features + - AWS AppConfig now offers the option to set a version label on hosted configuration versions. Version labels allow you to identify specific hosted configuration versions based on an alternate versioning scheme that you define. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - With this release customers can turn host maintenance on or off when allocating or modifying a supported dedicated host. Host maintenance is turned on by default for supported hosts. + +# __2.20.3__ __2023-02-13__ +## __AWS Account__ + - ### Features + - This release of the Account Management API enables customers to view and manage whether AWS Opt-In Regions are enabled or disabled for their Account. For more information, see https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html + +## __AWS AppConfig Data__ + - ### Features + - AWS AppConfig now offers the option to set a version label on hosted configuration versions. If a labeled hosted configuration version is deployed, its version label is available in the GetLatestConfiguration response. + +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + + - ### Bugfixes + - Keep precedence of options when passed to ProfileFileSupplier.aggregate + +## __Amazon Import/Export Snowball__ + - ### Features + - Adds support for EKS Anywhere on Snowball. AWS Snow Family customers can now install EKS Anywhere service on Snowball Edge Compute Optimized devices. + +# __2.20.2__ __2023-02-10__ +## __AWS SDK for Java v2__ + - ### Features + - Updated endpoint and partition metadata. + +## __Amazon Connect Service__ + - ### Features + - This update provides the Wisdom session ARN for contacts enabled for Wisdom in the chat channel. + +## __Amazon Elastic Compute Cloud__ + - ### Features + - Adds support for waiters that automatically poll for an imported snapshot until it reaches the completed state. + +## __Amazon Polly__ + - ### Features + - Amazon Polly adds two new neural Japanese voices - Kazuha, Tomoko + +## __Amazon SageMaker Service__ + - ### Features + - Amazon SageMaker Autopilot adds support for selecting algorithms in CreateAutoMLJob API. + +## __Amazon Simple Notification Service__ + - ### Features + - This release adds support for SNS X-Ray active tracing as well as other updates. + +## __Auto Scaling__ + - ### Features + - You can now either terminate/replace, ignore, or wait for EC2 Auto Scaling instances on standby or protected from scale in. Also, you can also roll back changes from a failed instance refresh. + # __2.20.1__ __2023-02-09__ ## __AWS Migration Hub Refactor Spaces__ - ### Features diff --git a/README.md b/README.md index 7f7c2af18cb5..b6bec442464d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Gitter](https://badges.gitter.im/aws/aws-sdk-java-v2.svg)](https://gitter.im/aws/aws-sdk-java-v2?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![codecov](https://codecov.io/gh/aws/aws-sdk-java-v2/branch/master/graph/badge.svg)](https://codecov.io/gh/aws/aws-sdk-java-v2) -[![All Contributors](https://img.shields.io/badge/all_contributors-83-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-86-orange.svg?style=flat-square)](#contributors-) The **AWS SDK for Java 2.0** is a rewrite of 1.0 with some great new features. As with version 1.0, @@ -52,7 +52,7 @@ To automatically manage module versions (currently all modules have the same ver software.amazon.awssdk bom - 2.20.1 + 2.20.46 pom import @@ -86,12 +86,12 @@ Alternatively you can add dependencies for the specific services you use only: software.amazon.awssdk ec2 - 2.20.1 + 2.20.46 software.amazon.awssdk s3 - 2.20.1 + 2.20.46 ``` @@ -103,7 +103,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please software.amazon.awssdk aws-sdk-java - 2.20.1 + 2.20.46 ``` @@ -194,111 +194,116 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + + + + + +
sullis
sullis

💻
Austin Brooks
Austin Brooks

💻
Konrad `ktoso` Malawski
Konrad `ktoso` Malawski

💻
Andrew Hopkins
Andrew Hopkins

💻
Adam Thomas
Adam Thomas

💻
Steven Swor
Steven Swor

💻
Carey Burgess
Carey Burgess

💻
sullis
sullis

💻
Austin Brooks
Austin Brooks

💻
Konrad `ktoso` Malawski
Konrad `ktoso` Malawski

💻
Andrew Hopkins
Andrew Hopkins

💻
Adam Thomas
Adam Thomas

💻
Steven Swor
Steven Swor

💻
Carey Burgess
Carey Burgess

💻
Anuraag Agrawal
Anuraag Agrawal

💻
jeffalder
jeffalder

💻
Boris
Boris

💻
Guillaume Corré
Guillaume Corré

💻
Henri Yandell
Henri Yandell

💻
Ryan Schmitt
Ryan Schmitt

💻
Somaya
Somaya

💻
Anuraag Agrawal
Anuraag Agrawal

💻
jeffalder
jeffalder

💻
Boris
Boris

💻
Guillaume Corré
Guillaume Corré

💻
Henri Yandell
Henri Yandell

💻
Ryan Schmitt
Ryan Schmitt

💻
Somaya
Somaya

💻
Steven Aerts
Steven Aerts

💻
Steven Wong
Steven Wong

💻
Tomasz Elendt
Tomasz Elendt

💻
Will Erickson
Will Erickson

💻
Julien Hoarau
Julien Hoarau

💻
SEOKHYOENCHOI
SEOKHYOENCHOI

💻
adriannistor
adriannistor

💻
Steven Aerts
Steven Aerts

💻
Steven Wong
Steven Wong

💻
Tomasz Elendt
Tomasz Elendt

💻
Will Erickson
Will Erickson

💻
Julien Hoarau
Julien Hoarau

💻
SEOKHYOENCHOI
SEOKHYOENCHOI

💻
adriannistor
adriannistor

💻
Xian Sun
Xian Sun

💻
Andreas Scheja
Andreas Scheja

💻
Anton Egorov
Anton Egorov

💻
roexber
roexber

💻
brharrington
brharrington

💻
Christopher Radek
Christopher Radek

💻
Foivos
Foivos

💻
Xian Sun
Xian Sun

💻
Andreas Scheja
Andreas Scheja

💻
Anton Egorov
Anton Egorov

💻
roexber
roexber

💻
brharrington
brharrington

💻
Christopher Radek
Christopher Radek

💻
Foivos
Foivos

💻
Frank Wesemann
Frank Wesemann

💻
Gergely Varga
Gergely Varga

💻
Guillermo
Guillermo

💻
Henry Heikkinen
Henry Heikkinen

💻
Jochen Schalanda
Jochen Schalanda

💻
Joe Barnett
Joe Barnett

💻
Kazuhiro Sera
Kazuhiro Sera

💻
Frank Wesemann
Frank Wesemann

💻
Gergely Varga
Gergely Varga

💻
Guillermo
Guillermo

💻
Henry Heikkinen
Henry Heikkinen

💻
Jochen Schalanda
Jochen Schalanda

💻
Joe Barnett
Joe Barnett

💻
Kazuhiro Sera
Kazuhiro Sera

💻
Krishna Chaithanya Ganta
Krishna Chaithanya Ganta

💻
Lee Packham
Lee Packham

💻
Matteo Carrara
Matteo Carrara

💻
Michael Scharp
Michael Scharp

💻
Miguel Jimenez
Miguel Jimenez

💻
Russell Bolles
Russell Bolles

💻
Russell Scheerer
Russell Scheerer

💻
Krishna Chaithanya Ganta
Krishna Chaithanya Ganta

💻
Lee Packham
Lee Packham

💻
Matteo Carrara
Matteo Carrara

💻
Michael Scharp
Michael Scharp

💻
Miguel Jimenez
Miguel Jimenez

💻
Russell Bolles
Russell Bolles

💻
Russell Scheerer
Russell Scheerer

💻
Scott
Scott

💻
Shin'ya Ueoka
Shin'ya Ueoka

💻
sushilamazon
sushilamazon

💻
tomliu4uber
tomliu4uber

💻
Vladimir Orany
Vladimir Orany

💻
Xinyu Hu
Xinyu Hu

💻
Yosef Fertel
Yosef Fertel

💻
Scott
Scott

💻
Shin'ya Ueoka
Shin'ya Ueoka

💻
sushilamazon
sushilamazon

💻
tomliu4uber
tomliu4uber

💻
Vladimir Orany
Vladimir Orany

💻
Xinyu Hu
Xinyu Hu

💻
Yosef Fertel
Yosef Fertel

💻
Denys Konakhevych
Denys Konakhevych

💻
Alex Weibel
Alex Weibel

💻
Ryan Carper
Ryan Carper

💻
Jonathan M. Henson
Jonathan M. Henson

💻
Debora N. Ito
Debora N. Ito

💻
Bret Ambrose
Bret Ambrose

💻
Anna-Karin Salander
Anna-Karin Salander

💻
Denys Konakhevych
Denys Konakhevych

💻
Alex Weibel
Alex Weibel

💻
Ryan Carper
Ryan Carper

💻
Jonathan M. Henson
Jonathan M. Henson

💻
Debora N. Ito
Debora N. Ito

💻
Bret Ambrose
Bret Ambrose

💻
Anna-Karin Salander
Anna-Karin Salander

💻
John Viegas
John Viegas

💻
Dongie Agnir
Dongie Agnir

💻
Matthew Miller
Matthew Miller

💻
Benjamin Maizels
Benjamin Maizels

💻
Quan Zhou
Quan Zhou

💻
Zoe Wang
Zoe Wang

💻
Varun Nandi
Varun Nandi

💻
John Viegas
John Viegas

💻
Dongie Agnir
Dongie Agnir

💻
Matthew Miller
Matthew Miller

💻
Benjamin Maizels
Benjamin Maizels

💻
Quan Zhou
Quan Zhou

💻
Zoe Wang
Zoe Wang

💻
Varun Nandi
Varun Nandi

💻
Andrew Shore
Andrew Shore

💻
Kyle Thomson
Kyle Thomson

💻
Sam Fink
Sam Fink

💻
Jonathan Bond
Jonathan Bond

💻
ajs139
ajs139

💻
Dewey Nguyen
Dewey Nguyen

💻
David Leen
David Leen

💻
Andrew Shore
Andrew Shore

💻
Kyle Thomson
Kyle Thomson

💻
Sam Fink
Sam Fink

💻
Jonathan Bond
Jonathan Bond

💻
ajs139
ajs139

💻
Dewey Nguyen
Dewey Nguyen

💻
David Leen
David Leen

💻
Michael Li
Michael Li

💻
Bennett Lynch
Bennett Lynch

💻
Ikko Ashimine
Ikko Ashimine

📖
Jamie Liu
Jamie Liu

📖
guillepb10
guillepb10

💻
Lorenz Nickel
Lorenz Nickel

📖
Erin Yang
Erin Yang

💻
Michael Li
Michael Li

💻
Bennett Lynch
Bennett Lynch

💻
Ikko Ashimine
Ikko Ashimine

📖
Jamie Liu
Jamie Liu

📖
guillepb10
guillepb10

💻
Lorenz Nickel
Lorenz Nickel

📖
Erin Yang
Erin Yang

💻
Roberto Tyley
Roberto Tyley

💻
Alvin See
Alvin See

💻
ron1
ron1

💻
Sai Kumar Reddy Chandupatla
Sai Kumar Reddy Chandupatla

💻
David Ho
David Ho

💻
Thomas Turrell-Croft
Thomas Turrell-Croft

💻
Roberto Tyley
Roberto Tyley

💻
Alvin See
Alvin See

💻
ron1
ron1

💻
Sai Kumar Reddy Chandupatla
Sai Kumar Reddy Chandupatla

💻
David Ho
David Ho

💻
Thomas Turrell-Croft
Thomas Turrell-Croft

💻
Steven Shan
Steven Shan

💻
Barry O'Neill
Barry O'Neill

💻
Andy Kiesler
Andy Kiesler

💻
diff --git a/archetypes/archetype-app-quickstart/README.md b/archetypes/archetype-app-quickstart/README.md index 2c95d96ff8b7..5611e454b06b 100755 --- a/archetypes/archetype-app-quickstart/README.md +++ b/archetypes/archetype-app-quickstart/README.md @@ -8,7 +8,7 @@ a dependency of [AWS Java SDK 2.x][aws-java-sdk-v2]. The generated application has the following features: -- Uses [Bill of Materials](BOM) to manage SDK dependencies +- Uses [Bill of Materials][BOM] to manage SDK dependencies - Contains the code to create the SDK client - Out-of-box support of GraalVM Native Image when `nativeImage` is enabled @@ -37,25 +37,27 @@ mvn archetype:generate \ -DhttpClient=apache-client \ -DartifactId=sample-project \ -Dservice=s3 \ - -DinteractiveMode=false + -DinteractiveMode=false \ + -DcredentialProvider=default ``` ### Parameters -Parameter Name | Default Value | Description ----|---|--- -`service` (required) | n/a | Specifies the service client to be used in the application, eg: s3, dynamodb. Only one service should be provided. You can find available services [here][java-sdk-v2-services]. -`groupId`(required) | n/a | Specifies the group ID of the project -`artifactId`(required) | n/a | Specifies the artifact ID of the project -`nativeImage`(required) | n/a | Specifies whether GraalVM Native Image configuration should be included -`httpClient`(required) | n/a | Specifies the http client to be used by the SDK client. Available options are `url-connection-client` (sync), `apache-client` (sync), `netty-nio-client` (async). See [http clients][sdk-http-clients] -`javaSdkVersion` | Same version as the archetype version | Specifies the version of the AWS Java SDK 2.x to be used -`version` | 1.0-SNAPSHOT | Specifies the version of the project -`package` | ${groupId} | Specifies the package name for the classes - +| Parameter Name | Default Value | Description | +|-------------------------|---------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `service` (required) | n/a | Specifies the service client to be used in the application, eg: s3, dynamodb. Only one service should be provided. You can find available services [here][java-sdk-v2-services]. | +| `groupId`(required) | n/a | Specifies the group ID of the project | +| `artifactId`(required) | n/a | Specifies the artifact ID of the project | +| `nativeImage`(required) | n/a | Specifies whether GraalVM Native Image configuration should be included | +| `httpClient`(required) | n/a | Specifies the http client to be used by the SDK client. Available options are `url-connection-client` (sync), `apache-client` (sync), `netty-nio-client` (async). See [http clients][sdk-http-clients] | +| `credentialProvider` | default | Specify the credential-provider to be used by the SDK client and imports relevant dependencies. Available options are `default` which uses the [default credential provider chain](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html), or `identity-center` whi uses [IAM Identity Center](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html) | +| `javaSdkVersion` | Same version as the archetype version | Specifies the version of the AWS Java SDK 2.x to be used | +| `version` | 1.0-SNAPSHOT | Specifies the version of the project | +| `package` | ${groupId} | Specifies the package name for the classes | [aws-java-sdk-v2]: https://github.com/aws/aws-sdk-java-v2 [java-sdk-v2-services]: https://github.com/aws/aws-sdk-java-v2/tree/master/services [sdk-http-clients]: https://github.com/aws/aws-sdk-java-v2/tree/master/http-clients [maven-archetype-usage]: https://maven.apache.org/archetype/maven-archetype-plugin/usage.html [graalvm]: https://www.graalvm.org/docs/getting-started/#native-images +[bom]: https://github.com/aws/aws-sdk-java-v2/blob/master/bom \ No newline at end of file diff --git a/archetypes/archetype-app-quickstart/pom.xml b/archetypes/archetype-app-quickstart/pom.xml index a18c4b4fe2c7..b9684b541431 100644 --- a/archetypes/archetype-app-quickstart/pom.xml +++ b/archetypes/archetype-app-quickstart/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/archetypes/archetype-app-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/archetype-app-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml index ced7dbdba15b..aa78ae12e998 100644 --- a/archetypes/archetype-app-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/archetypes/archetype-app-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -42,5 +42,8 @@ (true|false) + + (default|identity-center) + diff --git a/archetypes/archetype-app-quickstart/src/main/resources/archetype-resources/pom.xml b/archetypes/archetype-app-quickstart/src/main/resources/archetype-resources/pom.xml index 7574db920ff2..68f6c4ab79ee 100644 --- a/archetypes/archetype-app-quickstart/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/archetype-app-quickstart/src/main/resources/archetype-resources/pom.xml @@ -50,6 +50,18 @@ +#if( $credentialProvider == 'identity-center') + + software.amazon.awssdk + sso + + + + software.amazon.awssdk + ssooidc + + +#end software.amazon.awssdk ${httpClient} diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclient/archetype.properties b/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclient/archetype.properties index 0af6b84ce1aa..c28c1ebaa993 100644 --- a/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclient/archetype.properties +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclient/archetype.properties @@ -5,4 +5,5 @@ package=software.amazonaws.test service=s3 httpClient=apache-client javaSdkVersion=2.11.0 -nativeImage=true \ No newline at end of file +nativeImage=true +credentialProvider=default \ No newline at end of file diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclientwithoutnativeimage/archetype.properties b/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclientwithoutnativeimage/archetype.properties index 79cc885e1603..b60e2a1ef5df 100644 --- a/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclientwithoutnativeimage/archetype.properties +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclientwithoutnativeimage/archetype.properties @@ -5,4 +5,5 @@ package=software.amazonaws.test service=s3 httpClient=apache-client javaSdkVersion=2.11.0 -nativeImage=false \ No newline at end of file +nativeImage=false +credentialProvider=default diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/archetype.properties b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/archetype.properties new file mode 100644 index 000000000000..e262cb2b49a0 --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/archetype.properties @@ -0,0 +1,9 @@ +groupId=software.amazonaws.test +artifactId=test-apache-artifact +version=1.0-SNAPSHOT +package=software.amazonaws.test +service=s3 +httpClient=apache-client +javaSdkVersion=2.11.0 +nativeImage=true +credentialProvider=identity-center diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/goal.txt b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/goal.txt new file mode 100644 index 000000000000..4a1a71d3364c --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/goal.txt @@ -0,0 +1 @@ +verify \ No newline at end of file diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/README.md b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/README.md new file mode 100644 index 000000000000..d17e94244e89 --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/README.md @@ -0,0 +1,53 @@ +# App + +This project contains a maven application with [AWS Java SDK 2.x](https://github.com/aws/aws-sdk-java-v2) dependencies. + +## Prerequisites +- Java 1.8+ +- Apache Maven +- GraalVM Native Image (optional) + +## Development + +Below is the structure of the generated project. + +``` +├── src +│   ├── main +│   │   ├── java +│   │   │   └── package +│   │   │   ├── App.java +│   │   │   ├── DependencyFactory.java +│   │   │   └── Handler.java +│   │   └── resources +│   │   └── simplelogger.properties +│   └── test +│   └── java +│   └── package +│   └── HandlerTest.java +``` + +- `App.java`: main entry of the application +- `DependencyFactory.java`: creates the SDK client +- `Handler.java`: you can invoke the api calls using the SDK client here. + +#### Building the project +``` +mvn clean package +``` + +#### Building the native image + +Note that it requires `native-image` installed in your environment + +``` +mvn clean package -P native-image +``` +After it finishes, you can find the generated native image in the `target +` folder. + +You can run the following command to execute it. + +``` +target/test-apache-artifact +``` diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/pom.xml b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/pom.xml new file mode 100644 index 000000000000..97bb28f4d33a --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/pom.xml @@ -0,0 +1,144 @@ + + + 4.0.0 + + software.amazonaws.test + test-apache-artifact + 1.0-SNAPSHOT + jar + + UTF-8 + 1.8 + 1.8 + 3.2.1 + 3.6.1 + 1.6.0 + 2.11.0 + 1.7.28 + 0.9.6 + 5.8.1 + + + + + + software.amazon.awssdk + bom + ${aws.java.sdk.version} + pom + import + + + + + + + software.amazon.awssdk + s3 + + + software.amazon.awssdk + netty-nio-client + + + software.amazon.awssdk + apache-client + + + + + + software.amazon.awssdk + sso + + + + software.amazon.awssdk + ssooidc + + + + software.amazon.awssdk + apache-client + + + commons-logging + commons-logging + + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + org.slf4j + slf4j-simple + ${slf4j.version} + + + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + + + + + org.junit.jupiter + junit-jupiter + ${junit5.version} + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven.compiler.plugin.version} + + + + + + + native-image + + + + org.graalvm.buildtools + native-maven-plugin + ${graalvm.native.maven.plugin.version} + + + build-native + + build + + package + + + + test-apache-artifact + software.amazonaws.test.App + + + --verbose + --no-fallback + --initialize-at-build-time=org.slf4j + + + + + + + + + diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/App.java b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/App.java new file mode 100644 index 000000000000..b587b851e90e --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/App.java @@ -0,0 +1,16 @@ +package software.amazonaws.test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class App { + private static final Logger logger = LoggerFactory.getLogger(App.class); + + public static void main(String... args) { + logger.info("Application starts"); + + Handler handler = new Handler(); + handler.sendRequest(); + + logger.info("Application ends"); + } +} diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/DependencyFactory.java b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/DependencyFactory.java new file mode 100644 index 000000000000..113edb683c85 --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/DependencyFactory.java @@ -0,0 +1,22 @@ + +package software.amazonaws.test; + +import software.amazon.awssdk.http.apache.ApacheHttpClient; +import software.amazon.awssdk.services.s3.S3Client; + +/** + * The module containing all dependencies required by the {@link Handler}. + */ +public class DependencyFactory { + + private DependencyFactory() {} + + /** + * @return an instance of S3Client + */ + public static S3Client s3Client() { + return S3Client.builder() + .httpClientBuilder(ApacheHttpClient.builder()) + .build(); + } +} diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/Handler.java b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/Handler.java new file mode 100644 index 000000000000..fd15451b80fd --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/java/software/amazonaws/test/Handler.java @@ -0,0 +1,16 @@ +package software.amazonaws.test; + +import software.amazon.awssdk.services.s3.S3Client; + + +public class Handler { + private final S3Client s3Client; + + public Handler() { + s3Client = DependencyFactory.s3Client(); + } + + public void sendRequest() { + // TODO: invoking the api calls using s3Client. + } +} diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/resources/simplelogger.properties b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/resources/simplelogger.properties new file mode 100644 index 000000000000..0e6cb98a68ad --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/main/resources/simplelogger.properties @@ -0,0 +1,24 @@ +# SLF4J's SimpleLogger configuration file +# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. + +# Default logging detail level for all instances of SimpleLogger. +# Must be one of ("trace", "debug", "info", "warn", or "error"). +# If not specified, defaults to "info". +org.slf4j.simpleLogger.defaultLogLevel=info + +# Log SDK requests +org.slf4j.simpleLogger.log.software.amazon.awssdk.request=debug +org.slf4j.simpleLogger.showDateTime=true +org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z + +# Set to true if you want to output the current thread name. +# Defaults to true. +org.slf4j.simpleLogger.showThreadName=true + +# Set to true if you want the Logger instance name to be included in output messages. +# Defaults to true. +#org.slf4j.simpleLogger.showLogName=true + +# Set to true if you want the last component of the name to be included in output messages. +# Defaults to false. +org.slf4j.simpleLogger.showShortLogName=false \ No newline at end of file diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/test/java/software/amazonaws/test/HandlerTest.java b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/test/java/software/amazonaws/test/HandlerTest.java new file mode 100644 index 000000000000..9837081757f2 --- /dev/null +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/identitycenter/reference/src/test/java/software/amazonaws/test/HandlerTest.java @@ -0,0 +1,7 @@ +package software.amazonaws.test; + +import org.junit.jupiter.api.Test; + +public class HandlerTest { + //TODO add tests here +} diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/nettyclient/archetype.properties b/archetypes/archetype-app-quickstart/src/test/resources/projects/nettyclient/archetype.properties index 16b16eac4f8d..35abf666459e 100644 --- a/archetypes/archetype-app-quickstart/src/test/resources/projects/nettyclient/archetype.properties +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/nettyclient/archetype.properties @@ -5,4 +5,5 @@ package=software.amazonaws.test service=s3 httpClient=netty-nio-client javaSdkVersion=2.11.0 -nativeImage=true \ No newline at end of file +nativeImage=true +credentialProvider=default diff --git a/archetypes/archetype-app-quickstart/src/test/resources/projects/urlhttpclient/archetype.properties b/archetypes/archetype-app-quickstart/src/test/resources/projects/urlhttpclient/archetype.properties index 931670cc7cee..d12eb4adaa8c 100644 --- a/archetypes/archetype-app-quickstart/src/test/resources/projects/urlhttpclient/archetype.properties +++ b/archetypes/archetype-app-quickstart/src/test/resources/projects/urlhttpclient/archetype.properties @@ -5,4 +5,5 @@ package=software.amazonaws.test service=dynamodb httpClient=url-connection-client javaSdkVersion=2.11.0 -nativeImage=true \ No newline at end of file +nativeImage=true +credentialProvider=default diff --git a/archetypes/archetype-lambda/pom.xml b/archetypes/archetype-lambda/pom.xml index 5605c8c395f5..e21394c62387 100644 --- a/archetypes/archetype-lambda/pom.xml +++ b/archetypes/archetype-lambda/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 archetype-lambda diff --git a/archetypes/archetype-tools/pom.xml b/archetypes/archetype-tools/pom.xml index 804053b385a4..7a155ca4787e 100644 --- a/archetypes/archetype-tools/pom.xml +++ b/archetypes/archetype-tools/pom.xml @@ -20,7 +20,7 @@ archetypes software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/archetypes/pom.xml b/archetypes/pom.xml index 39b4e4e40f9a..9505dcdf775e 100644 --- a/archetypes/pom.xml +++ b/archetypes/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 archetypes diff --git a/aws-sdk-java/pom.xml b/aws-sdk-java/pom.xml index c62f3f70fca5..6c22d3abf364 100644 --- a/aws-sdk-java/pom.xml +++ b/aws-sdk-java/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../pom.xml aws-sdk-java @@ -1713,6 +1713,26 @@ Amazon AutoScaling, etc). cloudtraildata ${awsjavasdk.version} + + software.amazon.awssdk + tnb + ${awsjavasdk.version} + + + software.amazon.awssdk + internetmonitor + ${awsjavasdk.version} + + + software.amazon.awssdk + ivsrealtime + ${awsjavasdk.version} + + + software.amazon.awssdk + vpclattice + ${awsjavasdk.version} + ${project.artifactId}-${project.version} diff --git a/bom-internal/pom.xml b/bom-internal/pom.xml index 9c2fc58078bf..78cf5df8a34d 100644 --- a/bom-internal/pom.xml +++ b/bom-internal/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 @@ -94,6 +94,11 @@ httpcore ${httpcomponents.httpcore.version} + + commons-codec + commons-codec + ${commons-codec.verion} + io.netty netty-codec-http diff --git a/bom/pom.xml b/bom/pom.xml index bd682917520b..94f64c29270d 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../pom.xml bom @@ -1863,6 +1863,26 @@ imds ${awsjavasdk.version} + + software.amazon.awssdk + tnb + ${awsjavasdk.version} + + + software.amazon.awssdk + internetmonitor + ${awsjavasdk.version} + + + software.amazon.awssdk + ivsrealtime + ${awsjavasdk.version} + + + software.amazon.awssdk + vpclattice + ${awsjavasdk.version} + diff --git a/build-tools/src/main/java/software/amazon/awssdk/buildtools/findbugs/ToBuilderIsCorrect.java b/build-tools/src/main/java/software/amazon/awssdk/buildtools/findbugs/ToBuilderIsCorrect.java index a26f47d3cdf4..55b47a8a7640 100644 --- a/build-tools/src/main/java/software/amazon/awssdk/buildtools/findbugs/ToBuilderIsCorrect.java +++ b/build-tools/src/main/java/software/amazon/awssdk/buildtools/findbugs/ToBuilderIsCorrect.java @@ -376,7 +376,7 @@ private void validateBuilderConstructor(String buildableClassName, JavaClass bui } // Find which fields we modified in those constructors - Set builderFieldsForBuilder = new HashSet<>(builderFields.get(builder)); + Set builderFieldsForBuilder = new HashSet<>(builderFields.getOrDefault(builder, new ArrayList<>())); Map> allConstructors = builderConstructorModifiedFields.get(builder); allInvokedConstructors.forEach(constructorSignature -> { diff --git a/buildspecs/archetype-native-image-test.yml b/buildspecs/archetype-native-image-test.yml index 7d89c8f78257..cc26b88da93b 100644 --- a/buildspecs/archetype-native-image-test.yml +++ b/buildspecs/archetype-native-image-test.yml @@ -20,7 +20,8 @@ phases: -DartifactId=apache-project \ -DhttpClient=apache-client \ -Dservice=s3 \ - -DinteractiveMode=false + -DinteractiveMode=false \ + -DcredentialProvider=default - | - cd apache-project - mvn clean package -P native-image @@ -38,7 +39,8 @@ phases: -DhttpClient=url-connection-client \ -DartifactId=url-connection-project \ -Dservice=s3 \ - -DinteractiveMode=false + -DinteractiveMode=false \ + -DcredentialProvider=default - | - cd url-connection-project - mvn clean package -P native-image @@ -56,7 +58,8 @@ phases: -DnativeImage=true \ -DartifactId=netty-project \ -Dservice=dynamodb \ - -DinteractiveMode=false + -DinteractiveMode=false \ + -DcredentialProvider=default - | - cd netty-project - mvn clean package -P native-image diff --git a/bundle/pom.xml b/bundle/pom.xml index 72f607c7bb90..1e5df918ed8a 100644 --- a/bundle/pom.xml +++ b/bundle/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT bundle jar diff --git a/codegen-lite-maven-plugin/pom.xml b/codegen-lite-maven-plugin/pom.xml index cf51afb25fd8..4efa31c31d9a 100644 --- a/codegen-lite-maven-plugin/pom.xml +++ b/codegen-lite-maven-plugin/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../pom.xml codegen-lite-maven-plugin diff --git a/codegen-lite/pom.xml b/codegen-lite/pom.xml index a7ea904984d6..0e27df91c1e7 100644 --- a/codegen-lite/pom.xml +++ b/codegen-lite/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codegen-lite AWS Java SDK :: Code Generator Lite diff --git a/codegen-maven-plugin/pom.xml b/codegen-maven-plugin/pom.xml index 584299164115..e7c8d2a0e124 100644 --- a/codegen-maven-plugin/pom.xml +++ b/codegen-maven-plugin/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../pom.xml codegen-maven-plugin diff --git a/codegen/pom.xml b/codegen/pom.xml index 220859436487..8818added802 100644 --- a/codegen/pom.xml +++ b/codegen/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codegen AWS Java SDK :: Code Generator diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/AddShapes.java b/codegen/src/main/java/software/amazon/awssdk/codegen/AddShapes.java index acc4b0d9a31a..fe658eb40f3d 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/AddShapes.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/AddShapes.java @@ -194,6 +194,7 @@ private MemberModel generateMemberModel(String c2jMemberName, Member c2jMemberDe memberModel.setUnionEnumTypeName(namingStrategy.getUnionEnumTypeName(memberModel)); memberModel.setContextParam(c2jMemberDefinition.getContextParam()); memberModel.setRequired(isRequiredMember(c2jMemberName, parentShape)); + memberModel.setSynthetic(shape.isSynthetic()); // Pass the xmlNameSpace from the member reference diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/CustomSdkShapesProcessor.java b/codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/CustomSdkShapesProcessor.java new file mode 100644 index 000000000000..81bedac9fb79 --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/CustomSdkShapesProcessor.java @@ -0,0 +1,50 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.customization.processors; + +import java.util.Map; +import software.amazon.awssdk.codegen.customization.CodegenCustomizationProcessor; +import software.amazon.awssdk.codegen.model.config.customization.CustomSdkShapes; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.codegen.model.service.ServiceModel; +import software.amazon.awssdk.codegen.model.service.Shape; + +public class CustomSdkShapesProcessor implements CodegenCustomizationProcessor { + + private final CustomSdkShapes customSdkShapes; + + CustomSdkShapesProcessor(CustomSdkShapes customSdkShapes) { + this.customSdkShapes = customSdkShapes; + } + + @Override + public void preprocess(ServiceModel serviceModel) { + if (customSdkShapes == null) { + return; + } + Map shapes = serviceModel.getShapes(); + customSdkShapes.getShapes().forEach((shapeName, shape) -> { + shape.setSynthetic(true); + shapes.put(shapeName, shape); + }); + serviceModel.setShapes(shapes); + } + + @Override + public void postprocess(IntermediateModel intermediateModel) { + // added custom shapes in service model instead of intermediate model + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/DefaultCustomizationProcessor.java b/codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/DefaultCustomizationProcessor.java index 9478f1d9a128..2a70f79359f1 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/DefaultCustomizationProcessor.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/DefaultCustomizationProcessor.java @@ -32,6 +32,7 @@ public static CodegenCustomizationProcessor getProcessorFor( new RenameShapesProcessor(config.getRenameShapes()), new ShapeModifiersProcessor(config.getShapeModifiers()), new ShapeSubstitutionsProcessor(config.getShapeSubstitutions()), + new CustomSdkShapesProcessor(config.getCustomSdkShapes()), new OperationModifiersProcessor(config.getOperationModifiers()), new RemoveExceptionMessagePropertyProcessor(), new UseLegacyEventGenerationSchemeProcessor(), diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/CommonClientGeneratorTasks.java b/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/CommonClientGeneratorTasks.java index 528804ff2e9c..ee772e46040b 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/CommonClientGeneratorTasks.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/CommonClientGeneratorTasks.java @@ -22,6 +22,7 @@ import software.amazon.awssdk.codegen.emitters.GeneratorTaskParams; import software.amazon.awssdk.codegen.poet.builder.BaseClientBuilderClass; import software.amazon.awssdk.codegen.poet.builder.BaseClientBuilderInterface; +import software.amazon.awssdk.codegen.poet.model.ServiceClientConfigurationClass; /** * Task for classes shared by {@link AsyncClientGeneratorTasks} and {@link SyncClientGeneratorTasks}. @@ -34,7 +35,8 @@ public CommonClientGeneratorTasks(GeneratorTaskParams dependencies) { @Override protected List createTasks() throws Exception { return Arrays.asList(createBaseBuilderTask(), - createBaseBuilderInterfaceTask()); + createBaseBuilderInterfaceTask(), + createServiceClientConfigurationTask()); } private GeneratorTask createBaseBuilderTask() throws IOException { @@ -44,4 +46,8 @@ private GeneratorTask createBaseBuilderTask() throws IOException { private GeneratorTask createBaseBuilderInterfaceTask() throws IOException { return createPoetGeneratorTask(new BaseClientBuilderInterface(model)); } + + private GeneratorTask createServiceClientConfigurationTask() throws IOException { + return createPoetGeneratorTask(new ServiceClientConfigurationClass(model)); + } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomSdkShapes.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomSdkShapes.java new file mode 100644 index 000000000000..03d7982ff57d --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomSdkShapes.java @@ -0,0 +1,36 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.model.config.customization; + +import java.util.Collections; +import java.util.Map; +import software.amazon.awssdk.codegen.model.service.Shape; + +public class CustomSdkShapes { + private Map shapes; + + public Map getShapes() { + return shapes; + } + + public void setShapes(Map shapes) { + this.shapes = shapes != null ? Collections.unmodifiableMap(shapes) : Collections.emptyMap(); + } + + public Shape getShape(String shapeName) { + return shapes.get(shapeName); + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java index 51e7830a2177..d5aff3419b33 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java @@ -55,6 +55,7 @@ public class CustomizationConfig { */ private Map operationModifiers; private Map shapeSubstitutions; + private CustomSdkShapes customSdkShapes; private Map shapeModifiers; /** * Sets the custom field name that identifies the type of modeled exception for JSON protocols. @@ -253,6 +254,14 @@ public void setRenameShapes(Map renameShapes) { this.renameShapes = renameShapes; } + public CustomSdkShapes getCustomSdkShapes() { + return customSdkShapes; + } + + public void setCustomSdkShapes(CustomSdkShapes customSdkShapes) { + this.customSdkShapes = customSdkShapes; + } + public Map getShapeSubstitutions() { return shapeSubstitutions; } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/MemberModel.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/MemberModel.java index dab912d8e922..f6a870409ebd 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/MemberModel.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/MemberModel.java @@ -61,6 +61,8 @@ public class MemberModel extends DocumentationModel { private boolean required; + private boolean synthetic; + private ListModel listModel; private MapModel mapModel; @@ -126,6 +128,14 @@ public MemberModel withName(String name) { return this; } + public boolean isSynthetic() { + return synthetic; + } + + public void setSynthetic(boolean synthetic) { + this.synthetic = synthetic; + } + public String getC2jName() { return c2jName; } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Shape.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Shape.java index b1f93f5d3f13..a9add8824f0d 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Shape.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/service/Shape.java @@ -34,6 +34,8 @@ public class Shape { private boolean flattened; + private boolean synthetic; + private boolean exception; private boolean streaming; @@ -155,6 +157,22 @@ public void setFlattened(boolean flattened) { this.flattened = flattened; } + /** + * Returns flag that indicates whether this shape is a custom SDK shape. If true, this shape will be excluded from the static + * SdkFields, preventing it from being marshalled. + */ + public boolean isSynthetic() { + return synthetic; + } + + /** + * Sets flag that indicates whether this shape is a custom SDK shape. If true, this shape will be excluded from the static + * SdkFields, preventing it from being marshalled. + */ + public void setSynthetic(boolean synthetic) { + this.synthetic = synthetic; + } + public boolean isException() { return exception; } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/PoetExtension.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/PoetExtension.java index 4407ae25f761..ba37f496c4c9 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/PoetExtension.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/PoetExtension.java @@ -65,6 +65,14 @@ public ClassName getClientClass(String className) { return ClassName.get(model.getMetadata().getFullClientPackageName(), className); } + /** + * @return A Poet {@link ClassName} for the generated service client configuration. + */ + public ClassName getServiceConfigClass() { + return PoetUtils.classNameFromFqcn(model.getMetadata().getFullClientPackageName() + "." + + model.getMetadata().getServiceName() + "ServiceClientConfiguration"); + } + /** * @param operationName Name of the operation * @return A Poet {@link ClassName} for the response type of a paginated operation in the base service package. diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java index ff003afa5bdd..f8731d7dad07 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java @@ -19,12 +19,14 @@ import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.ParameterizedTypeName; import com.squareup.javapoet.TypeSpec; +import java.net.URI; import javax.lang.model.element.Modifier; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; import software.amazon.awssdk.awscore.client.config.AwsClientOption; import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; import software.amazon.awssdk.codegen.poet.ClassSpec; +import software.amazon.awssdk.codegen.poet.PoetExtension; import software.amazon.awssdk.codegen.poet.PoetUtils; import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils; import software.amazon.awssdk.codegen.utils.AuthUtils; @@ -38,6 +40,7 @@ public class AsyncClientBuilderClass implements ClassSpec { private final ClassName builderInterfaceName; private final ClassName builderClassName; private final ClassName builderBaseClassName; + private final ClassName serviceConfigClassName; private final EndpointRulesSpecUtils endpointRulesSpecUtils; public AsyncClientBuilderClass(IntermediateModel model) { @@ -49,6 +52,7 @@ public AsyncClientBuilderClass(IntermediateModel model) { this.builderClassName = ClassName.get(basePackage, model.getMetadata().getAsyncBuilder()); this.builderBaseClassName = ClassName.get(basePackage, model.getMetadata().getBaseBuilder()); this.endpointRulesSpecUtils = new EndpointRulesSpecUtils(model); + this.serviceConfigClassName = new PoetExtension(model).getServiceConfigClass(); } @Override @@ -121,7 +125,19 @@ private MethodSpec buildClientMethod() { .returns(clientInterfaceName) .addStatement("$T clientConfiguration = super.asyncClientConfiguration()", SdkClientConfiguration.class) .addStatement("this.validateClientOptions(clientConfiguration)") - .addCode("return new $T(clientConfiguration);", clientClassName) + .addStatement("$T endpointOverride = null", URI.class) + .addCode("if (clientConfiguration.option($T.ENDPOINT_OVERRIDDEN) != null" + + "&& $T.TRUE.equals(clientConfiguration.option($T.ENDPOINT_OVERRIDDEN))) {" + + "endpointOverride = clientConfiguration.option($T.ENDPOINT);" + + "}", + SdkClientOption.class, Boolean.class, SdkClientOption.class, SdkClientOption.class) + .addStatement("$T serviceClientConfiguration = $T.builder()" + + ".overrideConfiguration(overrideConfiguration())" + + ".region(clientConfiguration.option($T.AWS_REGION))" + + ".endpointOverride(endpointOverride)" + + ".build()", + serviceConfigClassName, serviceConfigClassName, AwsClientOption.class) + .addStatement("return new $T(serviceClientConfiguration, clientConfiguration)", clientClassName) .build(); } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java index e79b7a226bc0..036589de04e8 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java @@ -19,12 +19,14 @@ import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.ParameterizedTypeName; import com.squareup.javapoet.TypeSpec; +import java.net.URI; import javax.lang.model.element.Modifier; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; import software.amazon.awssdk.awscore.client.config.AwsClientOption; import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; import software.amazon.awssdk.codegen.poet.ClassSpec; +import software.amazon.awssdk.codegen.poet.PoetExtension; import software.amazon.awssdk.codegen.poet.PoetUtils; import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils; import software.amazon.awssdk.codegen.utils.AuthUtils; @@ -38,6 +40,7 @@ public class SyncClientBuilderClass implements ClassSpec { private final ClassName builderInterfaceName; private final ClassName builderClassName; private final ClassName builderBaseClassName; + private final ClassName serviceConfigClassName; private final EndpointRulesSpecUtils endpointRulesSpecUtils; public SyncClientBuilderClass(IntermediateModel model) { @@ -49,6 +52,7 @@ public SyncClientBuilderClass(IntermediateModel model) { this.builderClassName = ClassName.get(basePackage, model.getMetadata().getSyncBuilder()); this.builderBaseClassName = ClassName.get(basePackage, model.getMetadata().getBaseBuilder()); this.endpointRulesSpecUtils = new EndpointRulesSpecUtils(model); + this.serviceConfigClassName = new PoetExtension(model).getServiceConfigClass(); } @Override @@ -116,14 +120,25 @@ private MethodSpec endpointProviderMethod() { private MethodSpec buildClientMethod() { return MethodSpec.methodBuilder("buildClient") - .addAnnotation(Override.class) - .addModifiers(Modifier.PROTECTED, Modifier.FINAL) - .returns(clientInterfaceName) - .addStatement("$T clientConfiguration = super.syncClientConfiguration()", - SdkClientConfiguration.class) - .addStatement("this.validateClientOptions(clientConfiguration)") - .addCode("return new $T(clientConfiguration);", clientClassName) - .build(); + .addAnnotation(Override.class) + .addModifiers(Modifier.PROTECTED, Modifier.FINAL) + .returns(clientInterfaceName) + .addStatement("$T clientConfiguration = super.syncClientConfiguration()", SdkClientConfiguration.class) + .addStatement("this.validateClientOptions(clientConfiguration)") + .addStatement("$T endpointOverride = null", URI.class) + .addCode("if (clientConfiguration.option($T.ENDPOINT_OVERRIDDEN) != null" + + "&& $T.TRUE.equals(clientConfiguration.option($T.ENDPOINT_OVERRIDDEN))) {" + + "endpointOverride = clientConfiguration.option($T.ENDPOINT);" + + "}", + SdkClientOption.class, Boolean.class, SdkClientOption.class, SdkClientOption.class) + .addStatement("$T serviceClientConfiguration = $T.builder()" + + ".overrideConfiguration(overrideConfiguration())" + + ".region(clientConfiguration.option($T.AWS_REGION))" + + ".endpointOverride(endpointOverride)" + + ".build()", + serviceConfigClassName, serviceConfigClassName, AwsClientOption.class) + .addStatement("return new $T(serviceClientConfiguration, clientConfiguration)", clientClassName) + .build(); } private MethodSpec tokenProviderMethodImpl() { diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java index 8ca21f5a5612..32a522c3bab2 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java @@ -93,6 +93,7 @@ public final class AsyncClientClass extends AsyncClientInterface { private final PoetExtension poetExtensions; private final ClassName className; private final ProtocolSpec protocolSpec; + private final ClassName serviceClientConfigurationClassName; public AsyncClientClass(GeneratorTaskParams dependencies) { super(dependencies.getModel()); @@ -100,6 +101,7 @@ public AsyncClientClass(GeneratorTaskParams dependencies) { this.poetExtensions = dependencies.getPoetExtensions(); this.className = poetExtensions.getClientClass(model.getMetadata().getAsyncClient()); this.protocolSpec = getProtocolSpecs(poetExtensions, model); + this.serviceClientConfigurationClassName = new PoetExtension(model).getServiceConfigClass(); } @Override @@ -133,7 +135,8 @@ protected void addFields(TypeSpec.Builder type) { .build()) .addField(AsyncClientHandler.class, "clientHandler", PRIVATE, FINAL) .addField(protocolSpec.protocolFactory(model)) - .addField(SdkClientConfiguration.class, "clientConfiguration", PRIVATE, FINAL); + .addField(SdkClientConfiguration.class, "clientConfiguration", PRIVATE, FINAL) + .addField(serviceClientConfigurationClassName, "serviceClientConfiguration", PRIVATE, FINAL); // Kinesis doesn't support CBOR for STS yet so need another protocol factory for JSON if (model.getMetadata().isCborProtocol()) { @@ -200,12 +203,14 @@ private Stream operations(OperationModel opModel) { } private MethodSpec constructor(TypeSpec.Builder classBuilder) { - MethodSpec.Builder builder = MethodSpec.constructorBuilder() - .addModifiers(PROTECTED) - .addParameter(SdkClientConfiguration.class, "clientConfiguration") - .addStatement("this.clientHandler = new $T(clientConfiguration)", - AwsAsyncClientHandler.class) - .addStatement("this.clientConfiguration = clientConfiguration"); + MethodSpec.Builder builder + = MethodSpec.constructorBuilder() + .addModifiers(PROTECTED) + .addParameter(serviceClientConfigurationClassName, "serviceClientConfiguration") + .addParameter(SdkClientConfiguration.class, "clientConfiguration") + .addStatement("this.clientHandler = new $T(clientConfiguration)", AwsAsyncClientHandler.class) + .addStatement("this.clientConfiguration = clientConfiguration") + .addStatement("this.serviceClientConfiguration = serviceClientConfiguration"); FieldSpec protocolFactoryField = protocolSpec.protocolFactory(model); if (model.getMetadata().isJsonProtocol()) { builder.addStatement("this.$N = init($T.builder()).build()", protocolFactoryField.name, @@ -264,6 +269,16 @@ private MethodSpec nameMethod() { .build(); } + @Override + protected MethodSpec serviceClientConfigMethod() { + return MethodSpec.methodBuilder("serviceClientConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, FINAL) + .returns(serviceClientConfigurationClassName) + .addStatement("return this.serviceClientConfiguration") + .build(); + } + @Override protected void addCloseMethod(TypeSpec.Builder type) { MethodSpec method = MethodSpec.methodBuilder("close") diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java index f3b065df2562..3b06ba325db8 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java @@ -41,6 +41,7 @@ import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.ThreadSafe; import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; +import software.amazon.awssdk.awscore.AwsClient; import software.amazon.awssdk.codegen.docs.ClientType; import software.amazon.awssdk.codegen.docs.DocConfiguration; import software.amazon.awssdk.codegen.docs.SimpleMethodOverload; @@ -55,7 +56,6 @@ import software.amazon.awssdk.codegen.poet.eventstream.EventStreamUtils; import software.amazon.awssdk.codegen.poet.model.DeprecationUtils; import software.amazon.awssdk.codegen.utils.PaginatorUtils; -import software.amazon.awssdk.core.SdkClient; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.regions.ServiceMetadataProvider; @@ -96,6 +96,7 @@ public TypeSpec poetSpec() { if (model.hasWaiters()) { addWaiterMethod(result); } + result.addMethod(serviceClientConfigMethod()); addAdditionalMethods(result); addCloseMethod(result); return result.build(); @@ -106,7 +107,7 @@ protected TypeSpec.Builder createTypeSpec() { } protected void addInterfaceClass(TypeSpec.Builder type) { - type.addSuperinterface(SdkClient.class); + type.addSuperinterface(AwsClient.class); } protected void addAnnotations(TypeSpec.Builder type) { @@ -490,6 +491,15 @@ protected MethodSpec utilitiesMethod() { return utilitiesOperationBody(builder).build(); } + protected MethodSpec serviceClientConfigMethod() { + return MethodSpec.methodBuilder("serviceClientConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, DEFAULT) + .addStatement("throw new $T()", UnsupportedOperationException.class) + .returns(new PoetExtension(model).getServiceConfigClass()) + .build(); + } + private MethodSpec additionalBuilders(AdditionalBuilderMethod additionalMethod) { String methodName = Validate.paramNotNull(additionalMethod.getMethodName(), "methodName"); diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingAsyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingAsyncClientClass.java index a4cd43a1c46e..e21fbda9f885 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingAsyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingAsyncClientClass.java @@ -107,6 +107,16 @@ private MethodSpec nameMethod() { .build(); } + @Override + protected MethodSpec serviceClientConfigMethod() { + return MethodSpec.methodBuilder("serviceClientConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, FINAL) + .returns(new PoetExtension(model).getServiceConfigClass()) + .addStatement("return delegate.serviceClientConfiguration()") + .build(); + } + @Override protected void addCloseMethod(TypeSpec.Builder type) { MethodSpec method = MethodSpec.methodBuilder("close") diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingSyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingSyncClientClass.java index 5692445fb0a9..07278ab69287 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingSyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingSyncClientClass.java @@ -166,4 +166,14 @@ private MethodSpec nameMethod() { .addStatement("return delegate.serviceName()") .build(); } + + @Override + protected MethodSpec serviceClientConfigMethod() { + return MethodSpec.methodBuilder("serviceClientConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, FINAL) + .returns(new PoetExtension(model).getServiceConfigClass()) + .addStatement("return delegate.serviceClientConfiguration()") + .build(); + } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java index 519538135d73..bd5645c3c8c4 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java @@ -69,6 +69,7 @@ public class SyncClientClass extends SyncClientInterface { private final PoetExtension poetExtensions; private final ClassName className; private final ProtocolSpec protocolSpec; + private final ClassName serviceClientConfigurationClassName; public SyncClientClass(GeneratorTaskParams taskParams) { super(taskParams.getModel()); @@ -76,6 +77,7 @@ public SyncClientClass(GeneratorTaskParams taskParams) { this.poetExtensions = taskParams.getPoetExtensions(); this.className = poetExtensions.getClientClass(model.getMetadata().getSyncClient()); this.protocolSpec = getProtocolSpecs(poetExtensions, model); + this.serviceClientConfigurationClassName = new PoetExtension(model).getServiceConfigClass(); } @Override @@ -105,7 +107,8 @@ protected void addFields(TypeSpec.Builder type) { type.addField(logger()) .addField(SyncClientHandler.class, "clientHandler", PRIVATE, FINAL) .addField(protocolSpec.protocolFactory(model)) - .addField(SdkClientConfiguration.class, "clientConfiguration", PRIVATE, FINAL); + .addField(SdkClientConfiguration.class, "clientConfiguration", PRIVATE, FINAL) + .addField(serviceClientConfigurationClassName, "serviceClientConfiguration", PRIVATE, FINAL); } @Override @@ -147,18 +150,30 @@ private MethodSpec nameMethod() { .build(); } + @Override + protected MethodSpec serviceClientConfigMethod() { + return MethodSpec.methodBuilder("serviceClientConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, FINAL) + .returns(serviceClientConfigurationClassName) + .addStatement("return this.serviceClientConfiguration") + .build(); + } + @Override public ClassName className() { return className; } private MethodSpec constructor() { - MethodSpec.Builder builder = MethodSpec.constructorBuilder() - .addModifiers(PROTECTED) - .addParameter(SdkClientConfiguration.class, "clientConfiguration") - .addStatement("this.clientHandler = new $T(clientConfiguration)", - protocolSpec.getClientHandlerClass()) - .addStatement("this.clientConfiguration = clientConfiguration"); + MethodSpec.Builder builder + = MethodSpec.constructorBuilder() + .addModifiers(PROTECTED) + .addParameter(serviceClientConfigurationClassName, "serviceClientConfiguration") + .addParameter(SdkClientConfiguration.class, "clientConfiguration") + .addStatement("this.clientHandler = new $T(clientConfiguration)", protocolSpec.getClientHandlerClass()) + .addStatement("this.clientConfiguration = clientConfiguration") + .addStatement("this.serviceClientConfiguration = serviceClientConfiguration"); FieldSpec protocolFactoryField = protocolSpec.protocolFactory(model); if (model.getMetadata().isJsonProtocol()) { builder.addStatement("this.$N = init($T.builder()).build()", protocolFactoryField.name, diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java index 60e1b8877ad9..8c64f213eae0 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientInterface.java @@ -42,6 +42,7 @@ import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.ThreadSafe; import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; +import software.amazon.awssdk.awscore.AwsClient; import software.amazon.awssdk.awscore.exception.AwsServiceException; import software.amazon.awssdk.codegen.docs.ClientType; import software.amazon.awssdk.codegen.docs.DocConfiguration; @@ -57,7 +58,6 @@ import software.amazon.awssdk.codegen.utils.PaginatorUtils; import software.amazon.awssdk.core.ResponseBytes; import software.amazon.awssdk.core.ResponseInputStream; -import software.amazon.awssdk.core.SdkClient; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.core.sync.ResponseTransformer; @@ -94,12 +94,13 @@ public final TypeSpec poetSpec() { result.addMethod(waiterMethod()); } addAdditionalMethods(result); + result.addMethod(serviceClientConfigMethod()); addCloseMethod(result); return result.build(); } protected void addInterfaceClass(TypeSpec.Builder type) { - type.addSuperinterface(SdkClient.class); + type.addSuperinterface(AwsClient.class); } protected TypeSpec.Builder createTypeSpec() { @@ -529,6 +530,15 @@ protected MethodSpec utilitiesMethod() { return utilitiesOperationBody(builder).build(); } + protected MethodSpec serviceClientConfigMethod() { + return MethodSpec.methodBuilder("serviceClientConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, DEFAULT) + .addStatement("throw new $T()", UnsupportedOperationException.class) + .returns(new PoetExtension(model).getServiceConfigClass()) + .build(); + } + protected MethodSpec.Builder utilitiesOperationBody(MethodSpec.Builder builder) { return builder.addModifiers(DEFAULT).addStatement("throw new $T()", UnsupportedOperationException.class); } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationClass.java new file mode 100644 index 000000000000..1d3d258ef01b --- /dev/null +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationClass.java @@ -0,0 +1,161 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.model; + +import static javax.lang.model.element.Modifier.ABSTRACT; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.TypeSpec; +import java.net.URI; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.awscore.AwsServiceClientConfiguration; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.codegen.poet.ClassSpec; +import software.amazon.awssdk.codegen.poet.PoetUtils; +import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; +import software.amazon.awssdk.regions.Region; + +public class ServiceClientConfigurationClass implements ClassSpec { + private final ClassName defaultClientMetadataClassName; + + public ServiceClientConfigurationClass(IntermediateModel model) { + String basePackage = model.getMetadata().getFullClientPackageName(); + String serviceId = model.getMetadata().getServiceName(); + this.defaultClientMetadataClassName = ClassName.get(basePackage, serviceId + "ServiceClientConfiguration"); + } + + @Override + public TypeSpec poetSpec() { + return PoetUtils.createClassBuilder(defaultClientMetadataClassName) + .superclass(AwsServiceClientConfiguration.class) + .addJavadoc("Class to expose the service client settings to the user. Implementation of {@link $T}", + AwsServiceClientConfiguration.class) + .addMethod(constructor()) + .addMethod(builderMethod()) + .addModifiers(PUBLIC, FINAL) + .addAnnotation(SdkPublicApi.class) + .addType(builderInterfaceSpec()) + .addType(builderImplSpec()) + .build(); + } + + @Override + public ClassName className() { + return defaultClientMetadataClassName; + } + + public MethodSpec constructor() { + return MethodSpec.constructorBuilder() + .addModifiers(PRIVATE) + .addParameter(className().nestedClass("Builder"), "builder") + .addStatement("super(builder)") + .build(); + } + + public MethodSpec builderMethod() { + return MethodSpec.methodBuilder("builder") + .addModifiers(PUBLIC, STATIC) + .addStatement("return new BuilderImpl()") + .returns(className().nestedClass("Builder")) + .addJavadoc("") + .build(); + } + + private TypeSpec builderInterfaceSpec() { + return TypeSpec.interfaceBuilder("Builder") + .addModifiers(PUBLIC) + .addSuperinterface(ClassName.get(AwsServiceClientConfiguration.class).nestedClass("Builder")) + .addJavadoc("A builder for creating a {@link $T}", className()) + .addMethod(MethodSpec.methodBuilder("build") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, ABSTRACT) + .returns(className()) + .build()) + .addMethod(MethodSpec.methodBuilder("region") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, ABSTRACT) + .addParameter(Region.class, "region") + .returns(className().nestedClass("Builder")) + .addJavadoc("Configure the region") + .build()) + .addMethod(MethodSpec.methodBuilder("endpointOverride") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, ABSTRACT) + .addParameter(URI.class, "endpointOverride") + .returns(className().nestedClass("Builder")) + .addJavadoc("Configure the endpointOverride") + .build()) + .addMethod(MethodSpec.methodBuilder("overrideConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC, ABSTRACT) + .addParameter(ClientOverrideConfiguration.class, "clientOverrideConfiguration") + .returns(className().nestedClass("Builder")) + .addJavadoc("Configure the client override configuration") + .build()) + .build(); + } + + private TypeSpec builderImplSpec() { + return TypeSpec.classBuilder("BuilderImpl") + .addModifiers(PRIVATE, STATIC, FINAL) + .addSuperinterface(className().nestedClass("Builder")) + .superclass(ClassName.get(AwsServiceClientConfiguration.class).nestedClass("BuilderImpl")) + .addMethod(MethodSpec.constructorBuilder() + .addModifiers(PRIVATE) + .build()) + .addMethod(MethodSpec.constructorBuilder() + .addModifiers(PRIVATE) + .addParameter(className(), "serviceClientConfiguration") + .addStatement("super(serviceClientConfiguration)") + .build()) + .addMethod(MethodSpec.methodBuilder("region") + .addAnnotation(Override.class) + .addModifiers(PUBLIC) + .addParameter(Region.class, "region") + .returns(className().nestedClass("Builder")) + .addStatement("this.region = region") + .addStatement("return this") + .build()) + .addMethod(MethodSpec.methodBuilder("overrideConfiguration") + .addAnnotation(Override.class) + .addModifiers(PUBLIC) + .addParameter(ClientOverrideConfiguration.class, "clientOverrideConfiguration") + .returns(className().nestedClass("Builder")) + .addStatement("this.overrideConfiguration = clientOverrideConfiguration") + .addStatement("return this") + .build()) + .addMethod(MethodSpec.methodBuilder("endpointOverride") + .addAnnotation(Override.class) + .addModifiers(PUBLIC) + .addParameter(URI.class, "endpointOverride") + .returns(className().nestedClass("Builder")) + .addStatement("this.endpointOverride = endpointOverride") + .addStatement("return this") + .build()) + .addMethod(MethodSpec.methodBuilder("build") + .addAnnotation(Override.class) + .addModifiers(PUBLIC) + .returns(className()) + .addStatement("return new $T(this)", className()) + .build()) + .build(); + } +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ShapeModelSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ShapeModelSpec.java index f2763a6a1019..8d79d83928ae 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ShapeModelSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ShapeModelSpec.java @@ -97,6 +97,7 @@ public Iterable staticFields(Modifier... modifiers) { shapeModel.getNonStreamingMembers().stream() // Exceptions can be members of event stream shapes, need to filter those out of the models .filter(m -> m.getShape() == null || m.getShape().getShapeType() != ShapeType.Exception) + .filter(m -> !m.isSynthetic()) .forEach(m -> { FieldSpec field = typeProvider.asField(m, modifiers); ClassName sdkFieldType = ClassName.get(SdkField.class); diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointProviderTestSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointProviderTestSpec.java index 08e07af1c9ce..a8f8f8cc3559 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointProviderTestSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointProviderTestSpec.java @@ -121,7 +121,7 @@ private CodeBlock createTestCase(EndpointTestModel test) { if (test.getParams() != null) { test.getParams().forEach((n, v) -> { - if (!isDeclaredParam(n)) { + if (!endpointRulesSpecUtils.isDeclaredParam(n)) { return; } @@ -144,9 +144,4 @@ private boolean isRegionBuiltIn(String paramName) { ParameterModel param = parameters.get(paramName); return param.getBuiltInEnum() == BuiltInParameter.AWS_REGION; } - - private boolean isDeclaredParam(String paramName) { - Map parameters = model.getEndpointRuleSetModel().getParameters(); - return parameters.containsKey(paramName); - } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java index 7f202eb2506f..9a8cdfdc127d 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java @@ -148,16 +148,6 @@ private MethodSpec ruleParams() { b.addStatement("$T builder = $T.builder()", paramsBuilderClass(), endpointRulesSpecUtils.parametersClassName()); - b.addStatement("setStaticContextParams(builder, executionAttributes.getAttribute($T.OPERATION_NAME))", - AwsExecutionAttribute.class); - - b.addStatement("setContextParams(builder, executionAttributes.getAttribute($T.OPERATION_NAME), context.request())", - AwsExecutionAttribute.class); - - if (hasClientContextParams()) { - b.addStatement("setClientContextParams(builder, executionAttributes)"); - } - Map parameters = model.getEndpointRuleSetModel().getParameters(); parameters.forEach((n, m) -> { @@ -201,6 +191,14 @@ private MethodSpec ruleParams() { endpointRulesSpecUtils.rulesRuntimeClassName("AwsEndpointProviderUtils"), builtInFn); }); + if (hasClientContextParams()) { + b.addStatement("setClientContextParams(builder, executionAttributes)"); + } + b.addStatement("setContextParams(builder, executionAttributes.getAttribute($T.OPERATION_NAME), context.request())", + AwsExecutionAttribute.class); + b.addStatement("setStaticContextParams(builder, executionAttributes.getAttribute($T.OPERATION_NAME))", + AwsExecutionAttribute.class); + b.addStatement("return builder.build()"); return b.build(); } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesClientTestSpec.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesClientTestSpec.java index f6938bf2558c..bdea3ebb52ff 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesClientTestSpec.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesClientTestSpec.java @@ -86,6 +86,7 @@ public class EndpointRulesClientTestSpec implements ClassSpec { tests.put("For region us-isob-east-1 with FIPS disabled and DualStack enabled", "Client builder does the validation"); tests.put("For region us-isob-west-1 with FIPS enabled and DualStack enabled", "Client builder does the validation"); tests.put("For region us-isob-west-1 with FIPS disabled and DualStack enabled", "Client builder does the validation"); + tests.put("Missing region", "Client does validation"); GLOBAL_SKIP_ENDPOINT_TESTS = Collections.unmodifiableMap(tests); } @@ -134,6 +135,18 @@ public ClassName className() { private String findDefaultRequest() { Map operations = this.model.getOperations(); + // If this is an endpoint discovery service, then use the endpoint + // operation since it goes to the service endpoint + Optional endpointOperation = operations.entrySet() + .stream() + .filter(e -> e.getValue().isEndpointOperation()) + .map(Map.Entry::getKey) + .findFirst(); + + if (endpointOperation.isPresent()) { + return endpointOperation.get(); + } + // Ideally look for something that we don't need to set any parameters // on. That means either a request with no members or one that does not // have any members bound to the URI path @@ -508,6 +521,11 @@ private CodeBlock setClientParams(String builderName, Map para config.add("$T.builder()", configClass()); params.forEach((n, v) -> { + + if (!endpointRulesSpecUtils.isDeclaredParam(n)) { + return; + } + CodeBlock valueLiteral = endpointRulesSpecUtils.treeNodeToLiteral(v); switch (n) { case "UseDualStack": @@ -641,9 +659,9 @@ private CodeBlock getSkipReasonBlock(String testName) { private MethodSpec methodSetupMethod() { MethodSpec.Builder b = MethodSpec.methodBuilder("methodSetup") - .addModifiers(Modifier.PUBLIC) - .addAnnotation(BeforeEach.class) - .returns(void.class); + .addModifiers(Modifier.PUBLIC) + .addAnnotation(BeforeEach.class) + .returns(void.class); b.addStatement("super.methodSetup()"); @@ -663,9 +681,9 @@ private CodeBlock s3RegionalEndpointSystemPropertyCode() { private FieldSpec s3RegionEndpointSystemPropertySaveValueField() { return FieldSpec.builder(String.class, "regionalEndpointPropertySaveValue") - .addModifiers(Modifier.PRIVATE, Modifier.STATIC) - .initializer("$T.getProperty($L)", System.class, s3RegionalEndpointSystemPropertyCode()) - .build(); + .addModifiers(Modifier.PRIVATE, Modifier.STATIC) + .initializer("$T.getProperty($L)", System.class, s3RegionalEndpointSystemPropertyCode()) + .build(); } private MethodSpec teardownMethod() { diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java index 3d1343687144..f0cd296141b2 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java @@ -27,6 +27,7 @@ import java.net.URL; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.jar.JarFile; import java.util.stream.Collectors; @@ -201,4 +202,9 @@ public List rulesEngineResourceFiles() { throw new UncheckedIOException(e); } } + + public boolean isDeclaredParam(String paramName) { + Map parameters = intermediateModel.getEndpointRuleSetModel().getParameters(); + return parameters.containsKey(paramName); + } } diff --git a/codegen/src/test/java/software/amazon/awssdk/codegen/customization/processors/CustomSdkShapesProcessorTest.java b/codegen/src/test/java/software/amazon/awssdk/codegen/customization/processors/CustomSdkShapesProcessorTest.java new file mode 100644 index 000000000000..9c2ffd552603 --- /dev/null +++ b/codegen/src/test/java/software/amazon/awssdk/codegen/customization/processors/CustomSdkShapesProcessorTest.java @@ -0,0 +1,160 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.customization.processors; + +import static org.assertj.core.api.Assertions.assertThatNullPointerException; +import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; + +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.codegen.C2jModels; +import software.amazon.awssdk.codegen.IntermediateModelBuilder; +import software.amazon.awssdk.codegen.model.config.customization.CustomSdkShapes; +import software.amazon.awssdk.codegen.model.config.customization.CustomizationConfig; +import software.amazon.awssdk.codegen.model.service.Member; +import software.amazon.awssdk.codegen.model.service.ServiceModel; +import software.amazon.awssdk.codegen.model.service.Shape; +import software.amazon.awssdk.codegen.poet.model.AwsModelSpecTest; +import software.amazon.awssdk.codegen.utils.ModelLoaderUtils; + +public class CustomSdkShapesProcessorTest { + + CustomizationConfig config; + ServiceModel serviceModel; + + @BeforeEach + public void setUp() throws IOException { + File serviceModelFile = new File(AwsModelSpecTest.class.getResource("service-2.json").getFile()); + File customizationConfigFile = new File(AwsModelSpecTest.class.getResource("customization.config").getFile()); + serviceModel = ModelLoaderUtils.loadModel(ServiceModel.class, serviceModelFile); + config = ModelLoaderUtils.loadModel(CustomizationConfig.class, customizationConfigFile); + } + + @Test + public void setCustomStringShape_isAddedToModel() { + CustomSdkShapes customSdkShapes = config.getCustomSdkShapes(); + Map shapes = new HashMap<>(); + shapes.putAll(customSdkShapes.getShapes()); + + Shape stringShape = new Shape(); + stringShape.setType("string"); + + String shapeName = "StringShape"; + shapes.put(shapeName, stringShape); + customSdkShapes.setShapes(shapes); + config.setCustomSdkShapes(customSdkShapes); + + new IntermediateModelBuilder(C2jModels.builder() + .serviceModel(serviceModel) + .customizationConfig(config) + .build()) + .build(); + + assertThat(serviceModel.getShapes()).containsKey(shapeName); + assertThat(serviceModel.getShapes()).containsValue(stringShape); + assertThat(serviceModel.getShape(shapeName).getType()).isEqualTo("string"); + } + + @Test + public void setCustomListShape_isAddedToModel() { + CustomSdkShapes customSdkShapes = config.getCustomSdkShapes(); + Map shapes = new HashMap<>(); + shapes.putAll(customSdkShapes.getShapes()); + + Shape listShape = new Shape(); + listShape.setType("list"); + + Member member = new Member(); + String memberName = "Event"; + member.setShape(memberName); + listShape.setMember(member); + + String shapeName = "ListShape"; + shapes.put(shapeName, listShape); + customSdkShapes.setShapes(shapes); + config.setCustomSdkShapes(customSdkShapes); + + new IntermediateModelBuilder(C2jModels.builder() + .serviceModel(serviceModel) + .customizationConfig(config) + .build()) + .build(); + + assertThat(serviceModel.getShapes()).containsKey(shapeName); + assertThat(serviceModel.getShapes()).containsValue(listShape); + assertThat(serviceModel.getShape(shapeName).getType()).isEqualTo("list"); + assertThat(serviceModel.getShape(shapeName).getListMember()).isEqualTo(member); + assertThat(serviceModel.getShape(shapeName).getListMember().getShape()).isEqualTo("Event"); + } + + @Test + public void setCustomCustomizedShape_isAddedToModel() { + CustomSdkShapes customSdkShapes = config.getCustomSdkShapes(); + Map shapes = new HashMap<>(); + shapes.putAll(customSdkShapes.getShapes()); + + Shape stringShape = new Shape(); + stringShape.setType("string"); + + String shapeName = "StringShape"; + shapes.put(shapeName, stringShape); + + Shape customizedShape = new Shape(); + customizedShape.setType(shapeName); + String customizedShapeName = "CustomizedShape"; + shapes.put(customizedShapeName, customizedShape); + + + customSdkShapes.setShapes(shapes); + config.setCustomSdkShapes(customSdkShapes); + + new IntermediateModelBuilder(C2jModels.builder() + .serviceModel(serviceModel) + .customizationConfig(config) + .build()) + .build(); + + assertThat(serviceModel.getShapes()).containsKey(customizedShapeName); + assertThat(serviceModel.getShapes()).containsValue(customizedShape); + assertThat(serviceModel.getShape(customizedShapeName).getType()).isEqualTo(shapeName); + } + + @Test + public void setCustomNullShape_throwsNullPointerException() { + CustomSdkShapes customSdkShapes = config.getCustomSdkShapes(); + Map shapes = new HashMap<>(); + shapes.putAll(customSdkShapes.getShapes()); + + Shape stringShape = new Shape(); + stringShape.setType(null); + + String shapeName = "NullShape"; + shapes.put(shapeName, stringShape); + customSdkShapes.setShapes(shapes); + config.setCustomSdkShapes(customSdkShapes); + + assertThatNullPointerException() + .isThrownBy(() -> new IntermediateModelBuilder(C2jModels.builder() + .serviceModel(serviceModel) + .customizationConfig(config) + .build()). + build()); + } +} diff --git a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/PoetClientFunctionalTests.java b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/PoetClientFunctionalTests.java index 9e5eabe9dbcc..226a34eef4a2 100644 --- a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/PoetClientFunctionalTests.java +++ b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/client/PoetClientFunctionalTests.java @@ -145,5 +145,4 @@ public void syncClientCustomServiceMetaData() throws Exception { ClassSpec syncClientCustomServiceMetaData = createSyncClientClass(ClientTestModels.customContentTypeModels()); assertThat(syncClientCustomServiceMetaData, generatesTo("test-customservicemetadata-sync.java")); } - } diff --git a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/model/CustomSdkShapesCodegenTest.java b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/model/CustomSdkShapesCodegenTest.java new file mode 100644 index 000000000000..19c95061ae36 --- /dev/null +++ b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/model/CustomSdkShapesCodegenTest.java @@ -0,0 +1,68 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.model; + + +import static org.assertj.core.api.Assertions.assertThat; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Before; +import org.junit.Test; +import software.amazon.awssdk.codegen.C2jModels; +import software.amazon.awssdk.codegen.IntermediateModelBuilder; +import software.amazon.awssdk.codegen.model.config.customization.CustomizationConfig; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.codegen.model.intermediate.MemberModel; +import software.amazon.awssdk.codegen.model.intermediate.ShapeModel; +import software.amazon.awssdk.codegen.model.service.ServiceModel; +import software.amazon.awssdk.codegen.utils.ModelLoaderUtils; + +public class CustomSdkShapesCodegenTest { + + private IntermediateModel intermediateModel; + + @Before + public void setUp() throws IOException { + File serviceModelFile = new File(AwsModelSpecTest.class.getResource("service-2.json").getFile()); + File customizationConfigFile = new File(AwsModelSpecTest.class + .getResource("customization.config") + .getFile()); + ServiceModel serviceModel = ModelLoaderUtils.loadModel(ServiceModel.class, serviceModelFile); + CustomizationConfig basicConfig = ModelLoaderUtils.loadModel(CustomizationConfig.class, customizationConfigFile); + + intermediateModel = new IntermediateModelBuilder( + C2jModels.builder() + .serviceModel(serviceModel) + .customizationConfig(basicConfig) + .build()) + .build(); + } + + + @Test + public void setAndInjectCustomShapes_areAddedAsMembersToBaseTypeShape() { + ShapeModel baseTypeShape = intermediateModel.getShapes().get("BaseType"); + List baseTypeShapeMembers = baseTypeShape.getMembers(); + List memberNames = new ArrayList<>(); + for (MemberModel member: baseTypeShapeMembers) { + memberNames.add(member.getName()); + } + assertThat(memberNames).contains("CustomShape1","CustomShape2"); + } +} diff --git a/codegen/src/test/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationSpecTest.java b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationSpecTest.java new file mode 100644 index 000000000000..e8604e838ce0 --- /dev/null +++ b/codegen/src/test/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationSpecTest.java @@ -0,0 +1,55 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.codegen.poet.model; + +import static software.amazon.awssdk.codegen.poet.PoetMatchers.generatesTo; + +import java.io.File; +import java.io.IOException; +import org.hamcrest.MatcherAssert; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.codegen.C2jModels; +import software.amazon.awssdk.codegen.IntermediateModelBuilder; +import software.amazon.awssdk.codegen.model.config.customization.CustomizationConfig; +import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel; +import software.amazon.awssdk.codegen.model.service.ServiceModel; +import software.amazon.awssdk.codegen.utils.ModelLoaderUtils; + +public class ServiceClientConfigurationSpecTest { + private static IntermediateModel intermediateModel; + + @BeforeAll + public static void setUp() throws IOException { + File serviceModelFile = new File(AwsModelSpecTest.class.getResource("service-2.json").getFile()); + File customizationConfigFile = new File(AwsModelSpecTest.class + .getResource("customization.config") + .getFile()); + + intermediateModel = new IntermediateModelBuilder( + C2jModels.builder() + .serviceModel(ModelLoaderUtils.loadModel(ServiceModel.class, serviceModelFile)) + .customizationConfig(ModelLoaderUtils.loadModel(CustomizationConfig.class, customizationConfigFile)) + .build()) + .build(); + } + + @Test + public void testGeneration() { + ServiceClientConfigurationClass spec = new ServiceClientConfigurationClass(intermediateModel); + MatcherAssert.assertThat(spec, generatesTo("serviceclientconfiguration.java")); + } +} diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java index 8973ffe68acf..61101024dda9 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java @@ -1,5 +1,6 @@ package software.amazon.awssdk.services.json; +import java.net.URI; import software.amazon.awssdk.annotations.Generated; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; @@ -31,6 +32,14 @@ public DefaultJsonAsyncClientBuilder tokenProvider(SdkTokenProvider tokenProvide protected final JsonAsyncClient buildClient() { SdkClientConfiguration clientConfiguration = super.asyncClientConfiguration(); this.validateClientOptions(clientConfiguration); - return new DefaultJsonAsyncClient(clientConfiguration); + URI endpointOverride = null; + if (clientConfiguration.option(SdkClientOption.ENDPOINT_OVERRIDDEN) != null + && Boolean.TRUE.equals(clientConfiguration.option(SdkClientOption.ENDPOINT_OVERRIDDEN))) { + endpointOverride = clientConfiguration.option(SdkClientOption.ENDPOINT); + } + JsonServiceClientConfiguration serviceClientConfiguration = JsonServiceClientConfiguration.builder() + .overrideConfiguration(overrideConfiguration()).region(clientConfiguration.option(AwsClientOption.AWS_REGION)) + .endpointOverride(endpointOverride).build(); + return new DefaultJsonAsyncClient(serviceClientConfiguration, clientConfiguration); } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java index 07c2d435e406..64b443054e04 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java @@ -1,5 +1,6 @@ package software.amazon.awssdk.services.json; +import java.net.URI; import software.amazon.awssdk.annotations.Generated; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; @@ -31,6 +32,14 @@ public DefaultJsonClientBuilder tokenProvider(SdkTokenProvider tokenProvider) { protected final JsonClient buildClient() { SdkClientConfiguration clientConfiguration = super.syncClientConfiguration(); this.validateClientOptions(clientConfiguration); - return new DefaultJsonClient(clientConfiguration); + URI endpointOverride = null; + if (clientConfiguration.option(SdkClientOption.ENDPOINT_OVERRIDDEN) != null + && Boolean.TRUE.equals(clientConfiguration.option(SdkClientOption.ENDPOINT_OVERRIDDEN))) { + endpointOverride = clientConfiguration.option(SdkClientOption.ENDPOINT); + } + JsonServiceClientConfiguration serviceClientConfiguration = JsonServiceClientConfiguration.builder() + .overrideConfiguration(overrideConfiguration()).region(clientConfiguration.option(AwsClientOption.AWS_REGION)) + .endpointOverride(endpointOverride).build(); + return new DefaultJsonClient(serviceClientConfiguration, clientConfiguration); } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-tests.json b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-tests.json index bdc74b042d08..6cc2c5ba6317 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-tests.json +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/query/endpoint-tests.json @@ -87,6 +87,15 @@ } } ] + }, + { + "documentation": "Has has undeclared input parameter", + "expect": { + "error": "Missing info" + }, + "params": { + "NotAParam": "ABC" + } } ], "version": "1.0" diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-async-client-class.java index 7c017c1b49f6..a8e143b21cc3 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-async-client-class.java @@ -652,6 +652,11 @@ public CompletableFuture streamingOutputOperation( return delegate.streamingOutputOperation(streamingOutputOperationRequest, asyncResponseTransformer); } + @Override + public final JsonServiceClientConfiguration serviceClientConfiguration() { + return delegate.serviceClientConfiguration(); + } + @Override public final String serviceName() { return delegate.serviceName(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-sync-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-sync-client-class.java index 0ac2e8464e37..4d6847402dc4 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-sync-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-abstract-sync-client-class.java @@ -863,6 +863,11 @@ public SdkClient delegate() { return this.delegate; } + @Override + public final JsonServiceClientConfiguration serviceClientConfiguration() { + return delegate.serviceClientConfiguration(); + } + @Override public void close() { delegate.close(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java index 3ebb8bf47ad9..e0ecd250b7ce 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java @@ -128,11 +128,15 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { private final SdkClientConfiguration clientConfiguration; + private final JsonServiceClientConfiguration serviceClientConfiguration; + private final Executor executor; - protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { + protected DefaultJsonAsyncClient(JsonServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } @@ -1176,6 +1180,11 @@ public CompletableFuture streamingOutputOperation( } } + @Override + public final JsonServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public final String serviceName() { return SERVICE_NAME; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java index 9b602e5fd39e..e33761735db9 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java @@ -55,9 +55,13 @@ final class DefaultQueryToJsonCompatibleAsyncClient implements QueryToJsonCompat private final SdkClientConfiguration clientConfiguration; - protected DefaultQueryToJsonCompatibleAsyncClient(SdkClientConfiguration clientConfiguration) { + private final QueryToJsonCompatibleServiceClientConfiguration serviceClientConfiguration; + + protected DefaultQueryToJsonCompatibleAsyncClient(QueryToJsonCompatibleServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -124,6 +128,11 @@ public CompletableFuture aPostOperation(APostOperationRe } } + @Override + public final QueryToJsonCompatibleServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public final String serviceName() { return SERVICE_NAME; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java index ab58d6b3275c..65123e1e4c5c 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java @@ -51,9 +51,13 @@ final class DefaultQueryToJsonCompatibleClient implements QueryToJsonCompatibleC private final SdkClientConfiguration clientConfiguration; - protected DefaultQueryToJsonCompatibleClient(SdkClientConfiguration clientConfiguration) { + private final QueryToJsonCompatibleServiceClientConfiguration serviceClientConfiguration; + + protected DefaultQueryToJsonCompatibleClient(QueryToJsonCompatibleServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -156,6 +160,11 @@ private > T init(T builder) { .exceptionBuilderSupplier(InvalidInputException::builder).httpStatusCode(400).build()); } + @Override + public final QueryToJsonCompatibleServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public void close() { clientHandler.close(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java index bd385b62da0e..d3d543b062fd 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java @@ -47,9 +47,14 @@ final class DefaultProtocolRestJsonWithCustomContentTypeAsyncClient implements P private final SdkClientConfiguration clientConfiguration; - protected DefaultProtocolRestJsonWithCustomContentTypeAsyncClient(SdkClientConfiguration clientConfiguration) { + private final ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration; + + protected DefaultProtocolRestJsonWithCustomContentTypeAsyncClient( + ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -106,6 +111,11 @@ public CompletableFuture oneOperation(OneOperationRequest } } + @Override + public final ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public final String serviceName() { return SERVICE_NAME; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java index ecac52f723ef..7adf676c8d8f 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java @@ -43,9 +43,14 @@ final class DefaultProtocolRestJsonWithCustomContentTypeClient implements Protoc private final SdkClientConfiguration clientConfiguration; - protected DefaultProtocolRestJsonWithCustomContentTypeClient(SdkClientConfiguration clientConfiguration) { + private final ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration; + + protected DefaultProtocolRestJsonWithCustomContentTypeClient( + ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -125,6 +130,11 @@ private > T init(T builder) { .protocol(AwsJsonProtocol.REST_JSON).protocolVersion("1.1").contentType("application/json"); } + @Override + public final ProtocolRestJsonWithCustomContentTypeServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public void close() { clientHandler.close(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java index 529d555c142e..243af9e65099 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java @@ -61,11 +61,15 @@ final class DefaultEndpointDiscoveryTestAsyncClient implements EndpointDiscovery private final SdkClientConfiguration clientConfiguration; + private final EndpointDiscoveryTestServiceClientConfiguration serviceClientConfiguration; + private EndpointDiscoveryRefreshCache endpointDiscoveryCache; - protected DefaultEndpointDiscoveryTestAsyncClient(SdkClientConfiguration clientConfiguration) { + protected DefaultEndpointDiscoveryTestAsyncClient(EndpointDiscoveryTestServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); if (clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED)) { this.endpointDiscoveryCache = EndpointDiscoveryRefreshCache @@ -344,6 +348,11 @@ public CompletableFuture testDiscoveryRequired( } } + @Override + public final EndpointDiscoveryTestServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public final String serviceName() { return SERVICE_NAME; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java index 6845c352a625..fdfd135179c8 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java @@ -57,11 +57,15 @@ final class DefaultEndpointDiscoveryTestClient implements EndpointDiscoveryTestC private final SdkClientConfiguration clientConfiguration; + private final EndpointDiscoveryTestServiceClientConfiguration serviceClientConfiguration; + private EndpointDiscoveryRefreshCache endpointDiscoveryCache; - protected DefaultEndpointDiscoveryTestClient(SdkClientConfiguration clientConfiguration) { + protected DefaultEndpointDiscoveryTestClient(EndpointDiscoveryTestServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); if (clientConfiguration.option(SdkClientOption.ENDPOINT_DISCOVERY_ENABLED)) { this.endpointDiscoveryCache = EndpointDiscoveryRefreshCache.create(EndpointDiscoveryTestEndpointDiscoveryCacheLoader @@ -329,6 +333,11 @@ private > T init(T builder) { .protocolVersion("1.1"); } + @Override + public final EndpointDiscoveryTestServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public void close() { clientHandler.close(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java index c7478a9d0dd7..a232ac78b4e0 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java @@ -137,11 +137,15 @@ final class DefaultJsonAsyncClient implements JsonAsyncClient { private final SdkClientConfiguration clientConfiguration; + private final JsonServiceClientConfiguration serviceClientConfiguration; + private final Executor executor; - protected DefaultJsonAsyncClient(SdkClientConfiguration clientConfiguration) { + protected DefaultJsonAsyncClient(JsonServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } @@ -1356,6 +1360,11 @@ public CompletableFuture streamingOutputOperation( } } + @Override + public final JsonServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public final String serviceName() { return SERVICE_NAME; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java index 2fd4d6af7764..ad8845778eb1 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-interface.java @@ -7,7 +7,7 @@ import software.amazon.awssdk.annotations.Generated; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.ThreadSafe; -import software.amazon.awssdk.core.SdkClient; +import software.amazon.awssdk.awscore.AwsClient; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.services.builder.Builder; @@ -58,7 +58,7 @@ @Generated("software.amazon.awssdk:codegen") @SdkPublicApi @ThreadSafe -public interface JsonAsyncClient extends SdkClient { +public interface JsonAsyncClient extends AwsClient { String SERVICE_NAME = "json-service"; /** @@ -1742,6 +1742,11 @@ default CompletableFuture streamingOutputOpera .build(), destinationPath); } + @Override + default JsonServiceClientConfiguration serviceClientConfiguration() { + throw new UnsupportedOperationException(); + } + /** * Create a {@link JsonAsyncClient} with the region loaded from the * {@link software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain} and credentials loaded from the diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java index 5521257775cc..544fe2e977aa 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java @@ -96,9 +96,13 @@ final class DefaultJsonClient implements JsonClient { private final SdkClientConfiguration clientConfiguration; - protected DefaultJsonClient(SdkClientConfiguration clientConfiguration) { + private final JsonServiceClientConfiguration serviceClientConfiguration; + + protected DefaultJsonClient(JsonServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build(); } @@ -1001,6 +1005,11 @@ private > T init(T builder) { .exceptionBuilderSupplier(InvalidInputException::builder).httpStatusCode(400).build()); } + @Override + public final JsonServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public void close() { clientHandler.close(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java index 12d7dcb1beb6..bf5cba1dce17 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-interface.java @@ -5,10 +5,10 @@ import software.amazon.awssdk.annotations.Generated; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.awscore.AwsClient; import software.amazon.awssdk.awscore.exception.AwsServiceException; import software.amazon.awssdk.core.ResponseBytes; import software.amazon.awssdk.core.ResponseInputStream; -import software.amazon.awssdk.core.SdkClient; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.core.sync.ResponseTransformer; @@ -50,7 +50,7 @@ @Generated("software.amazon.awssdk:codegen") @SdkPublicApi @ThreadSafe -public interface JsonClient extends SdkClient { +public interface JsonClient extends AwsClient { String SERVICE_NAME = "json-service"; /** @@ -1682,4 +1682,9 @@ static JsonClientBuilder builder() { static ServiceMetadata serviceMetadata() { return ServiceMetadata.of(SERVICE_METADATA_ID); } + + @Override + default JsonServiceClientConfiguration serviceClientConfiguration() { + throw new UnsupportedOperationException(); + } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java index f8d05534ac88..a5e04e6abc24 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java @@ -93,11 +93,15 @@ final class DefaultQueryAsyncClient implements QueryAsyncClient { private final SdkClientConfiguration clientConfiguration; + private final QueryServiceClientConfiguration serviceClientConfiguration; + private final ScheduledExecutorService executorService; - protected DefaultQueryAsyncClient(SdkClientConfiguration clientConfiguration) { + protected DefaultQueryAsyncClient(QueryServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(); this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE); } @@ -783,6 +787,11 @@ public QueryAsyncWaiter waiter() { return QueryAsyncWaiter.builder().client(this).scheduledExecutorService(executorService).build(); } + @Override + public final QueryServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public final String serviceName() { return SERVICE_NAME; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java index bde971a0c54b..d9fdd08fef61 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java @@ -85,9 +85,13 @@ final class DefaultQueryClient implements QueryClient { private final SdkClientConfiguration clientConfiguration; - protected DefaultQueryClient(SdkClientConfiguration clientConfiguration) { + private final QueryServiceClientConfiguration serviceClientConfiguration; + + protected DefaultQueryClient(QueryServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(); } @@ -708,6 +712,11 @@ private AwsQueryProtocolFactory init() { .clientConfiguration(clientConfiguration).defaultServiceExceptionSupplier(QueryException::builder).build(); } + @Override + public final QueryServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public void close() { clientHandler.close(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java index a83881c09c06..c1dc8837dbbb 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java @@ -98,11 +98,15 @@ final class DefaultXmlAsyncClient implements XmlAsyncClient { private final SdkClientConfiguration clientConfiguration; + private final XmlServiceClientConfiguration serviceClientConfiguration; + private final Executor executor; - protected DefaultXmlAsyncClient(SdkClientConfiguration clientConfiguration) { + protected DefaultXmlAsyncClient(XmlServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsAsyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(); this.executor = clientConfiguration.option(SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR); } @@ -750,6 +754,11 @@ public CompletableFuture streamingOutputOperation( } } + @Override + public final XmlServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public final String serviceName() { return SERVICE_NAME; diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java index 512156d33846..43e33d67c4dc 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java @@ -80,9 +80,13 @@ final class DefaultXmlClient implements XmlClient { private final SdkClientConfiguration clientConfiguration; - protected DefaultXmlClient(SdkClientConfiguration clientConfiguration) { + private final XmlServiceClientConfiguration serviceClientConfiguration; + + protected DefaultXmlClient(XmlServiceClientConfiguration serviceClientConfiguration, + SdkClientConfiguration clientConfiguration) { this.clientHandler = new AwsSyncClientHandler(clientConfiguration); this.clientConfiguration = clientConfiguration; + this.serviceClientConfiguration = serviceClientConfiguration; this.protocolFactory = init(); } @@ -588,6 +592,11 @@ private AwsXmlProtocolFactory init() { .clientConfiguration(clientConfiguration).defaultServiceExceptionSupplier(XmlException::builder).build(); } + @Override + public final XmlServiceClientConfiguration serviceClientConfiguration() { + return this.serviceClientConfiguration; + } + @Override public void close() { clientHandler.close(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/basetype.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/basetype.java index adb79992cc22..c185dc837ab9 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/basetype.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/basetype.java @@ -32,8 +32,14 @@ public final class BaseType implements SdkPojo, Serializable, ToCopyableBuilder< private final String baseMember; + private final String customShape1; + + private final Integer customShape2; + private BaseType(BuilderImpl builder) { this.baseMember = builder.baseMember; + this.customShape1 = builder.customShape1; + this.customShape2 = builder.customShape2; } /** @@ -45,6 +51,24 @@ public final String baseMember() { return baseMember; } + /** + * Custom shape of type string + * + * @return Custom shape of type string + */ + public final String customShape1() { + return customShape1; + } + + /** + * Custom shape of type integer + * + * @return Custom shape of type integer + */ + public final Integer customShape2() { + return customShape2; + } + @Override public Builder toBuilder() { return new BuilderImpl(this); @@ -62,6 +86,8 @@ public static Class serializableBuilderClass() { public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(baseMember()); + hashCode = 31 * hashCode + Objects.hashCode(customShape1()); + hashCode = 31 * hashCode + Objects.hashCode(customShape2()); return hashCode; } @@ -82,7 +108,8 @@ public final boolean equalsBySdkFields(Object obj) { return false; } BaseType other = (BaseType) obj; - return Objects.equals(baseMember(), other.baseMember()); + return Objects.equals(baseMember(), other.baseMember()) && Objects.equals(customShape1(), other.customShape1()) + && Objects.equals(customShape2(), other.customShape2()); } /** @@ -91,13 +118,18 @@ public final boolean equalsBySdkFields(Object obj) { */ @Override public final String toString() { - return ToString.builder("BaseType").add("BaseMember", baseMember()).build(); + return ToString.builder("BaseType").add("BaseMember", baseMember()).add("CustomShape1", customShape1()) + .add("CustomShape2", customShape2()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "BaseMember": return Optional.ofNullable(clazz.cast(baseMember())); + case "CustomShape1": + return Optional.ofNullable(clazz.cast(customShape1())); + case "CustomShape2": + return Optional.ofNullable(clazz.cast(customShape2())); default: return Optional.empty(); } @@ -125,16 +157,40 @@ public interface Builder extends SdkPojo, CopyableBuilder { * @return Returns a reference to this object so that method calls can be chained together. */ Builder baseMember(String baseMember); + + /** + * Custom shape of type string + * + * @param customShape1 + * Custom shape of type string + * @return Returns a reference to this object so that method calls can be chained together. + */ + Builder customShape1(String customShape1); + + /** + * Custom shape of type integer + * + * @param customShape2 + * Custom shape of type integer + * @return Returns a reference to this object so that method calls can be chained together. + */ + Builder customShape2(Integer customShape2); } static final class BuilderImpl implements Builder { private String baseMember; + private String customShape1; + + private Integer customShape2; + private BuilderImpl() { } private BuilderImpl(BaseType model) { baseMember(model.baseMember); + customShape1(model.customShape1); + customShape2(model.customShape2); } public final String getBaseMember() { @@ -151,6 +207,34 @@ public final Builder baseMember(String baseMember) { return this; } + public final String getCustomShape1() { + return customShape1; + } + + public final void setCustomShape1(String customShape1) { + this.customShape1 = customShape1; + } + + @Override + public final Builder customShape1(String customShape1) { + this.customShape1 = customShape1; + return this; + } + + public final Integer getCustomShape2() { + return customShape2; + } + + public final void setCustomShape2(Integer customShape2) { + this.customShape2 = customShape2; + } + + @Override + public final Builder customShape2(Integer customShape2) { + this.customShape2 = customShape2; + return this; + } + @Override public BaseType build() { return new BaseType(this); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/customization.config b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/customization.config index 420fb5417e65..e1206b3fd913 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/customization.config +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/customization.config @@ -28,7 +28,31 @@ } } ] + }, + "BaseType": { + "inject": [ + { + "CustomShape1": { + "shape": "CustomShape1", + "documentation": "Custom shape of type string" + }, + "CustomShape2": { + "shape": "CustomShape2", + "documentation": "Custom shape of type integer" + } + } + ] + } + }, + "customSdkShapes": { + "shapes": { + "CustomShape1": { + "type":"string" + }, + "CustomShape2": { + "type":"integer" } + } }, "underscoresInNameBehavior": "ALLOW", "requiredTraitValidationEnabled": true diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/serviceclientconfiguration.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/serviceclientconfiguration.java new file mode 100644 index 000000000000..1220fcb9e0c0 --- /dev/null +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/serviceclientconfiguration.java @@ -0,0 +1,81 @@ +package software.amazon.awssdk.services.jsonprotocoltests; + +import java.net.URI; +import software.amazon.awssdk.annotations.Generated; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.awscore.AwsServiceClientConfiguration; +import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; +import software.amazon.awssdk.regions.Region; + +/** + * Class to expose the service client settings to the user. Implementation of {@link AwsServiceClientConfiguration} + */ +@Generated("software.amazon.awssdk:codegen") +@SdkPublicApi +public final class JsonProtocolTestsServiceClientConfiguration extends AwsServiceClientConfiguration { + private JsonProtocolTestsServiceClientConfiguration(Builder builder) { + super(builder); + } + + public static Builder builder() { + return new BuilderImpl(); + } + + /** + * A builder for creating a {@link JsonProtocolTestsServiceClientConfiguration} + */ + public interface Builder extends AwsServiceClientConfiguration.Builder { + @Override + JsonProtocolTestsServiceClientConfiguration build(); + + /** + * Configure the region + */ + @Override + Builder region(Region region); + + /** + * Configure the endpointOverride + */ + @Override + Builder endpointOverride(URI endpointOverride); + + /** + * Configure the client override configuration + */ + @Override + Builder overrideConfiguration(ClientOverrideConfiguration clientOverrideConfiguration); + } + + private static final class BuilderImpl extends AwsServiceClientConfiguration.BuilderImpl implements Builder { + private BuilderImpl() { + } + + private BuilderImpl(JsonProtocolTestsServiceClientConfiguration serviceClientConfiguration) { + super(serviceClientConfiguration); + } + + @Override + public Builder region(Region region) { + this.region = region; + return this; + } + + @Override + public Builder overrideConfiguration(ClientOverrideConfiguration clientOverrideConfiguration) { + this.overrideConfiguration = clientOverrideConfiguration; + return this; + } + + @Override + public Builder endpointOverride(URI endpointOverride) { + this.endpointOverride = endpointOverride; + return this; + } + + @Override + public JsonProtocolTestsServiceClientConfiguration build() { + return new JsonProtocolTestsServiceClientConfiguration(this); + } + } +} diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java index 3d503315b160..c0e2335014dd 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-resolve-interceptor.java @@ -52,12 +52,12 @@ public SdkRequest modifyRequest(Context.ModifyRequest context, ExecutionAttribut private static QueryEndpointParams ruleParams(Context.ModifyRequest context, ExecutionAttributes executionAttributes) { QueryEndpointParams.Builder builder = QueryEndpointParams.builder(); - setStaticContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME)); - setContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME), context.request()); - setClientContextParams(builder, executionAttributes); builder.region(AwsEndpointProviderUtils.regionBuiltIn(executionAttributes)); builder.useDualStackEndpoint(AwsEndpointProviderUtils.dualStackEnabledBuiltIn(executionAttributes)); builder.useFipsEndpoint(AwsEndpointProviderUtils.fipsEnabledBuiltIn(executionAttributes)); + setClientContextParams(builder, executionAttributes); + setContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME), context.request()); + setStaticContextParams(builder, executionAttributes.getAttribute(AwsExecutionAttribute.OPERATION_NAME)); return builder.build(); } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-rules-test-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-rules-test-class.java index de8688ea311d..fdcaad2a56a0 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-rules-test-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/rules/endpoint-rules-test-class.java @@ -104,7 +104,15 @@ private static List syncTestCases() { OperationWithContextParamRequest request = OperationWithContextParamRequest.builder() .nestedMember(ChecksumStructure.builder().checksumMode("foo").build()).build(); builder.build().operationWithContextParam(request); - }, Expect.builder().error("Missing info").build())); + }, Expect.builder().error("Missing info").build()), new SyncTestCase("Has has undeclared input parameter", + () -> { + QueryClientBuilder builder = QueryClient.builder(); + builder.credentialsProvider(BaseRuleSetClientTest.CREDENTIALS_PROVIDER); + builder.tokenProvider(BaseRuleSetClientTest.TOKEN_PROVIDER); + builder.httpClient(getSyncHttpClient()); + APostOperationRequest request = APostOperationRequest.builder().build(); + builder.build().aPostOperation(request); + }, Expect.builder().error("Missing info").build())); } private static List asyncTestCases() { @@ -166,6 +174,14 @@ private static List asyncTestCases() { OperationWithContextParamRequest request = OperationWithContextParamRequest.builder() .nestedMember(ChecksumStructure.builder().checksumMode("foo").build()).build(); return builder.build().operationWithContextParam(request); - }, Expect.builder().error("Missing info").build())); + }, Expect.builder().error("Missing info").build()), new AsyncTestCase("Has has undeclared input parameter", + () -> { + QueryAsyncClientBuilder builder = QueryAsyncClient.builder(); + builder.credentialsProvider(BaseRuleSetClientTest.CREDENTIALS_PROVIDER); + builder.tokenProvider(BaseRuleSetClientTest.TOKEN_PROVIDER); + builder.httpClient(getAsyncHttpClient()); + APostOperationRequest request = APostOperationRequest.builder().build(); + return builder.build().aPostOperation(request); + }, Expect.builder().error("Missing info").build())); } } diff --git a/core/annotations/pom.xml b/core/annotations/pom.xml index e292abd6087e..20cc28fafd4f 100644 --- a/core/annotations/pom.xml +++ b/core/annotations/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/arns/pom.xml b/core/arns/pom.xml index a27527fe3620..0f05a313c53a 100644 --- a/core/arns/pom.xml +++ b/core/arns/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/auth-crt/pom.xml b/core/auth-crt/pom.xml index 6d6114e5dddf..0091c520190e 100644 --- a/core/auth-crt/pom.xml +++ b/core/auth-crt/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT auth-crt diff --git a/core/auth/pom.xml b/core/auth/pom.xml index c837c4116d1e..26b16b16f0a8 100644 --- a/core/auth/pom.xml +++ b/core/auth/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT auth diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java index c35bc5ed40c7..13cbdd5f57b1 100644 --- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java +++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.java @@ -56,6 +56,8 @@ public final class ProfileCredentialsProvider private final String profileName; private final Supplier defaultProfileFileLoader; + private final Object credentialsProviderLock = new Object(); + /** * @see #builder() */ @@ -117,9 +119,9 @@ public AwsCredentials resolveCredentials() { } ProfileFile cachedOrRefreshedProfileFile = refreshProfileFile(); - if (isNewProfileFile(cachedOrRefreshedProfileFile)) { - synchronized (this) { - if (isNewProfileFile(cachedOrRefreshedProfileFile)) { + if (shouldUpdateCredentialsProvider(cachedOrRefreshedProfileFile)) { + synchronized (credentialsProviderLock) { + if (shouldUpdateCredentialsProvider(cachedOrRefreshedProfileFile)) { currentProfileFile = cachedOrRefreshedProfileFile; handleProfileFileReload(cachedOrRefreshedProfileFile); } @@ -137,8 +139,8 @@ private ProfileFile refreshProfileFile() { return profileFile.get(); } - private boolean isNewProfileFile(ProfileFile profileFile) { - return !Objects.equals(currentProfileFile, profileFile); + private boolean shouldUpdateCredentialsProvider(ProfileFile profileFile) { + return credentialsProvider == null || !Objects.equals(currentProfileFile, profileFile); } @Override diff --git a/core/aws-core/pom.xml b/core/aws-core/pom.xml index 777910ec0efe..57526199ddb9 100644 --- a/core/aws-core/pom.xml +++ b/core/aws-core/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT aws-core diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsClient.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsClient.java new file mode 100644 index 000000000000..c89103f78a08 --- /dev/null +++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsClient.java @@ -0,0 +1,33 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.awscore; + +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.core.SdkClient; + +/** + * Interface for an AWS Client that extends SdkClient. All AWS service client interfaces should extend this interface. + */ +@SdkPublicApi +@ThreadSafe +public interface AwsClient extends SdkClient { + + @Override + default AwsServiceClientConfiguration serviceClientConfiguration() { + throw new UnsupportedOperationException(); + } +} diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsServiceClientConfiguration.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsServiceClientConfiguration.java new file mode 100644 index 000000000000..30698fd6222a --- /dev/null +++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsServiceClientConfiguration.java @@ -0,0 +1,118 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.awscore; + +import java.net.URI; +import java.util.Objects; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.core.SdkServiceClientConfiguration; +import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; +import software.amazon.awssdk.regions.Region; + +/** + * Class to expose AWS service client settings to the user, e.g., region + */ +@SdkPublicApi +public abstract class AwsServiceClientConfiguration extends SdkServiceClientConfiguration { + + private final Region region; + + protected AwsServiceClientConfiguration(Builder builder) { + super(builder); + this.region = builder.region(); + } + + /** + * + * @return The configured region of the AwsClient + */ + public Region region() { + return this.region; + } + + @Override + public boolean equals(Object o) { + if (!super.equals(o)) { + return false; + } + + AwsServiceClientConfiguration serviceClientConfiguration = (AwsServiceClientConfiguration) o; + return Objects.equals(region, serviceClientConfiguration.region); + } + + @Override + public int hashCode() { + int result = 1; + result = 31 * result + super.hashCode(); + result = 31 * result + (region != null ? region.hashCode() : 0); + return result; + } + + /** + * The base interface for all AWS service client configuration builders + */ + public interface Builder extends SdkServiceClientConfiguration.Builder { + /** + * Return the region + */ + Region region(); + + /** + * Configure the region + */ + Builder region(Region region); + + @Override + Builder overrideConfiguration(ClientOverrideConfiguration clientOverrideConfiguration); + + @Override + Builder endpointOverride(URI endpointOverride); + + @Override + AwsServiceClientConfiguration build(); + } + + protected abstract static class BuilderImpl implements Builder { + protected ClientOverrideConfiguration overrideConfiguration; + protected Region region; + protected URI endpointOverride; + + protected BuilderImpl() { + } + + protected BuilderImpl(AwsServiceClientConfiguration awsServiceClientConfiguration) { + this.overrideConfiguration = awsServiceClientConfiguration.overrideConfiguration(); + this.region = awsServiceClientConfiguration.region(); + this.endpointOverride = awsServiceClientConfiguration.endpointOverride().orElse(null); + } + + @Override + public final ClientOverrideConfiguration overrideConfiguration() { + return overrideConfiguration; + } + + @Override + public final Region region() { + return region; + } + + @Override + public final URI endpointOverride() { + return endpointOverride; + } + } + +} diff --git a/core/crt-core/pom.xml b/core/crt-core/pom.xml new file mode 100644 index 000000000000..e13c60dcea6f --- /dev/null +++ b/core/crt-core/pom.xml @@ -0,0 +1,92 @@ + + + + + 4.0.0 + + software.amazon.awssdk + core + 2.20.47-SNAPSHOT + + + crt-core + AWS Java SDK :: AWS CRT Core + The AWS SDK for Java - AWS CRT Core holds common types that are built on the AWS Common Runtime + + https://aws.amazon.com/sdkforjava + + + software.amazon.awssdk + annotations + ${awsjavasdk.version} + + + software.amazon.awssdk + utils + ${awsjavasdk.version} + + + software.amazon.awssdk.crt + aws-crt + ${awscrt.version} + true + + + org.assertj + assertj-core + test + + + software.amazon.awssdk + test-utils + ${awsjavasdk.version} + test + + + junit + junit + + + org.junit.vintage + junit-vintage-engine + + + + + org.mockito + mockito-core + test + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.crtcore + + + + + + + + \ No newline at end of file diff --git a/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtConfigurationUtils.java b/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtConfigurationUtils.java new file mode 100644 index 000000000000..f7a40b2dc17a --- /dev/null +++ b/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtConfigurationUtils.java @@ -0,0 +1,69 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.crtcore; + +import java.util.Optional; +import software.amazon.awssdk.annotations.SdkProtectedApi; +import software.amazon.awssdk.crt.http.HttpMonitoringOptions; +import software.amazon.awssdk.crt.http.HttpProxyOptions; +import software.amazon.awssdk.crt.io.TlsContext; +import software.amazon.awssdk.utils.NumericUtils; + +@SdkProtectedApi +public final class CrtConfigurationUtils { + + private CrtConfigurationUtils() { + } + + public static Optional resolveProxy(CrtProxyConfiguration proxyConfiguration, + TlsContext tlsContext) { + if (proxyConfiguration == null) { + return Optional.empty(); + } + + HttpProxyOptions clientProxyOptions = new HttpProxyOptions(); + + clientProxyOptions.setHost(proxyConfiguration.host()); + clientProxyOptions.setPort(proxyConfiguration.port()); + + if ("https".equalsIgnoreCase(proxyConfiguration.scheme())) { + clientProxyOptions.setTlsContext(tlsContext); + } + + if (proxyConfiguration.username() != null && proxyConfiguration.password() != null) { + clientProxyOptions.setAuthorizationUsername(proxyConfiguration.username()); + clientProxyOptions.setAuthorizationPassword(proxyConfiguration.password()); + clientProxyOptions.setAuthorizationType(HttpProxyOptions.HttpProxyAuthorizationType.Basic); + } else { + clientProxyOptions.setAuthorizationType(HttpProxyOptions.HttpProxyAuthorizationType.None); + } + + return Optional.of(clientProxyOptions); + } + + public static Optional resolveHttpMonitoringOptions(CrtConnectionHealthConfiguration config) { + if (config == null) { + return Optional.empty(); + } + + HttpMonitoringOptions httpMonitoringOptions = new HttpMonitoringOptions(); + httpMonitoringOptions.setMinThroughputBytesPerSecond(config.minimumThroughputInBps()); + int seconds = NumericUtils.saturatedCast(config.minimumThroughputTimeout().getSeconds()); + httpMonitoringOptions.setAllowableThroughputFailureIntervalSeconds(seconds); + return Optional.of(httpMonitoringOptions); + } + +} diff --git a/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtConnectionHealthConfiguration.java b/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtConnectionHealthConfiguration.java new file mode 100644 index 000000000000..55af5ee279d8 --- /dev/null +++ b/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtConnectionHealthConfiguration.java @@ -0,0 +1,132 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.crtcore; + +import java.time.Duration; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.utils.Validate; + +/** + * The base class for CRT connection health configuration + */ +@SdkPublicApi +public abstract class CrtConnectionHealthConfiguration { + private final long minimumThroughputInBps; + private final Duration minimumThroughputTimeout; + + protected CrtConnectionHealthConfiguration(DefaultBuilder builder) { + this.minimumThroughputInBps = Validate.paramNotNull(builder.minimumThroughputInBps, + "minimumThroughputInBps"); + this.minimumThroughputTimeout = Validate.isPositive(builder.minimumThroughputTimeout, + "minimumThroughputTimeout"); + } + + /** + * @return the minimum amount of throughput, in bytes per second, for a connection to be considered healthy. + */ + public final long minimumThroughputInBps() { + return minimumThroughputInBps; + } + + /** + * @return How long a connection is allowed to be unhealthy before getting shut down. + */ + public final Duration minimumThroughputTimeout() { + return minimumThroughputTimeout; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + CrtConnectionHealthConfiguration that = (CrtConnectionHealthConfiguration) o; + + if (minimumThroughputInBps != that.minimumThroughputInBps) { + return false; + } + return minimumThroughputTimeout.equals(that.minimumThroughputTimeout); + } + + @Override + public int hashCode() { + int result = (int) (minimumThroughputInBps ^ (minimumThroughputInBps >>> 32)); + result = 31 * result + minimumThroughputTimeout.hashCode(); + return result; + } + + /** + * A builder for {@link CrtConnectionHealthConfiguration}. + * + *

All implementations of this interface are mutable and not thread safe.

+ */ + public interface Builder { + + /** + * Sets a throughput threshold for connections. Throughput below this value will be considered unhealthy. + * + * @param minimumThroughputInBps minimum amount of throughput, in bytes per second, for a connection to be + * considered healthy. + * @return Builder + */ + Builder minimumThroughputInBps(Long minimumThroughputInBps); + + /** + * Sets how long a connection is allowed to be unhealthy before getting shut down. + * + *

+ * It only supports seconds precision + * + * @param minimumThroughputTimeout How long a connection is allowed to be unhealthy + * before getting shut down. + * @return Builder + */ + Builder minimumThroughputTimeout(Duration minimumThroughputTimeout); + + CrtConnectionHealthConfiguration build(); + } + + protected abstract static class DefaultBuilder implements Builder { + private Long minimumThroughputInBps; + private Duration minimumThroughputTimeout; + + protected DefaultBuilder() { + } + + protected DefaultBuilder(CrtConnectionHealthConfiguration configuration) { + this.minimumThroughputInBps = configuration.minimumThroughputInBps; + this.minimumThroughputTimeout = configuration.minimumThroughputTimeout; + } + + @Override + public B minimumThroughputInBps(Long minimumThroughputInBps) { + this.minimumThroughputInBps = minimumThroughputInBps; + return (B) this; + } + + @Override + public B minimumThroughputTimeout(Duration minimumThroughputTimeout) { + this.minimumThroughputTimeout = minimumThroughputTimeout; + return (B) this; + } + + } +} \ No newline at end of file diff --git a/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtProxyConfiguration.java b/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtProxyConfiguration.java new file mode 100644 index 000000000000..3cfc11df621b --- /dev/null +++ b/core/crt-core/src/main/java/software/amazon/awssdk/crtcore/CrtProxyConfiguration.java @@ -0,0 +1,280 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.crtcore; + +import java.util.Objects; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.utils.ProxySystemSetting; + +/** + * The base class for AWS CRT proxy configuration + */ +@SdkPublicApi +public abstract class CrtProxyConfiguration { + private static final String HTTPS = "https"; + private final String scheme; + private final String host; + private final int port; + + private final String username; + private final String password; + private final Boolean useSystemPropertyValues; + + protected CrtProxyConfiguration(DefaultBuilder builder) { + this.useSystemPropertyValues = builder.useSystemPropertyValues; + this.scheme = builder.scheme; + this.host = resolveHost(builder.host); + this.port = resolvePort(builder.port); + this.username = builder.username; + this.password = builder.password; + } + + /** + * @return The proxy scheme. + */ + public final String scheme() { + return scheme; + } + + /** + * @return The proxy host from the configuration if set, else from the "https.proxyHost" or "http.proxyHost" system property, + * based on the scheme used, if {@link Builder#useSystemPropertyValues(Boolean)} is set to true + */ + public final String host() { + return host; + } + + /** + * @return The proxy port from the configuration if set, else from the "https.proxyPort" or "http.proxyPort" system property, + * based on the scheme used, if {@link Builder#useSystemPropertyValues(Boolean)} is set to true + */ + public final int port() { + return port; + } + + /** + * @return The proxy username from the configuration if set, else from the "https.proxyUser" or "http.proxyUser" system + * property, based on the scheme used, if {@link Builder#useSystemPropertyValues(Boolean)} is set to true + * */ + public final String username() { + if (Objects.equals(scheme(), HTTPS)) { + return resolveValue(username, ProxySystemSetting.HTTPS_PROXY_USERNAME); + } + return resolveValue(username, ProxySystemSetting.PROXY_USERNAME); + } + + /** + * @return The proxy password from the configuration if set, else from the "https.proxyPassword" or "http.proxyPassword" + * system property, based on the scheme used, if {@link Builder#useSystemPropertyValues(Boolean)} is set + * to true + * */ + public final String password() { + if (Objects.equals(scheme(), HTTPS)) { + return resolveValue(password, ProxySystemSetting.HTTPS_PROXY_PASSWORD); + } + return resolveValue(password, ProxySystemSetting.PROXY_PASSWORD); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + CrtProxyConfiguration that = (CrtProxyConfiguration) o; + + if (port != that.port) { + return false; + } + if (!Objects.equals(scheme, that.scheme)) { + return false; + } + if (!Objects.equals(host, that.host)) { + return false; + } + if (!Objects.equals(username, that.username)) { + return false; + } + if (!Objects.equals(password, that.password)) { + return false; + } + return Objects.equals(useSystemPropertyValues, that.useSystemPropertyValues); + } + + @Override + public int hashCode() { + int result = scheme != null ? scheme.hashCode() : 0; + result = 31 * result + (host != null ? host.hashCode() : 0); + result = 31 * result + port; + result = 31 * result + (username != null ? username.hashCode() : 0); + result = 31 * result + (password != null ? password.hashCode() : 0); + result = 31 * result + (useSystemPropertyValues != null ? useSystemPropertyValues.hashCode() : 0); + return result; + } + + /** + * Builder for {@link CrtProxyConfiguration}. + */ + public interface Builder { + + /** + * Set the hostname of the proxy. + * @param host The proxy host. + * @return This object for method chaining. + */ + Builder host(String host); + + /** + * Set the port that the proxy expects connections on. + * @param port The proxy port. + * @return This object for method chaining. + */ + Builder port(int port); + + /** + * The HTTP scheme to use for connecting to the proxy. Valid values are {@code http} and {@code https}. + *

+ * The client defaults to {@code http} if none is given. + * + * @param scheme The proxy scheme. + * @return This object for method chaining. + */ + Builder scheme(String scheme); + + /** + * The username to use for basic proxy authentication + *

+ * If not set, the client will not use basic authentication + * + * @param username The basic authentication username. + * @return This object for method chaining. + */ + Builder username(String username); + + /** + * The password to use for basic proxy authentication + *

+ * If not set, the client will not use basic authentication + * + * @param password The basic authentication password. + * @return This object for method chaining. + */ + Builder password(String password); + + /** + * The option whether to use system property values from {@link ProxySystemSetting} if any of the config options + * are missing. The value is set to "true" by default which means SDK will automatically use system property values if + * options are not provided during building the {@link CrtProxyConfiguration} object. To disable this behaviour, set this + * value to false. + * + * @param useSystemPropertyValues The option whether to use system property values + * @return This object for method chaining. + */ + Builder useSystemPropertyValues(Boolean useSystemPropertyValues); + + CrtProxyConfiguration build(); + } + + private String resolveHost(String host) { + if (Objects.equals(scheme(), HTTPS)) { + return resolveValue(host, ProxySystemSetting.HTTPS_PROXY_HOST); + } + return resolveValue(host, ProxySystemSetting.PROXY_HOST); + } + + private int resolvePort(int port) { + if (port == 0 && Boolean.TRUE.equals(useSystemPropertyValues)) { + if (Objects.equals(scheme(), HTTPS)) { + return ProxySystemSetting.HTTPS_PROXY_PORT.getStringValue().map(Integer::parseInt).orElse(0); + } + return ProxySystemSetting.PROXY_PORT.getStringValue().map(Integer::parseInt).orElse(0); + } + return port; + } + + /** + * Uses the configuration options, system setting property and returns the final value of the given member. + */ + private String resolveValue(String value, ProxySystemSetting systemSetting) { + return value == null && Boolean.TRUE.equals(useSystemPropertyValues) ? + systemSetting.getStringValue().orElse(null) : value; + } + + protected abstract static class DefaultBuilder implements Builder { + private String scheme; + private String host; + private int port = 0; + private String username; + private String password; + private Boolean useSystemPropertyValues = Boolean.TRUE; + + protected DefaultBuilder() { + } + + protected DefaultBuilder(CrtProxyConfiguration proxyConfiguration) { + this.useSystemPropertyValues = proxyConfiguration.useSystemPropertyValues; + this.scheme = proxyConfiguration.scheme; + this.host = proxyConfiguration.host; + this.port = proxyConfiguration.port; + this.username = proxyConfiguration.username; + this.password = proxyConfiguration.password; + } + + @Override + public B scheme(String scheme) { + this.scheme = scheme; + return (B) this; + } + + @Override + public B host(String host) { + this.host = host; + return (B) this; + } + + @Override + public B port(int port) { + this.port = port; + return (B) this; + } + + @Override + public B username(String username) { + this.username = username; + return (B) this; + } + + @Override + public B password(String password) { + this.password = password; + return (B) this; + } + + @Override + public B useSystemPropertyValues(Boolean useSystemPropertyValues) { + this.useSystemPropertyValues = useSystemPropertyValues; + return (B) this; + } + + public void setUseSystemPropertyValues(Boolean useSystemPropertyValues) { + useSystemPropertyValues(useSystemPropertyValues); + } + + } +} \ No newline at end of file diff --git a/core/crt-core/src/test/java/software/amazon/awssdk/crtcore/CrtConnectionUtilsTest.java b/core/crt-core/src/test/java/software/amazon/awssdk/crtcore/CrtConnectionUtilsTest.java new file mode 100644 index 000000000000..2c68f6b4cefc --- /dev/null +++ b/core/crt-core/src/test/java/software/amazon/awssdk/crtcore/CrtConnectionUtilsTest.java @@ -0,0 +1,120 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.crtcore; + + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +import java.time.Duration; +import java.util.Optional; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import software.amazon.awssdk.crt.http.HttpMonitoringOptions; +import software.amazon.awssdk.crt.http.HttpProxyOptions; +import software.amazon.awssdk.crt.io.TlsContext; + +class CrtConnectionUtilsTest { + + @Test + void resolveProxy_basicAuthorization() { + CrtProxyConfiguration configuration = new TestProxy.Builder().host("1.2.3.4") + .port(123) + .scheme("https") + .password("bar") + .username("foo") + .build(); + + TlsContext tlsContext = Mockito.mock(TlsContext.class); + + Optional httpProxyOptions = CrtConfigurationUtils.resolveProxy(configuration, tlsContext); + assertThat(httpProxyOptions).hasValueSatisfying(proxy -> { + assertThat(proxy.getTlsContext()).isEqualTo(tlsContext); + assertThat(proxy.getAuthorizationPassword()).isEqualTo("bar"); + assertThat(proxy.getAuthorizationUsername()).isEqualTo("foo"); + assertThat(proxy.getAuthorizationType()).isEqualTo(HttpProxyOptions.HttpProxyAuthorizationType.Basic); + }); + } + + @Test + void resolveProxy_emptyProxy_shouldReturnEmpty() { + TlsContext tlsContext = Mockito.mock(TlsContext.class); + assertThat(CrtConfigurationUtils.resolveProxy(null, tlsContext)).isEmpty(); + } + + @Test + void resolveProxy_noneAuthorization() { + CrtProxyConfiguration configuration = new TestProxy.Builder().host("1.2.3.4") + .port(123) + .build(); + TlsContext tlsContext = Mockito.mock(TlsContext.class); + + Optional httpProxyOptions = CrtConfigurationUtils.resolveProxy(configuration, tlsContext); + assertThat(httpProxyOptions).hasValueSatisfying(proxy -> { + assertThat(proxy.getTlsContext()).isNull(); + assertThat(proxy.getAuthorizationPassword()).isNull(); + assertThat(proxy.getAuthorizationUsername()).isNull(); + assertThat(proxy.getAuthorizationType()).isEqualTo(HttpProxyOptions.HttpProxyAuthorizationType.None); + }); + } + + @Test + void resolveHttpMonitoringOptions_shouldMap() { + CrtConnectionHealthConfiguration configuration = new TestConnectionHealthConfiguration.Builder() + .minimumThroughputInBps(123L) + .minimumThroughputTimeout(Duration.ofSeconds(5)) + .build(); + + Optional options = CrtConfigurationUtils.resolveHttpMonitoringOptions(configuration); + assertThat(options).hasValueSatisfying(proxy -> { + assertThat(proxy.getAllowableThroughputFailureIntervalSeconds()).isEqualTo(5); + assertThat(proxy.getMinThroughputBytesPerSecond()).isEqualTo(123L); + }); + } + + @Test + void resolveHttpMonitoringOptions_nullConfig_shouldReturnEmpty() { + assertThat(CrtConfigurationUtils.resolveHttpMonitoringOptions(null)).isEmpty(); + } + + private static final class TestProxy extends CrtProxyConfiguration { + private TestProxy(DefaultBuilder builder) { + super(builder); + } + + private static final class Builder extends CrtProxyConfiguration.DefaultBuilder { + + @Override + public TestProxy build() { + return new TestProxy(this); + } + } + } + + private static final class TestConnectionHealthConfiguration extends CrtConnectionHealthConfiguration { + private TestConnectionHealthConfiguration(DefaultBuilder builder) { + super(builder); + } + + private static final class Builder extends CrtConnectionHealthConfiguration.DefaultBuilder { + + @Override + public TestConnectionHealthConfiguration build() { + return new TestConnectionHealthConfiguration(this); + } + } + } + +} diff --git a/core/endpoints-spi/pom.xml b/core/endpoints-spi/pom.xml index 84042f3a7c7f..0aa9a2141334 100644 --- a/core/endpoints-spi/pom.xml +++ b/core/endpoints-spi/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/http-auth-aws-crt/pom.xml b/core/http-auth-aws-crt/pom.xml index 4ca68f4572c6..1de8248d1edc 100644 --- a/core/http-auth-aws-crt/pom.xml +++ b/core/http-auth-aws-crt/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT http-auth-aws-crt diff --git a/core/http-auth-aws/pom.xml b/core/http-auth-aws/pom.xml index 214e803f2461..c95f477c045b 100644 --- a/core/http-auth-aws/pom.xml +++ b/core/http-auth-aws/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT http-auth-aws diff --git a/core/http-auth-event-stream/pom.xml b/core/http-auth-event-stream/pom.xml index 3d5ae0cafc99..ed42cab8ac7f 100644 --- a/core/http-auth-event-stream/pom.xml +++ b/core/http-auth-event-stream/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT http-auth-event-stream diff --git a/core/http-auth-spi/pom.xml b/core/http-auth-spi/pom.xml index 49c91de8d2f8..81e3440fffb7 100644 --- a/core/http-auth-spi/pom.xml +++ b/core/http-auth-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT http-auth-spi diff --git a/core/http-auth/pom.xml b/core/http-auth/pom.xml index 645e14a79944..095f4491859f 100644 --- a/core/http-auth/pom.xml +++ b/core/http-auth/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT http-auth diff --git a/core/identity-spi/pom.xml b/core/identity-spi/pom.xml index e27bac4c330a..11ffb3f6a9cb 100644 --- a/core/identity-spi/pom.xml +++ b/core/identity-spi/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT identity-spi diff --git a/core/imds/pom.xml b/core/imds/pom.xml index d8525f8081eb..a008eb7297f8 100644 --- a/core/imds/pom.xml +++ b/core/imds/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 imds diff --git a/core/json-utils/pom.xml b/core/json-utils/pom.xml index 1adc7e0ae068..158a44e40bce 100644 --- a/core/json-utils/pom.xml +++ b/core/json-utils/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/metrics-spi/pom.xml b/core/metrics-spi/pom.xml index 219cb31af175..751952165516 100644 --- a/core/metrics-spi/pom.xml +++ b/core/metrics-spi/pom.xml @@ -5,7 +5,7 @@ core software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index 1c670572a9e8..b13e43084281 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT core @@ -52,6 +52,7 @@ json-utils endpoints-spi imds + crt-core diff --git a/core/profiles/pom.xml b/core/profiles/pom.xml index 6a2490e9d0ca..907453d0665a 100644 --- a/core/profiles/pom.xml +++ b/core/profiles/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT profiles diff --git a/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileFileSupplier.java b/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileFileSupplier.java index 1521fdcfbc2d..4dec2883c814 100644 --- a/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileFileSupplier.java +++ b/core/profiles/src/main/java/software/amazon/awssdk/profiles/ProfileFileSupplier.java @@ -16,9 +16,11 @@ package software.amazon.awssdk.profiles; import java.nio.file.Path; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; import software.amazon.awssdk.annotations.SdkPublicApi; @@ -119,7 +121,8 @@ static ProfileFileSupplier aggregate(ProfileFileSupplier... suppliers) { return new ProfileFileSupplier() { final AtomicReference currentAggregateProfileFile = new AtomicReference<>(); - final ConcurrentHashMap, ProfileFile> currentValuesBySupplier = new ConcurrentHashMap<>(); + final Map, ProfileFile> currentValuesBySupplier + = Collections.synchronizedMap(new LinkedHashMap<>()); @Override public ProfileFile get() { diff --git a/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java b/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java index e51bc53101f0..50e4c80ecc58 100644 --- a/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java +++ b/core/profiles/src/test/java/software/amazon/awssdk/profiles/ProfileFileSupplierTest.java @@ -410,6 +410,56 @@ void aggregate_supplierReturnsSameInstanceMultipleTimesAggregatingProfileFileSup assertThat(suppliedProfileFiles).isEqualTo(distinctAggregateProfileFiles); } + @Test + void aggregate_duplicateOptionsGivenFixedProfileFirst_preservesPrecedence() { + ProfileFile configFile1 = configFile("profile default", Pair.of("aws_access_key_id", "config-key")); + Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey"); + + ProfileFileSupplier supplier = ProfileFileSupplier.aggregate( + ProfileFileSupplier.fixedProfileFile(configFile1), + ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS)); + + ProfileFile profileFile = supplier.get(); + String accessKeyId = profileFile.profile("default").get().property("aws_access_key_id").get(); + + assertThat(accessKeyId).isEqualTo("config-key"); + + generateTestCredentialsFile("defaultAccessKey2", "defaultSecretAccessKey2"); + + profileFile = supplier.get(); + accessKeyId = profileFile.profile("default").get().property("aws_access_key_id").get(); + + assertThat(accessKeyId).isEqualTo("config-key"); + } + + @Test + void aggregate_duplicateOptionsGivenReloadingProfileFirst_preservesPrecedence() { + AdjustableClock clock = new AdjustableClock(); + + ProfileFile configFile1 = configFile("profile default", Pair.of("aws_access_key_id", "config-key")); + Path credentialsFilePath = generateTestCredentialsFile("defaultAccessKey", "defaultSecretAccessKey"); + + ProfileFileSupplier supplier = ProfileFileSupplier.aggregate( + builderWithClock(clock) + .reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS) + .build(), + ProfileFileSupplier.fixedProfileFile(configFile1)); + + ProfileFile profileFile = supplier.get(); + String accessKeyId = profileFile.profile("default").get().property("aws_access_key_id").get(); + + assertThat(accessKeyId).isEqualTo("defaultAccessKey"); + + generateTestCredentialsFile("defaultAccessKey2", "defaultSecretAccessKey2"); + + clock.tickForward(Duration.ofMillis(1_000)); + + profileFile = supplier.get(); + accessKeyId = profileFile.profile("default").get().property("aws_access_key_id").get(); + + assertThat(accessKeyId).isEqualTo("defaultAccessKey2"); + } + @Test void fixedProfileFile_nullProfileFile_returnsNonNullSupplier() { ProfileFile file = null; diff --git a/core/protocols/aws-cbor-protocol/pom.xml b/core/protocols/aws-cbor-protocol/pom.xml index 015b496a2d2b..736a48399b54 100644 --- a/core/protocols/aws-cbor-protocol/pom.xml +++ b/core/protocols/aws-cbor-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-json-protocol/pom.xml b/core/protocols/aws-json-protocol/pom.xml index ce870e28ab51..1c80af70bf4b 100644 --- a/core/protocols/aws-json-protocol/pom.xml +++ b/core/protocols/aws-json-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-query-protocol/pom.xml b/core/protocols/aws-query-protocol/pom.xml index 1ea2cc4dee43..29a3be5b4708 100644 --- a/core/protocols/aws-query-protocol/pom.xml +++ b/core/protocols/aws-query-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/protocols/aws-xml-protocol/pom.xml b/core/protocols/aws-xml-protocol/pom.xml index 181e5b4e12a3..a1862072d270 100644 --- a/core/protocols/aws-xml-protocol/pom.xml +++ b/core/protocols/aws-xml-protocol/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/protocols/pom.xml b/core/protocols/pom.xml index e939a3bbdaae..9b0e8c26068d 100644 --- a/core/protocols/pom.xml +++ b/core/protocols/pom.xml @@ -20,7 +20,7 @@ core software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/protocols/protocol-core/pom.xml b/core/protocols/protocol-core/pom.xml index ec8c8624fd9a..9ea8d6e6b3c9 100644 --- a/core/protocols/protocol-core/pom.xml +++ b/core/protocols/protocol-core/pom.xml @@ -20,7 +20,7 @@ protocols software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/core/regions/pom.xml b/core/regions/pom.xml index 487303ef148a..95c7a732bffe 100644 --- a/core/regions/pom.xml +++ b/core/regions/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT regions diff --git a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json index 3ad6571b7fd0..9df71e31801d 100644 --- a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json +++ b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json @@ -316,9 +316,11 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "acm-pca-fips.ca-central-1.amazonaws.com", @@ -326,8 +328,10 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -447,6 +451,7 @@ "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -468,6 +473,7 @@ "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -1066,13 +1072,16 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -1365,15 +1374,21 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -1446,6 +1461,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -1665,6 +1681,9 @@ "apprunner" : { "endpoints" : { "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, "eu-west-1" : { }, "fips-us-east-1" : { "credentialScope" : { @@ -1769,16 +1788,20 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -1806,13 +1829,23 @@ }, "arc-zonal-shift" : { "endpoints" : { + "af-south-1" : { }, + "ap-east-1" : { }, "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-northeast-3" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "me-south-1" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -2248,6 +2281,11 @@ }, "cases" : { "endpoints" : { + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-2" : { }, "fips-us-east-1" : { "deprecated" : true }, @@ -2763,13 +2801,16 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -2847,8 +2888,10 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "codecommit-fips.ca-central-1.amazonaws.com", @@ -2875,6 +2918,7 @@ "deprecated" : true, "hostname" : "codecommit-fips.ca-central-1.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3026,6 +3070,7 @@ }, "codepipeline" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, @@ -3039,6 +3084,7 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, "eu-west-1" : { }, @@ -3079,6 +3125,7 @@ "deprecated" : true, "hostname" : "codepipeline-fips.us-west-2.amazonaws.com" }, + "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -3636,6 +3683,7 @@ "connect-campaigns" : { "endpoints" : { "ap-southeast-2" : { }, + "ca-central-1" : { }, "eu-west-2" : { }, "fips-us-east-1" : { "credentialScope" : { @@ -4391,8 +4439,10 @@ "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -4627,6 +4677,7 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "ds-fips.ca-central-1.amazonaws.com", @@ -5123,6 +5174,7 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, @@ -5387,6 +5439,12 @@ "tags" : [ "fips" ] } ] }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "elasticfilesystem-fips.ap-south-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ap-southeast-1" : { "variants" : [ { "hostname" : "elasticfilesystem-fips.ap-southeast-1.amazonaws.com", @@ -5405,6 +5463,12 @@ "tags" : [ "fips" ] } ] }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "elasticfilesystem-fips.ap-southeast-4.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "elasticfilesystem-fips.ca-central-1.amazonaws.com", @@ -5501,6 +5565,13 @@ "deprecated" : true, "hostname" : "elasticfilesystem-fips.ap-south-1.amazonaws.com" }, + "fips-ap-south-2" : { + "credentialScope" : { + "region" : "ap-south-2" + }, + "deprecated" : true, + "hostname" : "elasticfilesystem-fips.ap-south-2.amazonaws.com" + }, "fips-ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -5522,6 +5593,13 @@ "deprecated" : true, "hostname" : "elasticfilesystem-fips.ap-southeast-3.amazonaws.com" }, + "fips-ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "deprecated" : true, + "hostname" : "elasticfilesystem-fips.ap-southeast-4.amazonaws.com" + }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -6315,6 +6393,7 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-central-2" : { }, @@ -6417,6 +6496,7 @@ "tags" : [ "fips" ] } ] }, + "ap-south-2" : { }, "ap-southeast-1" : { "variants" : [ { "hostname" : "fms-fips.ap-southeast-1.amazonaws.com", @@ -6442,6 +6522,7 @@ "tags" : [ "fips" ] } ] }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { "variants" : [ { @@ -6449,6 +6530,7 @@ "tags" : [ "fips" ] } ] }, + "eu-south-2" : { }, "eu-west-1" : { "variants" : [ { "hostname" : "fms-fips.eu-west-1.amazonaws.com", @@ -7071,8 +7153,10 @@ "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -7207,13 +7291,61 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, - "ca-central-1" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "greengrass-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-2" : { } + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "greengrass-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "greengrass-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "greengrass-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "greengrass-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "greengrass-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "greengrass-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "greengrass-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } }, "isRegionalized" : true }, @@ -7280,6 +7412,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -7388,6 +7521,7 @@ "protocols" : [ "https" ] }, "endpoints" : { + "ap-south-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -7642,6 +7776,99 @@ "us-west-2" : { } } }, + "internetmonitor" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "af-south-1" : { + "hostname" : "internetmonitor.af-south-1.api.aws" + }, + "ap-east-1" : { + "hostname" : "internetmonitor.ap-east-1.api.aws" + }, + "ap-northeast-1" : { + "hostname" : "internetmonitor.ap-northeast-1.api.aws" + }, + "ap-northeast-2" : { + "hostname" : "internetmonitor.ap-northeast-2.api.aws" + }, + "ap-northeast-3" : { + "hostname" : "internetmonitor.ap-northeast-3.api.aws" + }, + "ap-south-1" : { + "hostname" : "internetmonitor.ap-south-1.api.aws" + }, + "ap-south-2" : { + "hostname" : "internetmonitor.ap-south-2.api.aws" + }, + "ap-southeast-1" : { + "hostname" : "internetmonitor.ap-southeast-1.api.aws" + }, + "ap-southeast-2" : { + "hostname" : "internetmonitor.ap-southeast-2.api.aws" + }, + "ap-southeast-3" : { + "hostname" : "internetmonitor.ap-southeast-3.api.aws" + }, + "ap-southeast-4" : { + "hostname" : "internetmonitor.ap-southeast-4.api.aws" + }, + "ca-central-1" : { + "hostname" : "internetmonitor.ca-central-1.api.aws" + }, + "eu-central-1" : { + "hostname" : "internetmonitor.eu-central-1.api.aws" + }, + "eu-central-2" : { + "hostname" : "internetmonitor.eu-central-2.api.aws" + }, + "eu-north-1" : { + "hostname" : "internetmonitor.eu-north-1.api.aws" + }, + "eu-south-1" : { + "hostname" : "internetmonitor.eu-south-1.api.aws" + }, + "eu-south-2" : { + "hostname" : "internetmonitor.eu-south-2.api.aws" + }, + "eu-west-1" : { + "hostname" : "internetmonitor.eu-west-1.api.aws" + }, + "eu-west-2" : { + "hostname" : "internetmonitor.eu-west-2.api.aws" + }, + "eu-west-3" : { + "hostname" : "internetmonitor.eu-west-3.api.aws" + }, + "me-central-1" : { + "hostname" : "internetmonitor.me-central-1.api.aws" + }, + "me-south-1" : { + "hostname" : "internetmonitor.me-south-1.api.aws" + }, + "sa-east-1" : { + "hostname" : "internetmonitor.sa-east-1.api.aws" + }, + "us-east-1" : { + "hostname" : "internetmonitor.us-east-1.api.aws" + }, + "us-east-2" : { + "hostname" : "internetmonitor.us-east-2.api.aws" + }, + "us-west-1" : { + "hostname" : "internetmonitor.us-west-1.api.aws" + }, + "us-west-2" : { + "hostname" : "internetmonitor.us-west-2.api.aws" + } + } + }, "iot" : { "defaults" : { "credentialScope" : { @@ -8110,8 +8337,32 @@ "ap-southeast-2" : { }, "eu-central-1" : { }, "eu-west-1" : { }, - "us-east-1" : { }, - "us-west-2" : { } + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "iottwinmaker-fips.us-east-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "iottwinmaker-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "iottwinmaker-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "iottwinmaker-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } } }, "iotwireless" : { @@ -8170,6 +8421,17 @@ "us-west-2" : { } } }, + "ivsrealtime" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, "kafka" : { "endpoints" : { "af-south-1" : { }, @@ -8188,6 +8450,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -8281,12 +8544,18 @@ "ap-east-1" : { "hostname" : "kendra-ranking.ap-east-1.api.aws" }, + "ap-northeast-1" : { + "hostname" : "kendra-ranking.ap-northeast-1.api.aws" + }, "ap-northeast-2" : { "hostname" : "kendra-ranking.ap-northeast-2.api.aws" }, "ap-northeast-3" : { "hostname" : "kendra-ranking.ap-northeast-3.api.aws" }, + "ap-south-1" : { + "hostname" : "kendra-ranking.ap-south-1.api.aws" + }, "ap-south-2" : { "hostname" : "kendra-ranking.ap-south-2.api.aws" }, @@ -8433,16 +8702,20 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -8843,10 +9116,13 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -8878,6 +9154,7 @@ "deprecated" : true, "hostname" : "lakeformation-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -9188,15 +9465,23 @@ }, "license-manager-linux-subscriptions" : { "endpoints" : { + "af-south-1" : { }, + "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -9228,6 +9513,8 @@ "deprecated" : true, "hostname" : "license-manager-linux-subscriptions-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, + "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -9999,8 +10286,10 @@ "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "me-central-1" : { }, @@ -10069,6 +10358,7 @@ "deprecated" : true, "hostname" : "mgn-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -10520,6 +10810,7 @@ "deprecated" : true, "hostname" : "network-firewall-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -10737,9 +11028,71 @@ } } }, - "opsworks" : { + "omics" : { "endpoints" : { - "ap-northeast-1" : { }, + "ap-southeast-1" : { + "credentialScope" : { + "region" : "ap-southeast-1" + }, + "hostname" : "omics.ap-southeast-1.amazonaws.com" + }, + "eu-central-1" : { + "credentialScope" : { + "region" : "eu-central-1" + }, + "hostname" : "omics.eu-central-1.amazonaws.com" + }, + "eu-west-1" : { + "credentialScope" : { + "region" : "eu-west-1" + }, + "hostname" : "omics.eu-west-1.amazonaws.com" + }, + "eu-west-2" : { + "credentialScope" : { + "region" : "eu-west-2" + }, + "hostname" : "omics.eu-west-2.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "omics-fips.us-east-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "omics-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "omics.us-east-1.amazonaws.com", + "variants" : [ { + "hostname" : "omics-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "omics.us-west-2.amazonaws.com", + "variants" : [ { + "hostname" : "omics-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, + "opsworks" : { + "endpoints" : { + "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, @@ -11080,6 +11433,7 @@ "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-northeast-3" : { }, "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, @@ -11391,7 +11745,6 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, - "api" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -11416,6 +11769,7 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "ram-fips.ca-central-1.amazonaws.com", @@ -11923,14 +12277,18 @@ "endpoints" : { "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "eu-west-3" : { }, "us-east-1" : { }, "us-east-2" : { }, + "us-west-1" : { }, "us-west-2" : { } } }, @@ -12368,8 +12726,10 @@ "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -12470,13 +12830,16 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -13167,14 +13530,32 @@ }, "scheduler" : { "endpoints" : { + "af-south-1" : { }, + "ap-east-1" : { }, "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-northeast-3" : { }, + "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, + "ap-southeast-4" : { }, + "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "me-central-1" : { }, + "me-south-1" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, + "us-west-1" : { }, "us-west-2" : { } } }, @@ -13316,13 +13697,16 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -13386,9 +13770,12 @@ "securitylake" : { "endpoints" : { "ap-northeast-1" : { }, + "ap-southeast-1" : { }, "ap-southeast-2" : { }, "eu-central-1" : { }, "eu-west-1" : { }, + "eu-west-2" : { }, + "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -13463,16 +13850,21 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -13678,6 +14070,12 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "servicediscovery.ap-southeast-4.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "servicediscovery-fips.ca-central-1.amazonaws.com", @@ -13854,13 +14252,17 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -14590,19 +14992,79 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, - "ca-central-1" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "ssm-sap-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "ssm-sap-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "ssm-sap-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "ssm-sap-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "ssm-sap-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "ssm-sap-fips.us-west-2.amazonaws.com" + }, "me-south-1" : { }, "sa-east-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "us-east-1" : { + "variants" : [ { + "hostname" : "ssm-sap-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "ssm-sap-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "ssm-sap-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "ssm-sap-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } } }, "sso" : { @@ -14718,9 +15180,11 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-4" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "storagegateway-fips.ca-central-1.amazonaws.com", @@ -15451,6 +15915,7 @@ "deprecated" : true, "hostname" : "transfer-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -15635,6 +16100,17 @@ } } }, + "vpc-lattice" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "waf" : { "endpoints" : { "aws" : { @@ -15737,6 +16213,16 @@ "tags" : [ "fips" ] } ] }, + "ap-south-2" : { + "credentialScope" : { + "region" : "ap-south-2" + }, + "hostname" : "waf-regional.ap-south-2.amazonaws.com", + "variants" : [ { + "hostname" : "waf-regional-fips.ap-south-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -15767,6 +16253,16 @@ "tags" : [ "fips" ] } ] }, + "ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "hostname" : "waf-regional.ap-southeast-4.amazonaws.com", + "variants" : [ { + "hostname" : "waf-regional-fips.ap-southeast-4.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -15787,6 +16283,16 @@ "tags" : [ "fips" ] } ] }, + "eu-central-2" : { + "credentialScope" : { + "region" : "eu-central-2" + }, + "hostname" : "waf-regional.eu-central-2.amazonaws.com", + "variants" : [ { + "hostname" : "waf-regional-fips.eu-central-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-north-1" : { "credentialScope" : { "region" : "eu-north-1" @@ -15807,6 +16313,16 @@ "tags" : [ "fips" ] } ] }, + "eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "hostname" : "waf-regional.eu-south-2.amazonaws.com", + "variants" : [ { + "hostname" : "waf-regional-fips.eu-south-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -15879,6 +16395,13 @@ "deprecated" : true, "hostname" : "waf-regional-fips.ap-south-1.amazonaws.com" }, + "fips-ap-south-2" : { + "credentialScope" : { + "region" : "ap-south-2" + }, + "deprecated" : true, + "hostname" : "waf-regional-fips.ap-south-2.amazonaws.com" + }, "fips-ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -15900,6 +16423,13 @@ "deprecated" : true, "hostname" : "waf-regional-fips.ap-southeast-3.amazonaws.com" }, + "fips-ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "deprecated" : true, + "hostname" : "waf-regional-fips.ap-southeast-4.amazonaws.com" + }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -15914,6 +16444,13 @@ "deprecated" : true, "hostname" : "waf-regional-fips.eu-central-1.amazonaws.com" }, + "fips-eu-central-2" : { + "credentialScope" : { + "region" : "eu-central-2" + }, + "deprecated" : true, + "hostname" : "waf-regional-fips.eu-central-2.amazonaws.com" + }, "fips-eu-north-1" : { "credentialScope" : { "region" : "eu-north-1" @@ -15928,6 +16465,13 @@ "deprecated" : true, "hostname" : "waf-regional-fips.eu-south-1.amazonaws.com" }, + "fips-eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "deprecated" : true, + "hostname" : "waf-regional-fips.eu-south-2.amazonaws.com" + }, "fips-eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -16132,6 +16676,16 @@ "tags" : [ "fips" ] } ] }, + "ap-south-2" : { + "credentialScope" : { + "region" : "ap-south-2" + }, + "hostname" : "wafv2.ap-south-2.amazonaws.com", + "variants" : [ { + "hostname" : "wafv2-fips.ap-south-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -16162,6 +16716,16 @@ "tags" : [ "fips" ] } ] }, + "ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "hostname" : "wafv2.ap-southeast-4.amazonaws.com", + "variants" : [ { + "hostname" : "wafv2-fips.ap-southeast-4.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -16182,6 +16746,16 @@ "tags" : [ "fips" ] } ] }, + "eu-central-2" : { + "credentialScope" : { + "region" : "eu-central-2" + }, + "hostname" : "wafv2.eu-central-2.amazonaws.com", + "variants" : [ { + "hostname" : "wafv2-fips.eu-central-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-north-1" : { "credentialScope" : { "region" : "eu-north-1" @@ -16202,6 +16776,16 @@ "tags" : [ "fips" ] } ] }, + "eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "hostname" : "wafv2.eu-south-2.amazonaws.com", + "variants" : [ { + "hostname" : "wafv2-fips.eu-south-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -16274,6 +16858,13 @@ "deprecated" : true, "hostname" : "wafv2-fips.ap-south-1.amazonaws.com" }, + "fips-ap-south-2" : { + "credentialScope" : { + "region" : "ap-south-2" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.ap-south-2.amazonaws.com" + }, "fips-ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -16295,6 +16886,13 @@ "deprecated" : true, "hostname" : "wafv2-fips.ap-southeast-3.amazonaws.com" }, + "fips-ap-southeast-4" : { + "credentialScope" : { + "region" : "ap-southeast-4" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.ap-southeast-4.amazonaws.com" + }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -16304,10 +16902,17 @@ }, "fips-eu-central-1" : { "credentialScope" : { - "region" : "eu-central-1" + "region" : "eu-central-1" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.eu-central-1.amazonaws.com" + }, + "fips-eu-central-2" : { + "credentialScope" : { + "region" : "eu-central-2" }, "deprecated" : true, - "hostname" : "wafv2-fips.eu-central-1.amazonaws.com" + "hostname" : "wafv2-fips.eu-central-2.amazonaws.com" }, "fips-eu-north-1" : { "credentialScope" : { @@ -16323,6 +16928,13 @@ "deprecated" : true, "hostname" : "wafv2-fips.eu-south-1.amazonaws.com" }, + "fips-eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.eu-south-2.amazonaws.com" + }, "fips-eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -17006,7 +17618,10 @@ "protocols" : [ "https" ] }, "endpoints" : { - "cn-north-1" : { }, + "cn-north-1" : { + "hostname" : "data.ats.iot.cn-north-1.amazonaws.com.cn", + "protocols" : [ "https" ] + }, "cn-northwest-1" : { } } }, @@ -17296,6 +17911,24 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-cn-global" }, + "internetmonitor" : { + "defaults" : { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "variants" : [ { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "cn-north-1" : { + "hostname" : "internetmonitor.cn-north-1.api.amazonwebservices.com.cn" + }, + "cn-northwest-1" : { + "hostname" : "internetmonitor.cn-northwest-1.api.amazonwebservices.com.cn" + } + } + }, "iot" : { "defaults" : { "credentialScope" : { @@ -17472,6 +18105,12 @@ } } }, + "oam" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "organizations" : { "endpoints" : { "aws-cn-global" : { @@ -17548,6 +18187,12 @@ "cn-northwest-1" : { } } }, + "rolesanywhere" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "route53" : { "endpoints" : { "aws-cn-global" : { @@ -17682,6 +18327,15 @@ } } }, + "servicequotas" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "sms" : { "endpoints" : { "cn-north-1" : { }, @@ -17959,12 +18613,34 @@ "credentialScope" : { "region" : "us-gov-east-1" }, + "hostname" : "access-analyzer.us-gov-east-1.amazonaws.com", + "variants" : [ { + "hostname" : "access-analyzer.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, "hostname" : "access-analyzer.us-gov-east-1.amazonaws.com" }, "us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, + "hostname" : "access-analyzer.us-gov-west-1.amazonaws.com", + "variants" : [ { + "hostname" : "access-analyzer.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, "hostname" : "access-analyzer.us-gov-west-1.amazonaws.com" } } @@ -18302,6 +18978,19 @@ "deprecated" : true, "hostname" : "appstream2-fips.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "appstream2-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "appstream2-fips.us-gov-east-1.amazonaws.com" + }, "us-gov-west-1" : { "variants" : [ { "hostname" : "appstream2-fips.us-gov-west-1.amazonaws.com", @@ -18436,12 +19125,34 @@ "credentialScope" : { "region" : "us-gov-east-1" }, + "hostname" : "cassandra.us-gov-east-1.amazonaws.com", + "variants" : [ { + "hostname" : "cassandra.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, "hostname" : "cassandra.us-gov-east-1.amazonaws.com" }, "us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, + "hostname" : "cassandra.us-gov-west-1.amazonaws.com", + "variants" : [ { + "hostname" : "cassandra.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, "hostname" : "cassandra.us-gov-west-1.amazonaws.com" } } @@ -18478,7 +19189,19 @@ }, "clouddirectory" : { "endpoints" : { - "us-gov-west-1" : { } + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "clouddirectory.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, + "hostname" : "clouddirectory.us-gov-west-1.amazonaws.com" + } } }, "cloudformation" : { @@ -18986,8 +19709,32 @@ }, "dlm" : { "endpoints" : { - "us-gov-east-1" : { }, - "us-gov-west-1" : { } + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "dlm.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "dlm.us-gov-east-1.amazonaws.com" + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "dlm.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, + "hostname" : "dlm.us-gov-west-1.amazonaws.com" + } } }, "dms" : { @@ -19259,12 +20006,34 @@ "credentialScope" : { "region" : "us-gov-east-1" }, + "hostname" : "elasticbeanstalk.us-gov-east-1.amazonaws.com", + "variants" : [ { + "hostname" : "elasticbeanstalk.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, "hostname" : "elasticbeanstalk.us-gov-east-1.amazonaws.com" }, "us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, + "hostname" : "elasticbeanstalk.us-gov-west-1.amazonaws.com", + "variants" : [ { + "hostname" : "elasticbeanstalk.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, "hostname" : "elasticbeanstalk.us-gov-west-1.amazonaws.com" } } @@ -19390,6 +20159,12 @@ } } }, + "emr-containers" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "es" : { "endpoints" : { "fips" : { @@ -19586,18 +20361,32 @@ }, "glacier" : { "endpoints" : { - "us-gov-east-1" : { + "fips-us-gov-east-1" : { "credentialScope" : { "region" : "us-gov-east-1" }, + "deprecated" : true, "hostname" : "glacier.us-gov-east-1.amazonaws.com" }, - "us-gov-west-1" : { + "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, - "hostname" : "glacier.us-gov-west-1.amazonaws.com", - "protocols" : [ "http", "https" ] + "deprecated" : true, + "hostname" : "glacier.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "glacier.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1" : { + "protocols" : [ "http", "https" ], + "variants" : [ { + "hostname" : "glacier.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] } } }, @@ -19865,6 +20654,24 @@ "us-gov-west-1" : { } } }, + "internetmonitor" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "us-gov-east-1" : { + "hostname" : "internetmonitor.us-gov-east-1.api.aws" + }, + "us-gov-west-1" : { + "hostname" : "internetmonitor.us-gov-west-1.api.aws" + } + } + }, "iot" : { "defaults" : { "credentialScope" : { @@ -19991,6 +20798,23 @@ } } }, + "iottwinmaker" : { + "endpoints" : { + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, + "hostname" : "iottwinmaker-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "iottwinmaker-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, "kafka" : { "endpoints" : { "us-gov-east-1" : { }, @@ -20246,11 +21070,18 @@ }, "mediaconvert" : { "endpoints" : { - "us-gov-west-1" : { + "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, + "deprecated" : true, "hostname" : "mediaconvert.us-gov-west-1.amazonaws.com" + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "mediaconvert.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] } } }, @@ -20492,27 +21323,48 @@ }, "outposts" : { "endpoints" : { - "us-gov-east-1" : { + "fips-us-gov-east-1" : { "credentialScope" : { "region" : "us-gov-east-1" }, + "deprecated" : true, "hostname" : "outposts.us-gov-east-1.amazonaws.com" }, - "us-gov-west-1" : { + "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, + "deprecated" : true, "hostname" : "outposts.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "outposts.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "outposts.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] } } }, "participant.connect" : { "endpoints" : { - "us-gov-west-1" : { + "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, + "deprecated" : true, "hostname" : "participant.connect.us-gov-west-1.amazonaws.com" + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "participant.connect.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] } } }, @@ -20877,6 +21729,7 @@ } ] }, "endpoints" : { + "us-gov-east-1" : { }, "us-gov-west-1" : { "variants" : [ { "hostname" : "runtime.sagemaker.us-gov-west-1.amazonaws.com", @@ -21097,18 +21950,32 @@ }, "endpoints" : { "us-gov-east-1" : { + "protocols" : [ "https" ], + "variants" : [ { + "hostname" : "serverlessrepo.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { "credentialScope" : { "region" : "us-gov-east-1" }, - "hostname" : "serverlessrepo.us-gov-east-1.amazonaws.com", - "protocols" : [ "https" ] + "deprecated" : true, + "hostname" : "serverlessrepo.us-gov-east-1.amazonaws.com" }, "us-gov-west-1" : { + "protocols" : [ "https" ], + "variants" : [ { + "hostname" : "serverlessrepo.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1-fips" : { "credentialScope" : { "region" : "us-gov-west-1" }, - "hostname" : "serverlessrepo.us-gov-west-1.amazonaws.com", - "protocols" : [ "https" ] + "deprecated" : true, + "hostname" : "serverlessrepo.us-gov-west-1.amazonaws.com" } } }, @@ -22379,7 +23246,8 @@ }, "secretsmanager" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "snowball" : { diff --git a/core/sdk-core/pom.xml b/core/sdk-core/pom.xml index 8d75569b552f..f0db9511915d 100644 --- a/core/sdk-core/pom.xml +++ b/core/sdk-core/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk core - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sdk-core AWS Java SDK :: SDK Core diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/FileTransformerConfiguration.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/FileTransformerConfiguration.java index 6aea8880fc60..902815f96c49 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/FileTransformerConfiguration.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/FileTransformerConfiguration.java @@ -15,8 +15,12 @@ package software.amazon.awssdk.core; +import java.nio.channels.AsynchronousChannelGroup; import java.nio.file.FileAlreadyExistsException; import java.nio.file.Path; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ExecutorService; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.utils.Validate; @@ -36,10 +40,12 @@ public final class FileTransformerConfiguration implements ToCopyableBuilder { private final FileWriteOption fileWriteOption; private final FailureBehavior failureBehavior; + private final ExecutorService executorService; private FileTransformerConfiguration(DefaultBuilder builder) { this.fileWriteOption = Validate.paramNotNull(builder.fileWriteOption, "fileWriteOption"); this.failureBehavior = Validate.paramNotNull(builder.failureBehavior, "failureBehavior"); + this.executorService = builder.executorService; } /** @@ -56,6 +62,16 @@ public FailureBehavior failureBehavior() { return failureBehavior; } + /** + * The configured {@link ExecutorService} the writes should be executed on. + *

+ * If not set, the default thread pool defined by the underlying {@link java.nio.file.spi.FileSystemProvider} will be used. + * This will typically be the thread pool defined by the {@link AsynchronousChannelGroup}. + */ + public Optional executorService() { + return Optional.ofNullable(executorService); + } + /** * Create a {@link Builder}, used to create a {@link FileTransformerConfiguration}. */ @@ -118,13 +134,17 @@ public boolean equals(Object o) { if (fileWriteOption != that.fileWriteOption) { return false; } - return failureBehavior == that.failureBehavior; + if (failureBehavior != that.failureBehavior) { + return false; + } + return Objects.equals(executorService, that.executorService); } @Override public int hashCode() { int result = fileWriteOption != null ? fileWriteOption.hashCode() : 0; result = 31 * result + (failureBehavior != null ? failureBehavior.hashCode() : 0); + result = 31 * result + (executorService != null ? executorService.hashCode() : 0); return result; } @@ -181,11 +201,20 @@ public interface Builder extends CopyableBuilderThis may be used together with {@link #apiCallAttemptTimeout()} to enforce both a timeout on each individual HTTP * request (i.e. each retry) and the total time spent on all requests across retries (i.e. the 'api call' time). * + *

+ * Note that this timeout takes precedence over the value configured at client level via + * {@link ClientOverrideConfiguration.Builder#apiCallTimeout(Duration)}. + * * @see RequestOverrideConfiguration#apiCallTimeout() */ B apiCallTimeout(Duration apiCallTimeout); @@ -351,6 +356,10 @@ default B putRawQueryParameter(String name, String value) { *

This may be used together with {@link #apiCallTimeout()} to enforce both a timeout on each individual HTTP * request (i.e. each retry) and the total time spent on all requests across retries (i.e. the 'api call' time). * + *

+ * Note that this timeout takes precedence over the value configured at client level via + * {@link ClientOverrideConfiguration.Builder#apiCallAttemptTimeout(Duration)}. + * * @see RequestOverrideConfiguration#apiCallAttemptTimeout() */ B apiCallAttemptTimeout(Duration apiCallAttemptTimeout); diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkClient.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkClient.java index fc0b474c3ebf..194f11daa645 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkClient.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkClient.java @@ -32,4 +32,13 @@ public interface SdkClient extends SdkAutoCloseable { * @return name for this service. */ String serviceName(); + + /** + * The SDK service client configuration exposes client settings to the user, e.g., ClientOverrideConfiguration + * + * @return SdkServiceClientConfiguration + */ + default SdkServiceClientConfiguration serviceClientConfiguration() { + throw new UnsupportedOperationException(); + } } diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkServiceClientConfiguration.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkServiceClientConfiguration.java new file mode 100644 index 000000000000..26674d396b96 --- /dev/null +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkServiceClientConfiguration.java @@ -0,0 +1,106 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.core; + +import java.net.URI; +import java.util.Objects; +import java.util.Optional; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; + +/** + * Class to expose SDK service client settings to the user, e.g., ClientOverrideConfiguration + */ +@SdkPublicApi +public abstract class SdkServiceClientConfiguration { + + private final ClientOverrideConfiguration overrideConfiguration; + private final URI endpointOverride; + + protected SdkServiceClientConfiguration(Builder builder) { + this.overrideConfiguration = builder.overrideConfiguration(); + this.endpointOverride = builder.endpointOverride(); + } + + /** + * + * @return The ClientOverrideConfiguration of the SdkClient. If this is not set, an ClientOverrideConfiguration object will + * still be returned, with empty fields + */ + public ClientOverrideConfiguration overrideConfiguration() { + return this.overrideConfiguration; + } + + /** + * + * @return The configured endpoint override of the SdkClient. If the endpoint was not overridden, an empty Optional will be + * returned + */ + public Optional endpointOverride() { + return Optional.ofNullable(this.endpointOverride); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + SdkServiceClientConfiguration serviceClientConfiguration = (SdkServiceClientConfiguration) o; + return Objects.equals(overrideConfiguration, serviceClientConfiguration.overrideConfiguration()) + && Objects.equals(endpointOverride, serviceClientConfiguration.endpointOverride().orElse(null)); + } + + @Override + public int hashCode() { + int result = overrideConfiguration != null ? overrideConfiguration.hashCode() : 0; + result = 31 * result + (endpointOverride != null ? endpointOverride.hashCode() : 0); + return result; + } + + /** + * The base interface for all SDK service client configuration builders + */ + public interface Builder { + /** + * Return the client override configuration + */ + ClientOverrideConfiguration overrideConfiguration(); + + /** + * Return the endpoint override + */ + URI endpointOverride(); + + /** + * Configure the client override configuration + */ + Builder overrideConfiguration(ClientOverrideConfiguration clientOverrideConfiguration); + + /** + * Configure the endpoint override + */ + Builder endpointOverride(URI endpointOverride); + + /** + * Build the service client configuration using the configuration on this builder + */ + SdkServiceClientConfiguration build(); + } +} diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.java index 07a2ee70725f..4ba034413b90 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.java @@ -26,6 +26,7 @@ import java.util.function.Consumer; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.ToBuilderIgnoreField; +import software.amazon.awssdk.core.RequestOverrideConfiguration; import software.amazon.awssdk.core.interceptor.ExecutionAttribute; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; @@ -372,6 +373,10 @@ default Builder retryPolicy(RetryMode retryMode) { *

This may be used together with {@link #apiCallAttemptTimeout()} to enforce both a timeout on each individual HTTP * request (i.e. each retry) and the total time spent on all requests across retries (i.e. the 'api call' time). * + *

+ * You can also configure it on a per-request basis via + * {@link RequestOverrideConfiguration.Builder#apiCallTimeout(Duration)}. + * Note that request-level timeout takes precedence. * * @see ClientOverrideConfiguration#apiCallTimeout() */ @@ -394,6 +399,11 @@ default Builder retryPolicy(RetryMode retryMode) { *

This may be used together with {@link #apiCallTimeout()} to enforce both a timeout on each individual HTTP * request (i.e. each retry) and the total time spent on all requests across retries (i.e. the 'api call' time). * + *

+ * You can also configure it on a per-request basis via + * {@link RequestOverrideConfiguration.Builder#apiCallAttemptTimeout(Duration)}. + * Note that request-level timeout takes precedence. + * * @see ClientOverrideConfiguration#apiCallAttemptTimeout() */ Builder apiCallAttemptTimeout(Duration apiCallAttemptTimeout); diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformer.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformer.java index 5956de29f865..af2c4775845a 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformer.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformer.java @@ -24,9 +24,14 @@ import java.nio.channels.CompletionHandler; import java.nio.file.Files; import java.nio.file.NoSuchFileException; +import java.nio.file.OpenOption; import java.nio.file.Path; import java.nio.file.StandardOpenOption; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicLong; import java.util.function.Consumer; import org.reactivestreams.Subscriber; @@ -78,17 +83,24 @@ private long determineFilePositionToWrite(Path path) { } private AsynchronousFileChannel createChannel(Path path) throws IOException { + Set options = new HashSet<>(); switch (configuration.fileWriteOption()) { case CREATE_OR_APPEND_TO_EXISTING: - return AsynchronousFileChannel.open(path, StandardOpenOption.WRITE, StandardOpenOption.CREATE); + Collections.addAll(options, StandardOpenOption.WRITE, StandardOpenOption.CREATE); + break; case CREATE_OR_REPLACE_EXISTING: - return AsynchronousFileChannel.open(path, StandardOpenOption.WRITE, StandardOpenOption.CREATE, - StandardOpenOption.TRUNCATE_EXISTING); + Collections.addAll(options, StandardOpenOption.WRITE, StandardOpenOption.CREATE, + StandardOpenOption.TRUNCATE_EXISTING); + break; case CREATE_NEW: - return AsynchronousFileChannel.open(path, StandardOpenOption.WRITE, StandardOpenOption.CREATE_NEW); + Collections.addAll(options, StandardOpenOption.WRITE, StandardOpenOption.CREATE_NEW); + break; default: throw new IllegalArgumentException("Unsupported file write option: " + configuration.fileWriteOption()); } + + ExecutorService executorService = configuration.executorService().orElse(null); + return AsynchronousFileChannel.open(path, options, executorService); } @Override diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java index 320416cd362f..0f71d54a866f 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java @@ -15,9 +15,11 @@ package software.amazon.awssdk.core.internal.http.loader; -import java.util.Iterator; +import java.util.List; import java.util.Optional; import java.util.ServiceLoader; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.core.SdkSystemSetting; @@ -46,22 +48,33 @@ final class ClasspathSdkHttpServiceProvider implements SdkHttpServiceProvider @Override public Optional loadService() { - Iterator httpServices = serviceLoader.loadServices(serviceClass); - if (!httpServices.hasNext()) { + Iterable iterable = () -> serviceLoader.loadServices(serviceClass); + List impls = StreamSupport + .stream(iterable.spliterator(), false) + .collect(Collectors.toList()); + + if (impls.isEmpty()) { return Optional.empty(); } - T httpService = httpServices.next(); - if (httpServices.hasNext()) { + if (impls.size() > 1) { + + String implText = + impls.stream() + .map(clazz -> clazz.getClass().getName()) + .collect(Collectors.joining(",", "[", "]")); + throw SdkClientException.builder().message( String.format( "Multiple HTTP implementations were found on the classpath. To avoid non-deterministic loading " + "implementations, please explicitly provide an HTTP client via the client builders, set the %s " + "system property with the FQCN of the HTTP service to use as the default, or remove all but one " + - "HTTP implementation from the classpath", implSystemProperty.property())) + "HTTP implementation from the classpath. The multiple implementations found were: %s", + implSystemProperty.property(), implText)) .build(); } - return Optional.of(httpService); + + return impls.stream().findFirst(); } /** diff --git a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformerTest.java b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformerTest.java index c5e65f09dc0c..bcab30e49675 100644 --- a/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformerTest.java +++ b/core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformerTest.java @@ -31,9 +31,16 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; +import java.util.concurrent.Callable; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -213,6 +220,32 @@ private static List configurations() { .failureBehavior(LEAVE).build()); } + @Test + void explicitExecutor_shouldUseExecutor() throws Exception { + Path testPath = testFs.getPath("test_file.txt"); + assertThat(testPath).doesNotExist(); + String newContent = RandomStringUtils.randomAlphanumeric(2000); + + ExecutorService executor = Executors.newSingleThreadExecutor(); + try { + SpyingExecutorService spyingExecutorService = new SpyingExecutorService(executor); + FileTransformerConfiguration configuration = FileTransformerConfiguration + .builder() + .fileWriteOption(FileWriteOption.CREATE_NEW) + .failureBehavior(DELETE) + .executorService(spyingExecutorService) + .build(); + FileAsyncResponseTransformer transformer = new FileAsyncResponseTransformer<>(testPath, configuration); + + stubSuccessfulStreaming(newContent, transformer); + assertThat(testPath).hasContent(newContent); + assertThat(spyingExecutorService.hasReceivedTasks()).isTrue(); + } finally { + executor.shutdown(); + assertThat(executor.awaitTermination(1, TimeUnit.MINUTES)).isTrue(); + } + } + private static void stubSuccessfulStreaming(String newContent, FileAsyncResponseTransformer transformer) throws Exception { CompletableFuture future = transformer.prepare(); transformer.onResponse("foobar"); @@ -240,4 +273,90 @@ private static void stubException(String newContent, FileAsyncResponseTransforme private static SdkPublisher testPublisher(String content) { return SdkPublisher.adapt(Flowable.just(ByteBuffer.wrap(content.getBytes(StandardCharsets.UTF_8)))); } + + private static final class SpyingExecutorService implements ExecutorService { + private final ExecutorService executorService; + private boolean receivedTasks = false; + + private SpyingExecutorService(ExecutorService executorService) { + this.executorService = executorService; + } + + public boolean hasReceivedTasks() { + return receivedTasks; + } + + @Override + public void shutdown() { + executorService.shutdown(); + } + + @Override + public List shutdownNow() { + return executorService.shutdownNow(); + } + + @Override + public boolean isShutdown() { + return executorService.isShutdown(); + } + + @Override + public boolean isTerminated() { + return executorService.isTerminated(); + } + + @Override + public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { + return executorService.awaitTermination(timeout, unit); + } + + @Override + public Future submit(Callable task) { + receivedTasks = true; + return executorService.submit(task); + } + + @Override + public Future submit(Runnable task, T result) { + receivedTasks = true; + return executorService.submit(task, result); + } + + @Override + public Future submit(Runnable task) { + receivedTasks = true; + return executorService.submit(task); + } + + @Override + public List> invokeAll(Collection> tasks) throws InterruptedException { + receivedTasks = true; + return executorService.invokeAll(tasks); + } + + @Override + public List> invokeAll(Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException { + receivedTasks = true; + return executorService.invokeAll(tasks, timeout, unit); + } + + @Override + public T invokeAny(Collection> tasks) throws InterruptedException, ExecutionException { + receivedTasks = true; + return executorService.invokeAny(tasks); + } + + @Override + public T invokeAny(Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { + receivedTasks = true; + return executorService.invokeAny(tasks, timeout, unit); + } + + @Override + public void execute(Runnable command) { + receivedTasks = true; + executorService.execute(command); + } + } } \ No newline at end of file diff --git a/docs/design/README.md b/docs/design/README.md index 4a650dbbd378..b4720272c265 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -62,7 +62,7 @@ None [java.util.Optional](https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html). * [Completable Future Usage](UseOfCompletableFuture.md) - Conventions governing the use of -* [java.util.concurrent.CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). + [java.util.concurrent.CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). * [APIReference](APIReference.md) - Conventions used for API references **Rejected** diff --git a/docs/design/services/dynamodb/high-level-library/DocumentAPI.md b/docs/design/services/dynamodb/high-level-library/DocumentAPI.md index 9abea94d3c2f..7c54535da3f0 100644 --- a/docs/design/services/dynamodb/high-level-library/DocumentAPI.md +++ b/docs/design/services/dynamodb/high-level-library/DocumentAPI.md @@ -44,7 +44,7 @@ providers. // New API in TableSchema to create a DocumentTableSchema DocumentTableSchema documentTableSchema = - TableSchema.fromDocumentSchemaBuilder() + TableSchema.documentSchemaBuilder() .addIndexPartitionKey(primaryIndexName(), "sample_hash_name", AttributeValueType.S) .addIndexSortKey("gsi_index", "sample_sort_name", AttributeValueType.N) .addAttributeConverterProviders(cutomAttributeConverters) @@ -78,7 +78,7 @@ EnhancedDocument documentTableItem = documentTable.getItem( Number sampleSortvalue = documentTableItem.get("sample_sort_name", EnhancedType.of(Number.class)); // Accessing an attribute from document using specific getters. -sampleSortvalue = documentTableItem.getSdkNumber("sample_sort_name"); +sampleSortvalue = documentTableItem.getNumber("sample_sort_name"); // Accessing an attribute of custom class using custom converters. CustomClass customClass = documentTableItem.get("custom_nested_map", new CustomAttributeConverter())); diff --git a/http-client-spi/pom.xml b/http-client-spi/pom.xml index a8adb994138f..b2253ec83e71 100644 --- a/http-client-spi/pom.xml +++ b/http-client-spi/pom.xml @@ -22,7 +22,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT http-client-spi AWS Java SDK :: HTTP Client Interface diff --git a/http-clients/apache-client/pom.xml b/http-clients/apache-client/pom.xml index 2d477042d8ba..e32e584f165e 100644 --- a/http-clients/apache-client/pom.xml +++ b/http-clients/apache-client/pom.xml @@ -21,7 +21,7 @@ http-clients software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT apache-client @@ -56,6 +56,10 @@ org.apache.httpcomponents httpcore + + commons-codec + commons-codec + software.amazon.awssdk diff --git a/http-clients/aws-crt-client/pom.xml b/http-clients/aws-crt-client/pom.xml index 0f6d0f294406..0bc14c37553a 100644 --- a/http-clients/aws-crt-client/pom.xml +++ b/http-clients/aws-crt-client/pom.xml @@ -21,7 +21,7 @@ http-clients software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 @@ -76,6 +76,11 @@ utils ${awsjavasdk.version} + + software.amazon.awssdk + crt-core + ${awsjavasdk.version} + diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.java index c8b814f81cfb..1ccf7a826ced 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.java @@ -15,12 +15,12 @@ package software.amazon.awssdk.http.crt; +import static software.amazon.awssdk.crtcore.CrtConfigurationUtils.resolveHttpMonitoringOptions; +import static software.amazon.awssdk.crtcore.CrtConfigurationUtils.resolveProxy; import static software.amazon.awssdk.http.HttpMetric.HTTP_CLIENT_NAME; import static software.amazon.awssdk.http.SdkHttpConfigurationOption.PROTOCOL; -import static software.amazon.awssdk.http.crt.internal.AwsCrtConfigurationUtils.buildProxyOptions; import static software.amazon.awssdk.http.crt.internal.AwsCrtConfigurationUtils.buildSocketOptions; import static software.amazon.awssdk.http.crt.internal.AwsCrtConfigurationUtils.resolveCipherPreference; -import static software.amazon.awssdk.http.crt.internal.AwsCrtConfigurationUtils.resolveHttpMonitoringOptions; import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely; import static software.amazon.awssdk.utils.Validate.paramNotNull; @@ -108,9 +108,9 @@ private AwsCrtAsyncHttpClient(DefaultBuilder builder, AttributeMap config) { this.tlsContext = registerOwnedResource(clientTlsContext); this.readBufferSize = builder.readBufferSize == null ? DEFAULT_STREAM_WINDOW_SIZE : builder.readBufferSize; this.maxConnectionsPerEndpoint = config.get(SdkHttpConfigurationOption.MAX_CONNECTIONS); - this.monitoringOptions = resolveHttpMonitoringOptions(builder.connectionHealthConfiguration); + this.monitoringOptions = resolveHttpMonitoringOptions(builder.connectionHealthConfiguration).orElse(null); this.maxConnectionIdleInMilliseconds = config.get(SdkHttpConfigurationOption.CONNECTION_MAX_IDLE_TIMEOUT).toMillis(); - this.proxyOptions = buildProxyOptions(builder.proxyConfiguration, tlsContext); + this.proxyOptions = resolveProxy(builder.proxyConfiguration, tlsContext).orElse(null); } } diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ConnectionHealthConfiguration.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ConnectionHealthConfiguration.java index 0cc029db08dd..fd532f326f6e 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ConnectionHealthConfiguration.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ConnectionHealthConfiguration.java @@ -17,7 +17,9 @@ import java.time.Duration; import software.amazon.awssdk.annotations.SdkPublicApi; -import software.amazon.awssdk.utils.Validate; +import software.amazon.awssdk.crtcore.CrtConnectionHealthConfiguration; +import software.amazon.awssdk.utils.builder.CopyableBuilder; +import software.amazon.awssdk.utils.builder.ToCopyableBuilder; /** * Configuration that defines health checks for all connections established by @@ -25,33 +27,20 @@ * */ @SdkPublicApi -public final class ConnectionHealthConfiguration { - private final long minimumThroughputInBps; - private final Duration minimumThroughputTimeout; +public final class ConnectionHealthConfiguration extends CrtConnectionHealthConfiguration + implements ToCopyableBuilder { - private ConnectionHealthConfiguration(DefaultConnectionHealthConfigurationBuilder builder) { - this.minimumThroughputInBps = Validate.paramNotNull(builder.minimumThroughputInBps, - "minimumThroughputInBps"); - this.minimumThroughputTimeout = Validate.isPositive(builder.minimumThroughputTimeout, - "minimumThroughputTimeout"); + private ConnectionHealthConfiguration(DefaultBuilder builder) { + super(builder); } - /** - * @return the minimum amount of throughput, in bytes per second, for a connection to be considered healthy. - */ - public long minimumThroughputInBps() { - return minimumThroughputInBps; - } - - /** - * @return How long a connection is allowed to be unhealthy before getting shut down. - */ - public Duration minimumThroughputTimeout() { - return minimumThroughputTimeout; + public static Builder builder() { + return new DefaultBuilder(); } - public static Builder builder() { - return new DefaultConnectionHealthConfigurationBuilder(); + @Override + public Builder toBuilder() { + return new DefaultBuilder(this); } /** @@ -59,52 +48,30 @@ public static Builder builder() { * *

All implementations of this interface are mutable and not thread safe.

*/ - public interface Builder { + public interface Builder extends CrtConnectionHealthConfiguration.Builder, + CopyableBuilder { - /** - * Sets a throughput threshold for connections. Throughput below this value will be considered unhealthy. - * - * @param minimumThroughputInBps minimum amount of throughput, in bytes per second, for a connection to be - * considered healthy. - * @return Builder - */ + @Override Builder minimumThroughputInBps(Long minimumThroughputInBps); - /** - * Sets how long a connection is allowed to be unhealthy before getting shut down. - * - *

- * It only supports seconds precision - * - * @param minimumThroughputTimeout How long a connection is allowed to be unhealthy - * before getting shut down. - * @return Builder - */ + @Override Builder minimumThroughputTimeout(Duration minimumThroughputTimeout); + @Override ConnectionHealthConfiguration build(); } /** * An SDK-internal implementation of {@link Builder}. */ - private static final class DefaultConnectionHealthConfigurationBuilder implements Builder { - private Long minimumThroughputInBps; - private Duration minimumThroughputTimeout; + private static final class DefaultBuilder extends + CrtConnectionHealthConfiguration.DefaultBuilder implements Builder { - private DefaultConnectionHealthConfigurationBuilder() { + private DefaultBuilder() { } - @Override - public Builder minimumThroughputInBps(Long minimumThroughputInBps) { - this.minimumThroughputInBps = minimumThroughputInBps; - return this; - } - - @Override - public Builder minimumThroughputTimeout(Duration minimumThroughputTimeout) { - this.minimumThroughputTimeout = minimumThroughputTimeout; - return this; + private DefaultBuilder(ConnectionHealthConfiguration configuration) { + super(configuration); } @Override diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ProxyConfiguration.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ProxyConfiguration.java index 6321fbbb2356..7272b38ef2fd 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ProxyConfiguration.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/ProxyConfiguration.java @@ -15,153 +15,57 @@ package software.amazon.awssdk.http.crt; -import java.util.Objects; import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.crtcore.CrtProxyConfiguration; import software.amazon.awssdk.utils.ProxySystemSetting; import software.amazon.awssdk.utils.builder.CopyableBuilder; import software.amazon.awssdk.utils.builder.ToCopyableBuilder; /** - * Proxy configuration for {@link AwsCrtAsyncHttpClient}. This class is used to configure an HTTPS or HTTP proxy to be used by - * the {@link AwsCrtAsyncHttpClient}. + * Proxy configuration for {@link AwsCrtAsyncHttpClient}. This class is used to configure an HTTPS or HTTP proxy to be used by the + * {@link AwsCrtAsyncHttpClient}. * * @see AwsCrtAsyncHttpClient.Builder#proxyConfiguration(ProxyConfiguration) */ @SdkPublicApi -public final class ProxyConfiguration implements ToCopyableBuilder { - private static final String HTTPS = "https"; - private final String scheme; - private final String host; - private final int port; +public final class ProxyConfiguration extends CrtProxyConfiguration + implements ToCopyableBuilder { - private final String username; - private final String password; - private final Boolean useSystemPropertyValues; - - private ProxyConfiguration(BuilderImpl builder) { - this.useSystemPropertyValues = builder.useSystemPropertyValues; - this.scheme = builder.scheme; - this.host = resolveHost(builder.host); - this.port = resolvePort(builder.port); - this.username = builder.username; - this.password = builder.password; - } - - /** - * @return The proxy scheme. - */ - public String scheme() { - return scheme; - } - - /** - * @return The proxy host from the configuration if set, else from the "https.proxyHost" or "http.proxyHost" system property, - * based on the scheme used, if {@link ProxyConfiguration.Builder#useSystemPropertyValues(Boolean)} is set to true - */ - public String host() { - return host; - } - - /** - * @return The proxy port from the configuration if set, else from the "https.proxyPort" or "http.proxyPort" system property, - * based on the scheme used, if {@link ProxyConfiguration.Builder#useSystemPropertyValues(Boolean)} is set to true - */ - public int port() { - return port; - } - - /** - * @return The proxy username from the configuration if set, else from the "https.proxyUser" or "http.proxyUser" system - * property, based on the scheme used, if {@link ProxyConfiguration.Builder#useSystemPropertyValues(Boolean)} is set to true - * */ - public String username() { - if (Objects.equals(scheme(), HTTPS)) { - return resolveValue(username, ProxySystemSetting.HTTPS_PROXY_USERNAME); - } - return resolveValue(username, ProxySystemSetting.PROXY_USERNAME); - } - - /** - * @return The proxy password from the configuration if set, else from the "https.proxyPassword" or "http.proxyPassword" - * system property, based on the scheme used, if {@link ProxyConfiguration.Builder#useSystemPropertyValues(Boolean)} is set - * to true - * */ - public String password() { - if (Objects.equals(scheme(), HTTPS)) { - return resolveValue(password, ProxySystemSetting.HTTPS_PROXY_PASSWORD); - } - return resolveValue(password, ProxySystemSetting.PROXY_PASSWORD); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - - if (o == null || getClass() != o.getClass()) { - return false; - } - - ProxyConfiguration that = (ProxyConfiguration) o; - - if (port != that.port) { - return false; - } - - if (!Objects.equals(this.scheme, that.scheme)) { - return false; - } - - if (!Objects.equals(this.host, that.host)) { - return false; - } - - if (!Objects.equals(this.username, that.username)) { - return false; - } - - return Objects.equals(this.password, that.password); - } - - @Override - public int hashCode() { - int result = scheme != null ? scheme.hashCode() : 0; - result = 31 * result + (host != null ? host.hashCode() : 0); - result = 31 * result + port; - result = 31 * result + (username != null ? username.hashCode() : 0); - result = 31 * result + (password != null ? password.hashCode() : 0); - - return result; + private ProxyConfiguration(DefaultBuilder builder) { + super(builder); } @Override public Builder toBuilder() { - return new BuilderImpl(this); + return new DefaultBuilder(this); } public static Builder builder() { - return new BuilderImpl(); + return new DefaultBuilder(); } /** * Builder for {@link ProxyConfiguration}. */ - public interface Builder extends CopyableBuilder { + public interface Builder extends CrtProxyConfiguration.Builder, CopyableBuilder { /** * Set the hostname of the proxy. + * * @param host The proxy host. * @return This object for method chaining. */ + @Override Builder host(String host); /** * Set the port that the proxy expects connections on. + * * @param port The proxy port. * @return This object for method chaining. */ + @Override Builder port(int port); /** @@ -172,6 +76,7 @@ public interface Builder extends CopyableBuilder { * @param scheme The proxy scheme. * @return This object for method chaining. */ + @Override Builder scheme(String scheme); /** @@ -182,6 +87,7 @@ public interface Builder extends CopyableBuilder { * @param username The basic authentication username. * @return This object for method chaining. */ + @Override Builder username(String username); /** @@ -192,103 +98,36 @@ public interface Builder extends CopyableBuilder { * @param password The basic authentication password. * @return This object for method chaining. */ + @Override Builder password(String password); /** - * The option whether to use system property values from {@link ProxySystemSetting} if any of the config options - * are missing. The value is set to "true" by default which means SDK will automatically use system property values if - * options are not provided during building the {@link ProxyConfiguration} object. To disable this behaviour, set this - * value to false. + * The option whether to use system property values from {@link ProxySystemSetting} if any of the config options are + * missing. The value is set to "true" by default which means SDK will automatically use system property values if + * options + * are not provided during building the {@link ProxyConfiguration} object. To disable this behaviour, set this + * value to + * false. * * @param useSystemPropertyValues The option whether to use system property values * @return This object for method chaining. */ - Builder useSystemPropertyValues(Boolean useSystemPropertyValues); - } - - private String resolveHost(String host) { - if (Objects.equals(scheme(), HTTPS)) { - return resolveValue(host, ProxySystemSetting.HTTPS_PROXY_HOST); - } - return resolveValue(host, ProxySystemSetting.PROXY_HOST); - } - - private int resolvePort(int port) { - if (port == 0 && Boolean.TRUE.equals(useSystemPropertyValues)) { - if (Objects.equals(scheme(), HTTPS)) { - return ProxySystemSetting.HTTPS_PROXY_PORT.getStringValue().map(Integer::parseInt).orElse(0); - } - return ProxySystemSetting.PROXY_PORT.getStringValue().map(Integer::parseInt).orElse(0); - } - return port; - } - - /** - * Uses the configuration options, system setting property and returns the final value of the given member. - */ - private String resolveValue(String value, ProxySystemSetting systemSetting) { - return value == null && Boolean.TRUE.equals(useSystemPropertyValues) ? - systemSetting.getStringValue().orElse(null) : value; - } - - private static final class BuilderImpl implements Builder { - private String scheme; - private String host; - private int port = 0; - private String username; - private String password; - private Boolean useSystemPropertyValues = Boolean.TRUE; - - private BuilderImpl() { - } - - private BuilderImpl(ProxyConfiguration proxyConfiguration) { - this.useSystemPropertyValues = proxyConfiguration.useSystemPropertyValues; - this.scheme = proxyConfiguration.scheme; - this.host = proxyConfiguration.host; - this.port = proxyConfiguration.port; - this.username = proxyConfiguration.username; - this.password = proxyConfiguration.password; - } - @Override - public Builder scheme(String scheme) { - this.scheme = scheme; - return this; - } + Builder useSystemPropertyValues(Boolean useSystemPropertyValues); - @Override - public Builder host(String host) { - this.host = host; - return this; - } @Override - public Builder port(int port) { - this.port = port; - return this; - } + ProxyConfiguration build(); + } - @Override - public Builder username(String username) { - this.username = username; - return this; - } + private static final class DefaultBuilder extends CrtProxyConfiguration.DefaultBuilder implements Builder { - @Override - public Builder password(String password) { - this.password = password; - return this; + private DefaultBuilder(ProxyConfiguration proxyConfiguration) { + super(proxyConfiguration); } - @Override - public Builder useSystemPropertyValues(Boolean useSystemPropertyValues) { - this.useSystemPropertyValues = useSystemPropertyValues; - return this; - } + private DefaultBuilder() { - public void setUseSystemPropertyValues(Boolean useSystemPropertyValues) { - useSystemPropertyValues(useSystemPropertyValues); } @Override diff --git a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/AwsCrtConfigurationUtils.java b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/AwsCrtConfigurationUtils.java index d0784a7b2bf4..f08c50187d05 100644 --- a/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/AwsCrtConfigurationUtils.java +++ b/http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/internal/AwsCrtConfigurationUtils.java @@ -18,14 +18,9 @@ import java.time.Duration; import software.amazon.awssdk.annotations.SdkInternalApi; -import software.amazon.awssdk.crt.http.HttpMonitoringOptions; -import software.amazon.awssdk.crt.http.HttpProxyOptions; import software.amazon.awssdk.crt.io.SocketOptions; import software.amazon.awssdk.crt.io.TlsCipherPreference; -import software.amazon.awssdk.crt.io.TlsContext; import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient; -import software.amazon.awssdk.http.crt.ConnectionHealthConfiguration; -import software.amazon.awssdk.http.crt.ProxyConfiguration; import software.amazon.awssdk.http.crt.TcpKeepAliveConfiguration; import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.NumericUtils; @@ -56,43 +51,6 @@ public static SocketOptions buildSocketOptions(TcpKeepAliveConfiguration tcpKeep return clientSocketOptions; } - public static HttpProxyOptions buildProxyOptions(ProxyConfiguration proxyConfiguration, TlsContext tlsContext) { - if (proxyConfiguration == null) { - return null; - } - - HttpProxyOptions clientProxyOptions = new HttpProxyOptions(); - - clientProxyOptions.setHost(proxyConfiguration.host()); - clientProxyOptions.setPort(proxyConfiguration.port()); - - if ("https".equalsIgnoreCase(proxyConfiguration.scheme())) { - clientProxyOptions.setTlsContext(tlsContext); - } - - if (proxyConfiguration.username() != null && proxyConfiguration.password() != null) { - clientProxyOptions.setAuthorizationUsername(proxyConfiguration.username()); - clientProxyOptions.setAuthorizationPassword(proxyConfiguration.password()); - clientProxyOptions.setAuthorizationType(HttpProxyOptions.HttpProxyAuthorizationType.Basic); - } else { - clientProxyOptions.setAuthorizationType(HttpProxyOptions.HttpProxyAuthorizationType.None); - } - - return clientProxyOptions; - } - - public static HttpMonitoringOptions resolveHttpMonitoringOptions(ConnectionHealthConfiguration config) { - if (config == null) { - return null; - } - - HttpMonitoringOptions httpMonitoringOptions = new HttpMonitoringOptions(); - httpMonitoringOptions.setMinThroughputBytesPerSecond(config.minimumThroughputInBps()); - int seconds = (int) config.minimumThroughputTimeout().getSeconds(); - httpMonitoringOptions.setAllowableThroughputFailureIntervalSeconds(seconds); - return httpMonitoringOptions; - } - public static TlsCipherPreference resolveCipherPreference(Boolean postQuantumTlsEnabled) { TlsCipherPreference defaultTls = TlsCipherPreference.TLS_CIPHER_SYSTEM_DEFAULT; if (postQuantumTlsEnabled == null || !postQuantumTlsEnabled) { diff --git a/http-clients/netty-nio-client/pom.xml b/http-clients/netty-nio-client/pom.xml index ae45a19a3f7f..f07f76c078fc 100644 --- a/http-clients/netty-nio-client/pom.xml +++ b/http-clients/netty-nio-client/pom.xml @@ -20,7 +20,7 @@ http-clients software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java b/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java index d827fc65657f..cd73ebb7625c 100644 --- a/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java +++ b/http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java @@ -376,6 +376,8 @@ public void onComplete() { } } catch (IOException e) { notifyError(e); + runAndLogError(channelContext.channel(), () -> "Could not release channel back to the pool", + () -> closeAndRelease(channelContext)); } } diff --git a/http-clients/netty-nio-client/src/test/java/software/amazon/awssdk/http/nio/netty/internal/PublisherAdapterTest.java b/http-clients/netty-nio-client/src/test/java/software/amazon/awssdk/http/nio/netty/internal/PublisherAdapterTest.java index f5a417057bd3..4098aec8eac2 100644 --- a/http-clients/netty-nio-client/src/test/java/software/amazon/awssdk/http/nio/netty/internal/PublisherAdapterTest.java +++ b/http-clients/netty-nio-client/src/test/java/software/amazon/awssdk/http/nio/netty/internal/PublisherAdapterTest.java @@ -235,6 +235,56 @@ public void onComplete() { } } + @Test + public void contentLengthValidationFails_closesAndReleasesConnection() { + channel.attr(ChannelAttributeKey.RESPONSE_CONTENT_LENGTH).set(1L); + channel.attr(ChannelAttributeKey.RESPONSE_DATA_READ).set(0L); + + Publisher publisher = subscriber -> subscriber.onSubscribe(new Subscription() { + @Override + public void request(long l) { + subscriber.onComplete(); + } + + @Override + public void cancel() { + } + }); + + DefaultStreamedHttpResponse streamedResponse = new DefaultStreamedHttpResponse(HttpVersion.HTTP_1_1, + HttpResponseStatus.OK, publisher); + + Subscriber subscriber = new Subscriber() { + private Subscription subscription; + + @Override + public void onSubscribe(Subscription subscription) { + this.subscription = subscription; + subscription.request(Long.MAX_VALUE); + } + + @Override + public void onNext(ByteBuffer byteBuffer) { + } + + @Override + public void onError(Throwable throwable) { + } + + @Override + public void onComplete() { + } + }; + + ResponseHandler.PublisherAdapter publisherAdapter = new ResponseHandler.PublisherAdapter(streamedResponse, ctx, + requestContext, executeFuture); + + publisherAdapter.subscribe(subscriber); + + verify(ctx).close(); + verify(channelPool).release(channel); + } + static final class TestSubscriber implements Subscriber { private Subscription subscription; diff --git a/http-clients/pom.xml b/http-clients/pom.xml index b5adb97bc729..8209a1478144 100644 --- a/http-clients/pom.xml +++ b/http-clients/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/http-clients/url-connection-client/pom.xml b/http-clients/url-connection-client/pom.xml index 538f24e138d9..a18f837f1c88 100644 --- a/http-clients/url-connection-client/pom.xml +++ b/http-clients/url-connection-client/pom.xml @@ -20,7 +20,7 @@ http-clients software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/javadoc-resources/aws-sdk-java-v2-javadoc.css b/javadoc-resources/aws-sdk-java-v2-javadoc.css new file mode 100644 index 000000000000..e9ce938ec978 --- /dev/null +++ b/javadoc-resources/aws-sdk-java-v2-javadoc.css @@ -0,0 +1,79 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +/* +Accessibility: This css file modify the basic javadoc css to +conform to accessibility audit issues. + */ + +/* make links have more contrast and not rely only on color */ +a:link { + font-weight: bold; +} + +a[href]:hover, a[href]:focus { + color: #a85e1e; +} + +.top-nav a[href]:hover, a[href]:focus { + color: white; + text-decoration: underline; +} + +/* ensure no horizontal scrolling is needed with small horizontal width */ +@media (max-width: 800px) { + pre, code { + word-break: break-all; + word-wrap: break-word; + white-space: break-spaces; + } + + .parameters { + white-space: break-spaces !important; + } + + .sub-title { + word-break: break-all; + } + + .member-signature { + word-break: break-all; + } + + .block { + word-wrap: break-word; + } + + .exceptions { + white-space: break-spaces !important; + } + + .type-signature { + word-wrap: break-word; + } + + .inherited-list { + word-wrap: break-word; + } + + .details { + word-wrap: break-word; + } +} + +/* fixes footer weird behavior */ +footer { + margin-left: 2vw; +} diff --git a/metric-publishers/cloudwatch-metric-publisher/pom.xml b/metric-publishers/cloudwatch-metric-publisher/pom.xml index b14f23d165da..d857e08929d1 100644 --- a/metric-publishers/cloudwatch-metric-publisher/pom.xml +++ b/metric-publishers/cloudwatch-metric-publisher/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk metric-publishers - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudwatch-metric-publisher diff --git a/metric-publishers/pom.xml b/metric-publishers/pom.xml index 03a3dcecd620..ccd4a93c5669 100644 --- a/metric-publishers/pom.xml +++ b/metric-publishers/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT metric-publishers diff --git a/pom.xml b/pom.xml index a502bb6daf8b..c62d1e1b462a 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 4.0.0 software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT pom AWS Java SDK :: Parent The Amazon Web Services SDK for Java provides Java APIs @@ -86,11 +86,11 @@ test/ruleset-testing-core - https://github.com/aws/aws-sdk-java-v2.git + ${scm.github.url} ${project.version} - 2.20.1 + 2.20.46 2.13.2 2.13.4.2 2.13.2 @@ -112,9 +112,9 @@ 3.10.0 3.5.101 2.2.21 - 1.10 + 1.15 1.29 - 0.21.5 + 0.21.12 5.8.1 @@ -172,6 +172,8 @@ ${skipTests} ${project.basedir}/src/it/java + ${session.executionRootDirectory} + https://github.com/aws/aws-sdk-java-v2.git @@ -502,6 +504,7 @@ org.slf4j:slf4j-api + commons-codec:commons-codec org.junit.jupiter:* org.mockito:* org.junit.vintage:* @@ -694,6 +697,9 @@ publishing + + https://github.com/aws/aws-sdk-java-v2/tree/release + @@ -1020,6 +1026,11 @@ AWS SDK for Java API Reference - ${awsjavasdk.version} AWS SDK for Java :*.codegen:software.amazon.awssdk.services.protocol* + true + ${javadoc.resourcesDir}/javadoc-resources + + aws-sdk-java-v2-javadoc.css + Greengrass diff --git a/release-scripts/pom.xml b/release-scripts/pom.xml index 2d9114c53bf0..7fc2802f29fd 100644 --- a/release-scripts/pom.xml +++ b/release-scripts/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../pom.xml release-scripts diff --git a/services-custom/dynamodb-enhanced/pom.xml b/services-custom/dynamodb-enhanced/pom.xml index 6f922331379c..5759a748b151 100644 --- a/services-custom/dynamodb-enhanced/pom.xml +++ b/services-custom/dynamodb-enhanced/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services-custom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT dynamodb-enhanced AWS Java SDK :: DynamoDB :: Enhanced Client @@ -106,6 +106,11 @@ aws-core ${awsjavasdk.version} + + software.amazon.awssdk + json-utils + ${awsjavasdk.version} + software.amazon.awssdk http-client-spi diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DefaultAttributeConverterProvider.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DefaultAttributeConverterProvider.java index 513079acd0ca..45db89f5283c 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DefaultAttributeConverterProvider.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DefaultAttributeConverterProvider.java @@ -61,6 +61,7 @@ import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.OptionalLongAttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.PeriodAttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.SdkBytesAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.SdkNumberAttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.SetAttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ShortAttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter; @@ -88,6 +89,8 @@ @ThreadSafe @Immutable public final class DefaultAttributeConverterProvider implements AttributeConverterProvider { + private static final DefaultAttributeConverterProvider INSTANCE = getDefaultBuilder().build(); + private static final Logger log = Logger.loggerFor(DefaultAttributeConverterProvider.class); private final ConcurrentHashMap, AttributeConverter> converterCache = @@ -117,10 +120,9 @@ public DefaultAttributeConverterProvider() { * Returns an attribute converter provider with all default converters set. */ public static DefaultAttributeConverterProvider create() { - return getDefaultBuilder().build(); + return INSTANCE; } - /** * Equivalent to {@code builder(EnhancedType.of(Object.class))}. */ @@ -246,7 +248,8 @@ private static Builder getDefaultBuilder() { .addConverter(UuidAttributeConverter.create()) .addConverter(ZonedDateTimeAsStringAttributeConverter.create()) .addConverter(ZoneIdAttributeConverter.create()) - .addConverter(ZoneOffsetAttributeConverter.create()); + .addConverter(ZoneOffsetAttributeConverter.create()) + .addConverter(SdkNumberAttributeConverter.create()); } /** diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/TableSchema.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/TableSchema.java index c6926f73187d..bdf4ee35cbdb 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/TableSchema.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/TableSchema.java @@ -20,6 +20,8 @@ import java.util.Map; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.enhanced.dynamodb.document.DocumentTableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; import software.amazon.awssdk.enhanced.dynamodb.mapper.BeanTableSchema; import software.amazon.awssdk.enhanced.dynamodb.mapper.ImmutableTableSchema; import software.amazon.awssdk.enhanced.dynamodb.mapper.StaticImmutableTableSchema; @@ -84,6 +86,16 @@ static BeanTableSchema fromBean(Class beanClass) { return BeanTableSchema.create(beanClass); } + /** + * Provides interfaces to interact with DynamoDB tables as {@link EnhancedDocument} where the complete Schema of the table is + * not required. + * + * @return A {@link DocumentTableSchema.Builder} for instantiating DocumentTableSchema. + */ + static DocumentTableSchema.Builder documentSchemaBuilder() { + return DocumentTableSchema.builder(); + } + /** * Scans an immutable class that has been annotated with DynamoDb immutable annotations and then returns a * {@link ImmutableTableSchema} implementation of this interface that can map records to and from items of that diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchema.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchema.java new file mode 100644 index 000000000000..a3283e969b36 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchema.java @@ -0,0 +1,258 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import software.amazon.awssdk.annotations.NotThreadSafe; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.ConverterProviderResolver; +import software.amazon.awssdk.enhanced.dynamodb.internal.document.DefaultEnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.mapper.StaticImmutableTableSchema; +import software.amazon.awssdk.enhanced.dynamodb.mapper.StaticTableMetadata; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + + +/** + * Implementation of {@link TableSchema} that builds a table schema based on DynamoDB Items. + *

+ * In Amazon DynamoDB, an item is a collection of attributes. Each attribute has a name and a value. An attribute value can be a + * scalar, a set, or a document type + *

+ * A DocumentTableSchema is used to create a {@link DynamoDbTable} which provides read and writes access to DynamoDB table as + * {@link EnhancedDocument}. + *

DocumentTableSchema specifying primaryKey, sortKey and a customAttributeConverter can be created as below + * {@snippet : + * DocumentTableSchema documentTableSchema = DocumentTableSchema.builder() + * .primaryKey("sampleHashKey", AttributeValueType.S) + * .sortKey("sampleSortKey", AttributeValueType.S) + * .attributeConverterProviders(customAttributeConverter, AttributeConverterProvider.defaultProvider()) + * .build(); + *} + *

DocumentTableSchema can also be created without specifying primaryKey and sortKey in which cases the + * {@link TableMetadata} of DocumentTableSchema will error if we try to access attributes from metaData. Also if + * attributeConverterProviders are not provided then {@link DefaultAttributeConverterProvider} will be used + * {@snippet : + * DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + *} + * + * @see Working + * with items and attributes + */ +@SdkPublicApi +public final class DocumentTableSchema implements TableSchema { + private final TableMetadata tableMetadata; + private final List attributeConverterProviders; + + private DocumentTableSchema(Builder builder) { + this.attributeConverterProviders = builder.attributeConverterProviders; + this.tableMetadata = builder.staticTableMetaDataBuilder.build(); + } + + public static Builder builder() { + return new Builder(); + } + + @Override + public EnhancedDocument mapToItem(Map attributeMap) { + if (attributeMap == null) { + return null; + } + DefaultEnhancedDocument.DefaultBuilder builder = + (DefaultEnhancedDocument.DefaultBuilder) DefaultEnhancedDocument.builder(); + attributeMap.forEach(builder::putObject); + return builder.attributeConverterProviders(attributeConverterProviders) + .build(); + } + + /** + * {@inheritDoc} + * + * This flag does not have significance for the Document API, unlike Java objects where the default value of an undefined + * Object is null.In contrast to mapped classes, where a schema is present, the DocumentSchema is unaware of the entire + * schema.Therefore, if an attribute is not present, it signifies that it is null, and there is no need to handle it in a + * separate way.However, if the user explicitly wants to nullify certain attributes, then the user needs to set those + * attributes as null in the Document that needs to be updated. + * + */ + @Override + public Map itemToMap(EnhancedDocument item, boolean ignoreNulls) { + if (item == null) { + return null; + } + List providers = mergeAttributeConverterProviders(item); + return item.toBuilder().attributeConverterProviders(providers).build().toMap(); + } + + private List mergeAttributeConverterProviders(EnhancedDocument item) { + if (item.attributeConverterProviders() != null && !item.attributeConverterProviders().isEmpty()) { + Set providers = new LinkedHashSet<>(); + providers.addAll(item.attributeConverterProviders()); + providers.addAll(attributeConverterProviders); + return providers.stream().collect(Collectors.toList()); + } + return attributeConverterProviders; + } + + @Override + public Map itemToMap(EnhancedDocument item, Collection attributes) { + if (item.toMap() == null) { + return null; + } + List providers = mergeAttributeConverterProviders(item); + return item.toBuilder().attributeConverterProviders(providers).build().toMap().entrySet() + .stream() + .filter(entry -> attributes.contains(entry.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, + (left, right) -> left, LinkedHashMap::new)); + } + + @Override + public AttributeValue attributeValue(EnhancedDocument item, String attributeName) { + if (item == null) { + return null; + } + List providers = mergeAttributeConverterProviders(item); + return item.toBuilder() + .attributeConverterProviders(providers) + .build() + .toMap() + .get(attributeName); + } + + @Override + public TableMetadata tableMetadata() { + return tableMetadata; + } + + @Override + public EnhancedType itemType() { + return EnhancedType.of(EnhancedDocument.class); + } + + @Override + public List attributeNames() { + return tableMetadata.keyAttributes().stream().map(key -> key.name()).collect(Collectors.toList()); + } + + @Override + public boolean isAbstract() { + return false; + } + + @NotThreadSafe + public static final class Builder { + + private final StaticTableMetadata.Builder staticTableMetaDataBuilder = StaticTableMetadata.builder(); + + /** + * By Default the defaultConverterProvider is used for converting AttributeValue to primitive types. + */ + private List attributeConverterProviders = + Collections.singletonList(ConverterProviderResolver.defaultConverterProvider()); + + /** + * Adds information about a partition key associated with a specific index. + * + * @param indexName the name of the index to associate the partition key with + * @param attributeName the name of the attribute that represents the partition key + * @param attributeValueType the {@link AttributeValueType} of the partition key + * @throws IllegalArgumentException if a partition key has already been defined for this index + */ + public Builder addIndexPartitionKey(String indexName, String attributeName, AttributeValueType attributeValueType) { + staticTableMetaDataBuilder.addIndexPartitionKey(indexName, attributeName, attributeValueType); + return this; + } + + /** + * Adds information about a sort key associated with a specific index. + * + * @param indexName the name of the index to associate the sort key with + * @param attributeName the name of the attribute that represents the sort key + * @param attributeValueType the {@link AttributeValueType} of the sort key + * @throws IllegalArgumentException if a sort key has already been defined for this index + */ + public Builder addIndexSortKey(String indexName, String attributeName, AttributeValueType attributeValueType) { + staticTableMetaDataBuilder.addIndexSortKey(indexName, attributeName, attributeValueType); + return this; + } + + /** + * Specifies the {@link AttributeConverterProvider}s to use with the table schema. The list of attribute converter + * providers must provide {@link AttributeConverter}s for Custom types. The attribute converter providers will be loaded + * in the strict order they are supplied here. + *

+ * By default, {@link DefaultAttributeConverterProvider} will be used, and it will provide standard converters for most + * primitive and common Java types. Configuring this will override the default behavior, so it is recommended to always + * append `DefaultAttributeConverterProvider` when you configure the custom attribute converter providers. + *

+ * {@snippet : + * builder.attributeConverterProviders(customAttributeConverter, AttributeConverterProvider.defaultProvider()); + *} + * + * @param attributeConverterProviders a list of attribute converter providers to use with the table schema + */ + public Builder attributeConverterProviders(AttributeConverterProvider... attributeConverterProviders) { + this.attributeConverterProviders = Arrays.asList(attributeConverterProviders); + return this; + } + + /** + * Specifies the {@link AttributeConverterProvider}s to use with the table schema. The list of attribute converter + * providers must provide {@link AttributeConverter}s for all types used in the schema. The attribute converter providers + * will be loaded in the strict order they are supplied here. + *

+ * By default, {@link DefaultAttributeConverterProvider} will be used, and it will provide standard converters for most + * primitive and common Java types. Configuring this will override the default behavior, so it is recommended to always + * append `DefaultAttributeConverterProvider` when you configure the custom attribute converter providers. + *

+ * {@snippet : + * List providers = new ArrayList<>( customAttributeConverter, + * AttributeConverterProvider.defaultProvider()); + * builder.attributeConverterProviders(providers); + *} + * + * @param attributeConverterProviders a list of attribute converter providers to use with the table schema + */ + public Builder attributeConverterProviders(List attributeConverterProviders) { + this.attributeConverterProviders = new ArrayList<>(attributeConverterProviders); + return this; + } + + /** + * Builds a {@link StaticImmutableTableSchema} based on the values this builder has been configured with + */ + public DocumentTableSchema build() { + return new DocumentTableSchema(this); + } + } +} diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocument.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocument.java new file mode 100644 index 000000000000..61bfa8bb3914 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocument.java @@ -0,0 +1,580 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import software.amazon.awssdk.annotations.NotThreadSafe; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.document.DefaultEnhancedDocument; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.utils.Validate; + + +/** + * Interface representing the Document API for DynamoDB. The Document API operations are designed to work with open content, + * such as data with no fixed schema, data that cannot be modeled using rigid types, or data that has a schema. + * This interface provides all the methods required to access a Document, as well as constructor methods for creating a + * Document that can be used to read and write to DynamoDB using the EnhancedDynamoDB client. + * Additionally, this interface provides flexibility when working with data, as it allows you to work with data that is not + * necessarily tied to a specific data model. + * The EnhancedDocument interface provides two ways to use AttributeConverterProviders: + *

Enhanced Document with default attribute Converter to convert the attribute of DDB item to basic default primitive types in + * Java + * {@snippet : + * EnhancedDocument enhancedDocument = EnhancedDocument.builder().attributeConverterProviders(AttributeConverterProvider + * .defaultProvider()).build(); + *} + *

Enhanced Document with Custom attribute Converter to convert the attribute of DDB Item to Custom Type. + * {@snippet : + * // CustomAttributeConverterProvider.create() is an example for some Custom converter provider + * EnhancedDocument enhancedDocumentWithCustomConverter = EnhancedDocument.builder().attributeConverterProviders + * (CustomAttributeConverterProvider.create(), AttributeConverterProvide.defaultProvider() + * .put("customObject", customObject, EnhancedType.of(CustomClass.class)) + * .build(); + *} + *

Enhanced Document can be created with Json as input using Static factory method.In this case it used + * defaultConverterProviders. + * {@snippet : + * EnhancedDocument enhancedDocumentWithCustomConverter = EnhancedDocument.fromJson("{\"k\":\"v\"}"); + *} + * The attribute converter are always required to be provided, thus for default conversion + * {@link AttributeConverterProvider#defaultProvider()} must be supplied. + */ +@SdkPublicApi +public interface EnhancedDocument { + + /** + * Creates a new EnhancedDocument instance from a JSON string. + * The {@link AttributeConverterProvider#defaultProvider()} is used as the default ConverterProvider. + * To use a custom ConverterProvider, use the builder methods: {@link Builder#json(String)} to supply the JSON string, + * then use {@link Builder#attributeConverterProviders(AttributeConverterProvider...)} to provide the custom + * ConverterProvider. + * {@snippet : + * EnhancedDocument documentFromJson = EnhancedDocument.fromJson("{\"key\": \"Value\"}"); + *} + * @param json The JSON string representation of a DynamoDB Item. + * @return A new instance of EnhancedDocument. + * @throws IllegalArgumentException if the json parameter is null + */ + static EnhancedDocument fromJson(String json) { + Validate.paramNotNull(json, "json"); + return DefaultEnhancedDocument.builder() + .json(json) + .attributeConverterProviders(defaultProvider()) + .build(); + } + + /** + * Creates a new EnhancedDocument instance from a AttributeValue Map. + * The {@link AttributeConverterProvider#defaultProvider()} is used as the default ConverterProvider. + * Example usage: + * {@snippet : + * EnhancedDocument documentFromJson = EnhancedDocument.fromAttributeValueMap(stringKeyAttributeValueMao)}); + *} + * @param attributeValueMap - Map with Attributes as String keys and AttributeValue as Value. + * @return A new instance of EnhancedDocument. + * @throws IllegalArgumentException if the json parameter is null + */ + static EnhancedDocument fromAttributeValueMap(Map attributeValueMap) { + Validate.paramNotNull(attributeValueMap, "attributeValueMap"); + return DefaultEnhancedDocument.builder() + .attributeValueMap(attributeValueMap) + .attributeConverterProviders(defaultProvider()) + .build(); + } + + /** + * Creates a default builder for {@link EnhancedDocument}. + */ + static Builder builder() { + return DefaultEnhancedDocument.builder(); + } + + /** + * Converts an existing EnhancedDocument into a builder object that can be used to modify its values and then create a new + * EnhancedDocument. + * + * @return A {@link EnhancedDocument.Builder} initialized with the values of this EnhancedDocument. + */ + Builder toBuilder(); + + /** + * Checks if the document is a {@code null} value. + * + * @param attributeName Name of the attribute that needs to be checked. + * @return true if the specified attribute exists with a null value; false otherwise. + */ + boolean isNull(String attributeName); + + /** + * Checks if the attribute exists in the document. + * + * @param attributeName Name of the attribute that needs to be checked. + * @return true if the specified attribute exists with a null/non-null value; false otherwise. + */ + boolean isPresent(String attributeName); + + /** + * Returns the value of the specified attribute in the current document as a specified {@link EnhancedType}; or null if the + * attribute either doesn't exist or the attribute value is null. + *

+ * Retrieving String Type for a document + * {@snippet : + * String resultCustom = document.get("key", EnhancedType.of(String.class)); + * } + * Retrieving Custom Type for which Convertor Provider was defined while creating the document + * {@snippet : + * Custom resultCustom = document.get("key", EnhancedType.of(Custom.class)); + * } + * Retrieving list of strings in a document + * {@snippet : + * List resultList = document.get("key", EnhancedType.listOf(String.class)); + * } + * Retrieving a Map with List of strings in its values + * {@snippet : + * Map>> resultNested = document.get("key", new EnhancedType>>(){}); + * } + *

+ * @param attributeName Name of the attribute. + * @param type EnhancedType of the value + * @param The type of the attribute value. + * @return Attribute value of type T + * } + */ + T get(String attributeName, EnhancedType type); + + /** + * Returns the value of the specified attribute in the current document as a specified class type; or null if the + * attribute either doesn't exist or the attribute value is null. + *

+ * Retrieving String Type for a document + * {@snippet : + * String resultCustom = document.get("key", String.class); + * } + * Retrieving Custom Type for which Convertor Provider was defined while creating the document + * {@snippet : + * Custom resultCustom = document.get("key", Custom.class); + * } + *

+ * Note : + * This API should not be used to retrieve values of List and Map types. + * Instead, getList and getMap APIs should be used to retrieve attributes of type List and Map, respectively. + *

+ * @param attributeName Name of the attribute. + * @param clazz Class type of value. + * @param The type of the attribute value. + * @return Attribute value of type T + * } + */ + T get(String attributeName, Class clazz); + + /** + * Gets the String value of specified attribute in the document. + * + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a string; or null if the attribute either doesn't exist + * or the attribute value is null + */ + String getString(String attributeName); + + /** + * Gets the {@link SdkNumber} value of specified attribute in the document. + * + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a number; or null if the attribute either doesn't exist + * or the attribute value is null + */ + SdkNumber getNumber(String attributeName); + + /** + * Gets the {@link SdkBytes} value of specified attribute in the document. + * + * @param attributeName Name of the attribute. + * @return the value of the specified attribute in the current document as SdkBytes; or null if the attribute either + * doesn't exist or the attribute value is null. + */ + SdkBytes getBytes(String attributeName); + + /** + * Gets the Set of String values of the given attribute in the current document. + * @param attributeName the name of the attribute. + * @return the value of the specified attribute in the current document as a set of strings; or null if the attribute either + * does not exist or the attribute value is null. + */ + Set getStringSet(String attributeName); + + /** + * Gets the Set of String values of the given attribute in the current document. + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a set of SdkNumber; or null if the attribute either + * doesn't exist or the attribute value is null. + */ + Set getNumberSet(String attributeName); + + /** + * Gets the Set of String values of the given attribute in the current document. + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a set of SdkBytes; + * or null if the attribute doesn't exist. + */ + Set getBytesSet(String attributeName); + + /** + * Gets the List of values of type T for the given attribute in the current document. + * + * @param attributeName Name of the attribute. + * @param type {@link EnhancedType} of Type T. + * @param Type T of List elements + * @return value of the specified attribute in the current document as a list of type T, + * or null if the attribute does not exist. + */ + + List getList(String attributeName, EnhancedType type); + + /** + * Returns a map of a specific Key-type and Value-type based on the given attribute name, key type, and value type. + * Example usage: When getting an attribute as a map of {@link UUID} keys and {@link Integer} values, use this API + * as shown below: + * {@snippet : + Map result = document.getMap("key", EnhancedType.of(String.class), EnhancedType.of(Integer.class)); + * } + * @param attributeName The name of the attribute that needs to be get as Map. + * @param keyType Enhanced Type of Key attribute, like String, UUID etc that can be represented as String Keys. + * @param valueType Enhanced Type of Values , which have converters defineds in + * {@link Builder#attributeConverterProviders(AttributeConverterProvider...)} for the document + * @return Map of type K and V with the given attribute name, key type, and value type. + * @param The type of the Map keys. + * @param The type of the Map values. + */ + Map getMap(String attributeName, EnhancedType keyType, EnhancedType valueType); + + /** + * Gets the JSON document value of the specified attribute. + * + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a JSON string; or null if the attribute either + * doesn't exist or the attribute value is null. + */ + String getJson(String attributeName); + + /** + * Gets the {@link Boolean} value for the specified attribute. + * + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a Boolean representation; or null if the attribute + * either doesn't exist or the attribute value is null. + * @throws RuntimeException + * if the attribute value cannot be converted to a Boolean representation. + * Note that the Boolean representation of 0 and 1 in Numbers and "0" and "1" in Strings is false and true, + * respectively. + * + */ + Boolean getBoolean(String attributeName); + + + /** + * Retrieves a list of {@link AttributeValue} objects for a specified attribute in a document. + * This API should be used when the elements of the list are a combination of different types such as Strings, Maps, + * and Numbers. + * If all elements in the list are of a known fixed type, use {@link EnhancedDocument#getList(String, EnhancedType)} instead. + * + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a List of {@link AttributeValue} + */ + List getListOfUnknownType(String attributeName); + + /** + * Retrieves a Map with String keys and corresponding AttributeValue objects as values for a specified attribute in a + * document. This API is particularly useful when the values of the map are of different types such as strings, maps, and + * numbers. However, if all the values in the map for a given attribute key are of a known fixed type, it is recommended to + * use the method EnhancedDocument#getMap(String, EnhancedType, EnhancedType) instead. + * + * @param attributeName Name of the attribute. + * @return value of the specified attribute in the current document as a {@link AttributeValue} + */ + Map getMapOfUnknownType(String attributeName); + + /** + * + * @return document as a JSON string. Note all binary data will become base-64 encoded in the resultant string. + */ + String toJson(); + + /** + * This method converts a document into a key-value map with the keys as String objects and the values as AttributeValue + * objects. It can be particularly useful for documents with attributes of unknown types, as it allows for further processing + * or manipulation of the document data in a AttributeValue format. + * @return Document as a String AttributeValue Key-Value Map + */ + Map toMap(); + + /** + * + * @return List of AttributeConverterProvider defined for the given Document. + */ + List attributeConverterProviders(); + + @NotThreadSafe + interface Builder { + + /** + * Appends an attribute of name attributeName with specified {@link String} value to the document builder. + * Use this method when you need to add a string value to a document. If you need to add an attribute with a value of a + * different type, such as a number or a map, use the appropriate put method instead + * + * @param attributeName the name of the attribute to be added to the document. + * @param value The string value that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putString(String attributeName, String value); + + /** + * Appends an attribute of name attributeName with specified {@link Number} value to the document builder. + * Use this method when you need to add a number value to a document. If you need to add an attribute with a value of a + * different type, such as a string or a map, use the appropriate put method instead + * @param attributeName the name of the attribute to be added to the document. + * @param value The number value that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putNumber(String attributeName, Number value); + + /** + * Appends an attribute of name attributeName with specified {@link SdkBytes} value to the document builder. + * Use this method when you need to add a binary value to a document. If you need to add an attribute with a value of a + * different type, such as a string or a map, use the appropriate put method instead + * @param attributeName the name of the attribute to be added to the document. + * @param value The byte array value that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putBytes(String attributeName, SdkBytes value); + + /** + * Use this method when you need to add a boolean value to a document. If you need to add an attribute with a value of a + * different type, such as a string or a map, use the appropriate put method instead. + * @param attributeName the name of the attribute to be added to the document. + * @param value The boolean value that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putBoolean(String attributeName, boolean value); + + /** + * Appends an attribute of name attributeName with a null value. + * Use this method is the attribute needs to explicitly set to null in Dynamo DB table. + * + * @param attributeName the name of the attribute to be added to the document. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putNull(String attributeName); + + /** + * Appends an attribute to the document builder with a Set of Strings as its value. + * This method is intended for use in DynamoDB where attribute values are stored as Sets of Strings. + * @param attributeName the name of the attribute to be added to the document. + * @param values Set of String values that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putStringSet(String attributeName, Set values); + + /** + * Appends an attribute of name attributeName with specified Set of {@link Number} values to the document builder. + * + * @param attributeName the name of the attribute to be added to the document. + * @param values Set of Number values that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putNumberSet(String attributeName, Set values); + + /** + * Appends an attribute of name attributeName with specified Set of {@link SdkBytes} values to the document builder. + * + * @param attributeName the name of the attribute to be added to the document. + * @param values Set of SdkBytes values that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putBytesSet(String attributeName, Set values); + + /** + * Appends an attribute with the specified name and a list of {@link EnhancedType} T type elements to the document + * builder. + * Use {@link EnhancedType#of(Class)} to specify the class type of the list elements. + *

For example, to insert a list of String type: + * {@snippet : + * EnhancedDocument.builder().putList(stringList, EnhancedType.of(String.class)) + * } + *

Example for inserting a List of Custom type . + * {@snippet : + * EnhancedDocument.builder().putList(stringList, EnhancedType.of(CustomClass.class)); + * } + * Note that the AttributeConverterProvider added to the DocumentBuilder should provide the converter for the class T that + * is to be inserted. + * @param attributeName the name of the attribute to be added to the document. + * @param value The list of values that needs to be set. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putList(String attributeName, List value, EnhancedType type); + + /** + * Appends an attribute named {@code attributeName} with a value of type {@link EnhancedType} T. + * Use this method to insert attribute values of custom types that have attribute converters defined in a converter + * provider. + * Example: + {@snippet : + * EnhancedDocument.builder().put("customKey", customValue, EnhancedType.of(CustomClass.class)); + *} + * Use {@link #putString(String, String)} or {@link #putNumber(String, Number)} for inserting simple value types of + * attributes. + * Use {@link #putList(String, List, EnhancedType)} or {@link #putMap(String, Map, EnhancedType, EnhancedType)} for + * inserting collections of attribute values. + * Note that the attribute converter provider added to the DocumentBuilder must provide the converter for the class T + * that is to be inserted. + @param attributeName the name of the attribute to be added to the document. + @param value the value to set. + @param type the Enhanced type of the value to set. + @return a builder instance to construct a {@link EnhancedDocument}. + @param the type of the value to set. + */ + Builder put(String attributeName, T value, EnhancedType type); + + /** + * Appends an attribute named {@code attributeName} with a value of Class type T. + * Use this method to insert attribute values of custom types that have attribute converters defined in a converter + * provider. + * Example: + {@snippet : + * EnhancedDocument.builder().put("customKey", customValue, CustomClass.class); + *} + * Use {@link #putString(String, String)} or {@link #putNumber(String, Number)} for inserting simple value types of + * attributes. + * Use {@link #putList(String, List, EnhancedType)} or {@link #putMap(String, Map, EnhancedType, EnhancedType)} for + * inserting collections of attribute values. + * Note that the attribute converter provider added to the DocumentBuilder must provide the converter for the class T + * that is to be inserted. + @param attributeName the name of the attribute to be added to the document. + @param value the value to set. + @param type the type of the value to set. + @return a builder instance to construct a {@link EnhancedDocument}. + @param the type of the value to set. + */ + Builder put(String attributeName, T value, Class type); + + /** + * Appends an attribute with the specified name and a Map containing keys and values of {@link EnhancedType} K + * and V types, + * respectively, to the document builder. Use {@link EnhancedType#of(Class)} to specify the class type of the keys and + * values. + *

For example, to insert a map with String keys and Long values: + * {@snippet : + * EnhancedDocument.builder().putMap("stringMap", mapWithStringKeyNumberValue, EnhancedType.of(String.class), + * EnhancedType.of(String.class), EnhancedType.of(Long.class)) + *} + *

For example, to insert a map of String Key and Custom Values: + * {@snippet : + * EnhancedDocument.builder().putMap("customMap", mapWithStringKeyCustomValue, EnhancedType.of(String.class), + * EnhancedType.of(String.class), EnhancedType.of(Custom.class)) + *} + * Note that the AttributeConverterProvider added to the DocumentBuilder should provide the converter for the classes + * K and V that + * are to be inserted. + * @param attributeName the name of the attribute to be added to the document + * @param value The Map of values that needs to be set. + * @param keyType Enhanced type of Key class + * @param valueType Enhanced type of Value class. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putMap(String attributeName, Map value, EnhancedType keyType, EnhancedType valueType); + + /** + Appends an attribute to the document builder with the specified name and value of a JSON document in string format. + * @param attributeName the name of the attribute to be added to the document. + * @param json JSON document in the form of a string. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder putJson(String attributeName, String json); + + + /** + * Removes a previously appended attribute. + * This can be used where a previously added attribute to the Builder is no longer needed. + * @param attributeName The attribute that needs to be removed. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder remove(String attributeName); + + /** + * Appends collection of attributeConverterProvider to the document builder. These + * AttributeConverterProvider will be used to convert any given key to custom type T. + * The first matching converter from the given provider will be selected based on the order in which they are added. + * @param attributeConverterProvider determining the {@link AttributeConverter} to use for converting a value. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder addAttributeConverterProvider(AttributeConverterProvider attributeConverterProvider); + + /** + * Sets the collection of attributeConverterProviders to the document builder. These AttributeConverterProvider will be + * used to convert value of any given key to custom type T. + * The first matching converter from the given provider will be selected based on the order in which they are added. + * @param attributeConverterProviders determining the {@link AttributeConverter} to use for converting a value. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder attributeConverterProviders(List attributeConverterProviders); + + /** + * Sets collection of attributeConverterProviders to the document builder. These AttributeConverterProvider will be + * used to convert any given key to custom type T. + * The first matching converter from the given provider will be selected based on the order in which they are added. + * @param attributeConverterProvider determining the {@link AttributeConverter} to use for converting a value. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder attributeConverterProviders(AttributeConverterProvider... attributeConverterProvider); + + /** + * Sets the attributes of the document builder to those specified in the provided JSON string, and completely replaces + * any previously set attributes. + * + * @param json a JSON document represented as a string + * @return a builder instance to construct a {@link EnhancedDocument} + * @throws NullPointerException if the json parameter is null + */ + Builder json(String json); + + /** + * Sets the attributes of the document builder to those specified in the provided from a AttributeValue Map, and + * completely replaces any previously set attributes. + * + * @param attributeValueMap - Map with Attributes as String keys and AttributeValue as Value. + * @return Builder instance to construct a {@link EnhancedDocument} + */ + Builder attributeValueMap(Map attributeValueMap); + + /** + * Builds an instance of {@link EnhancedDocument}. + * + * @return instance of {@link EnhancedDocument} implementation. + */ + EnhancedDocument build(); + } + +} diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/EnhancedClientUtils.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/EnhancedClientUtils.java index c6f54f32e5e5..1036de6eb642 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/EnhancedClientUtils.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/EnhancedClientUtils.java @@ -37,7 +37,7 @@ @SdkInternalApi public final class EnhancedClientUtils { private static final Set SPECIAL_CHARACTERS = Stream.of( - '*', '.', '-', '#', '+', ':', '/', '(', ')', + '*', '.', '-', '#', '+', ':', '/', '(', ')', ' ', '&', '<', '>', '?', '=', '!', '@', '%', '$', '|').collect(Collectors.toSet()); private EnhancedClientUtils() { diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProvider.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProvider.java index a455051adb5f..8646810102dc 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProvider.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProvider.java @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Objects; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; @@ -67,4 +68,22 @@ public AttributeConverter converterFor(EnhancedType enhancedType) { .map(p -> p.converterFor(enhancedType)) .findFirst().orElse(null); } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChainConverterProvider that = (ChainConverterProvider) o; + return Objects.equals(providerChain, that.providerChain); + } + + @Override + public int hashCode() { + return providerChain != null ? providerChain.hashCode() : 0; + } + } diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ConverterUtils.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ConverterUtils.java index 13e68b25cc01..0f6f20583187 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ConverterUtils.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ConverterUtils.java @@ -53,14 +53,19 @@ public static void validateFloat(Float input) { } public static String padLeft(int paddingAmount, int valueToPad) { + String result; String value = Integer.toString(valueToPad); - int padding = paddingAmount - value.length(); - StringBuilder result = new StringBuilder(paddingAmount); - for (int i = 0; i < padding; i++) { - result.append('0'); + if (value.length() == paddingAmount) { + result = value; + } else { + int padding = paddingAmount - value.length(); + StringBuilder sb = new StringBuilder(paddingAmount); + for (int i = 0; i < padding; i++) { + sb.append('0'); + } + result = sb.append(value).toString(); } - result.append(value); - return result.toString(); + return result; } public static String[] splitNumberOnDecimal(String valueToSplit) { diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/JsonItemAttributeConverter.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/JsonItemAttributeConverter.java new file mode 100644 index 000000000000..ce5a72278857 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/JsonItemAttributeConverter.java @@ -0,0 +1,172 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.TypeConvertingVisitor; +import software.amazon.awssdk.protocols.jsoncore.JsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.ArrayJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.BooleanJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.NullJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.NumberJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.ObjectJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.StringJsonNode; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.utils.BinaryUtils; + +/** + * An Internal converter between JsonNode and {@link AttributeValue}. + * + *

+ * This converts the Attribute Value read from the DDB to JsonNode. + */ +@SdkInternalApi +@ThreadSafe +@Immutable +public final class JsonItemAttributeConverter implements AttributeConverter { + private static final Visitor VISITOR = new Visitor(); + + private JsonItemAttributeConverter() { + } + + public static JsonItemAttributeConverter create() { + return new JsonItemAttributeConverter(); + } + + @Override + public EnhancedType type() { + return EnhancedType.of(JsonNode.class); + } + + @Override + public AttributeValueType attributeValueType() { + return AttributeValueType.M; + } + + @Override + public AttributeValue transformFrom(JsonNode input) { + JsonNodeToAttributeValueMapConverter attributeValueMapConverter = JsonNodeToAttributeValueMapConverter.instance(); + return input.visit(attributeValueMapConverter); + } + + @Override + public JsonNode transformTo(AttributeValue input) { + if (AttributeValue.fromNul(true).equals(input)) { + return NullJsonNode.instance(); + } + return EnhancedAttributeValue.fromAttributeValue(input).convert(VISITOR); + } + + private static final class Visitor extends TypeConvertingVisitor { + private Visitor() { + super(JsonNode.class, JsonItemAttributeConverter.class); + } + + @Override + public JsonNode convertMap(Map value) { + if (value == null) { + return null; + } + Map jsonNodeMap = new LinkedHashMap<>(); + value.entrySet().forEach( + k -> { + JsonNode jsonNode = this.convert(EnhancedAttributeValue.fromAttributeValue(k.getValue())); + jsonNodeMap.put(k.getKey(), jsonNode == null ? NullJsonNode.instance() : jsonNode); + }); + return new ObjectJsonNode(jsonNodeMap); + } + + @Override + public JsonNode convertString(String value) { + if (value == null) { + return null; + } + return new StringJsonNode(value); + } + + @Override + public JsonNode convertNumber(String value) { + if (value == null) { + return null; + } + return new NumberJsonNode(value); + } + + @Override + public JsonNode convertBytes(SdkBytes value) { + if (value == null) { + return null; + } + return new StringJsonNode(BinaryUtils.toBase64(value.asByteArray())); + } + + @Override + public JsonNode convertBoolean(Boolean value) { + if (value == null) { + return null; + } + return new BooleanJsonNode(value); + } + + @Override + public JsonNode convertSetOfStrings(List value) { + if (value == null) { + return null; + } + return new ArrayJsonNode(value.stream().map(StringJsonNode::new).collect(Collectors.toList())); + } + + @Override + public JsonNode convertSetOfNumbers(List value) { + if (value == null) { + return null; + } + return new ArrayJsonNode(value.stream().map(NumberJsonNode::new).collect(Collectors.toList())); + } + + @Override + public JsonNode convertSetOfBytes(List value) { + if (value == null) { + return null; + } + return new ArrayJsonNode(value.stream().map( + sdkByte -> new StringJsonNode(BinaryUtils.toBase64(sdkByte.asByteArray())) + ).collect(Collectors.toList())); + } + + @Override + public JsonNode convertListOfAttributeValues(List value) { + if (value == null) { + return null; + } + return new ArrayJsonNode(value.stream().map( + attributeValue -> { + EnhancedAttributeValue enhancedAttributeValue = EnhancedAttributeValue.fromAttributeValue(attributeValue); + return enhancedAttributeValue.isNull() ? NullJsonNode.instance() : enhancedAttributeValue.convert(VISITOR); + }).collect(Collectors.toList())); + } + } +} \ No newline at end of file diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/JsonNodeToAttributeValueMapConverter.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/JsonNodeToAttributeValueMapConverter.java new file mode 100644 index 000000000000..f7a8b6643f34 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/JsonNodeToAttributeValueMapConverter.java @@ -0,0 +1,81 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.protocols.jsoncore.JsonNode; +import software.amazon.awssdk.protocols.jsoncore.JsonNodeVisitor; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +@SdkInternalApi +public class JsonNodeToAttributeValueMapConverter implements JsonNodeVisitor { + + private static final JsonNodeToAttributeValueMapConverter INSTANCE = new JsonNodeToAttributeValueMapConverter(); + + private JsonNodeToAttributeValueMapConverter() { + } + + public static JsonNodeToAttributeValueMapConverter instance() { + return INSTANCE; + } + + @Override + public AttributeValue visitNull() { + return AttributeValue.fromNul(true); + } + + @Override + public AttributeValue visitBoolean(boolean bool) { + return AttributeValue.builder().bool(bool).build(); + } + + @Override + public AttributeValue visitNumber(String number) { + return AttributeValue.builder().n(number).build(); + } + + @Override + public AttributeValue visitString(String string) { + return AttributeValue.builder().s(string).build(); + } + + @Override + public AttributeValue visitArray(List array) { + return AttributeValue.builder().l(array.stream() + .map(node -> node.visit(this)) + .collect(Collectors.toList())) + .build(); + } + + @Override + public AttributeValue visitObject(Map object) { + return AttributeValue.builder().m(object.entrySet().stream() + .collect(Collectors.toMap( + Map.Entry::getKey, + entry -> entry.getValue().visit(this), + (left, right) -> left, LinkedHashMap::new))) + .build(); + } + + @Override + public AttributeValue visitEmbeddedObject(Object embeddedObject) { + throw new UnsupportedOperationException("Embedded objects are not supported within Document types."); + } +} \ No newline at end of file diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/SdkNumberAttributeConverter.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/SdkNumberAttributeConverter.java new file mode 100644 index 000000000000..80b983fa2076 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/attribute/SdkNumberAttributeConverter.java @@ -0,0 +1,93 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute; + +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.TypeConvertingVisitor; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.string.SdkNumberStringConverter; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +/** + * A converter between {@link SdkNumber} and {@link AttributeValue}. + * + *

+ * This stores values in DynamoDB as a number. + * + *

+ * This supports reading the full range of integers supported by DynamoDB. For smaller numbers, consider using + * {@link ShortAttributeConverter}, {@link IntegerAttributeConverter} or {@link LongAttributeConverter}. + * + * This can be created via {@link #create()}. + */ +@SdkInternalApi +@ThreadSafe +@Immutable +public final class SdkNumberAttributeConverter implements AttributeConverter { + private static final Visitor VISITOR = new Visitor(); + private static final SdkNumberStringConverter STRING_CONVERTER = SdkNumberStringConverter.create(); + + private SdkNumberAttributeConverter() { + } + + public static SdkNumberAttributeConverter create() { + return new SdkNumberAttributeConverter(); + } + + @Override + public EnhancedType type() { + return EnhancedType.of(SdkNumber.class); + } + + @Override + public AttributeValueType attributeValueType() { + return AttributeValueType.N; + } + + @Override + public AttributeValue transformFrom(SdkNumber input) { + return AttributeValue.builder().n(STRING_CONVERTER.toString(input)).build(); + } + + @Override + public SdkNumber transformTo(AttributeValue input) { + if (input.n() != null) { + return EnhancedAttributeValue.fromNumber(input.n()).convert(VISITOR); + } + return EnhancedAttributeValue.fromAttributeValue(input).convert(VISITOR); + } + + private static final class Visitor extends TypeConvertingVisitor { + private Visitor() { + super(SdkNumber.class, SdkNumberAttributeConverter.class); + } + + @Override + public SdkNumber convertString(String value) { + return STRING_CONVERTER.fromString(value); + } + + @Override + public SdkNumber convertNumber(String value) { + return STRING_CONVERTER.fromString(value); + } + } +} diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/string/SdkNumberStringConverter.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/string/SdkNumberStringConverter.java new file mode 100644 index 000000000000..c34ecfb982c3 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/string/SdkNumberStringConverter.java @@ -0,0 +1,51 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.internal.converter.string; + +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.StringConverter; + +/** + * A converter between {@link SdkNumber} and {@link String}. + * + *

+ * This converts values using {@link SdkNumber#toString()} and {@link SdkNumber#fromString(String)}}. + */ +@SdkInternalApi +@ThreadSafe +@Immutable +public class SdkNumberStringConverter implements StringConverter { + private SdkNumberStringConverter() { + } + + public static SdkNumberStringConverter create() { + return new SdkNumberStringConverter(); + } + + @Override + public EnhancedType type() { + return EnhancedType.of(SdkNumber.class); + } + + @Override + public SdkNumber fromString(String string) { + return SdkNumber.fromString(string); + } +} diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/document/DefaultEnhancedDocument.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/document/DefaultEnhancedDocument.java new file mode 100644 index 000000000000..1ec72a21b82a --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/document/DefaultEnhancedDocument.java @@ -0,0 +1,506 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.internal.document; + +import static java.util.Collections.unmodifiableList; +import static java.util.Collections.unmodifiableMap; +import static software.amazon.awssdk.enhanced.dynamodb.internal.document.JsonStringFormatHelper.addEscapeCharacters; +import static software.amazon.awssdk.enhanced.dynamodb.internal.document.JsonStringFormatHelper.stringValue; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.ChainConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.StringConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.JsonItemAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ListAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.MapAttributeConverter; +import software.amazon.awssdk.protocols.jsoncore.JsonNode; +import software.amazon.awssdk.protocols.jsoncore.JsonNodeParser; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.utils.Lazy; +import software.amazon.awssdk.utils.StringUtils; +import software.amazon.awssdk.utils.Validate; + + +/** + * Default implementation of {@link EnhancedDocument} used by the SDK to create Enhanced Documents. Attributes are initially saved + * as a String-Object Map when documents are created using the builder. Conversion to an AttributeValueMap is done lazily when + * values are accessed. When the document is retrieved from DynamoDB, the AttributeValueMap is internally saved as the attribute + * value map. Custom objects or collections are saved in the enhancedTypeMap to preserve the generic class information. Note that + * no default ConverterProviders are assigned, so ConverterProviders must be passed in the builder when creating enhanced + * documents. + */ +@Immutable +@SdkInternalApi +public class DefaultEnhancedDocument implements EnhancedDocument { + + private static final Lazy NULL_SET_ERROR = new Lazy<>( + () -> new IllegalStateException("Set must not have null values.")); + + private static final JsonItemAttributeConverter JSON_ATTRIBUTE_CONVERTER = JsonItemAttributeConverter.create(); + private static final String VALIDATE_TYPE_ERROR = "Values of type %s are not supported by this API, please use the " + + "%s%s API instead"; + private static final AttributeValue NULL_ATTRIBUTE_VALUE = AttributeValue.fromNul(true); + private final Map nonAttributeValueMap; + private final Map enhancedTypeMap; + private final List attributeConverterProviders; + private final ChainConverterProvider attributeConverterChain; + private final Lazy> attributeValueMap = new Lazy<>(this::initializeAttributeValueMap); + + public DefaultEnhancedDocument(DefaultBuilder builder) { + this.nonAttributeValueMap = unmodifiableMap(new LinkedHashMap<>(builder.nonAttributeValueMap)); + this.attributeConverterProviders = unmodifiableList(new ArrayList<>(builder.attributeConverterProviders)); + this.attributeConverterChain = ChainConverterProvider.create(attributeConverterProviders); + this.enhancedTypeMap = unmodifiableMap(builder.enhancedTypeMap); + } + + public static Builder builder() { + return new DefaultBuilder(); + } + + public static AttributeConverter converterForClass(EnhancedType type, + ChainConverterProvider chainConverterProvider) { + + if (type.rawClass().isAssignableFrom(List.class)) { + return (AttributeConverter) ListAttributeConverter + .create(converterForClass(type.rawClassParameters().get(0), chainConverterProvider)); + } + if (type.rawClass().isAssignableFrom(Map.class)) { + return (AttributeConverter) MapAttributeConverter.mapConverter( + StringConverterProvider.defaultProvider().converterFor(type.rawClassParameters().get(0)), + converterForClass(type.rawClassParameters().get(1), chainConverterProvider)); + } + return Optional.ofNullable(chainConverterProvider.converterFor(type)) + .orElseThrow(() -> new IllegalStateException( + "AttributeConverter not found for class " + type + + ". Please add an AttributeConverterProvider for this type. If it is a default type, add the " + + "DefaultAttributeConverterProvider to the builder.")); + } + + @Override + public Builder toBuilder() { + return new DefaultBuilder(this); + } + + @Override + public List attributeConverterProviders() { + return attributeConverterProviders; + } + + @Override + public boolean isNull(String attributeName) { + if (!isPresent(attributeName)) { + return false; + } + Object attributeValue = nonAttributeValueMap.get(attributeName); + return attributeValue == null || NULL_ATTRIBUTE_VALUE.equals(attributeValue); + } + + @Override + public boolean isPresent(String attributeName) { + return nonAttributeValueMap.containsKey(attributeName); + } + + @Override + public T get(String attributeName, EnhancedType type) { + AttributeValue attributeValue = attributeValueMap.getValue().get(attributeName); + if (attributeValue == null) { + return null; + } + return fromAttributeValue(attributeValue, type); + } + + @Override + public String getString(String attributeName) { + return get(attributeName, String.class); + } + + @Override + public SdkNumber getNumber(String attributeName) { + return get(attributeName, SdkNumber.class); + } + + @Override + public T get(String attributeName, Class clazz) { + checkAndValidateClass(clazz, false); + return get(attributeName, EnhancedType.of(clazz)); + } + + @Override + public SdkBytes getBytes(String attributeName) { + return get(attributeName, SdkBytes.class); + } + + @Override + public Set getStringSet(String attributeName) { + return get(attributeName, EnhancedType.setOf(String.class)); + + } + + @Override + public Set getNumberSet(String attributeName) { + return get(attributeName, EnhancedType.setOf(SdkNumber.class)); + } + + @Override + public Set getBytesSet(String attributeName) { + return get(attributeName, EnhancedType.setOf(SdkBytes.class)); + } + + @Override + public List getList(String attributeName, EnhancedType type) { + return get(attributeName, EnhancedType.listOf(type)); + } + + @Override + public Map getMap(String attributeName, EnhancedType keyType, EnhancedType valueType) { + return get(attributeName, EnhancedType.mapOf(keyType, valueType)); + } + + @Override + public String getJson(String attributeName) { + AttributeValue attributeValue = attributeValueMap.getValue().get(attributeName); + if (attributeValue == null) { + return null; + } + return stringValue(JSON_ATTRIBUTE_CONVERTER.transformTo(attributeValue)); + } + + @Override + public Boolean getBoolean(String attributeName) { + return get(attributeName, Boolean.class); + } + + @Override + public List getListOfUnknownType(String attributeName) { + AttributeValue attributeValue = attributeValueMap.getValue().get(attributeName); + if (attributeValue == null) { + return null; + } + if (!attributeValue.hasL()) { + throw new IllegalStateException("Cannot get a List from attribute value of Type " + attributeValue.type()); + } + return attributeValue.l(); + } + + @Override + public Map getMapOfUnknownType(String attributeName) { + AttributeValue attributeValue = attributeValueMap.getValue().get(attributeName); + if (attributeValue == null) { + return null; + } + if (!attributeValue.hasM()) { + throw new IllegalStateException("Cannot get a Map from attribute value of Type " + attributeValue.type()); + } + return attributeValue.m(); + } + + @Override + public String toJson() { + if (nonAttributeValueMap.isEmpty()) { + return "{}"; + } + return attributeValueMap.getValue().entrySet().stream() + .map(entry -> "\"" + + addEscapeCharacters(entry.getKey()) + + "\":" + + stringValue(JSON_ATTRIBUTE_CONVERTER.transformTo(entry.getValue()))) + .collect(Collectors.joining(",", "{", "}")); + } + + @Override + public Map toMap() { + return attributeValueMap.getValue(); + } + + private Map initializeAttributeValueMap() { + Map result = new LinkedHashMap<>(this.nonAttributeValueMap.size()); + this.nonAttributeValueMap.forEach((k, v) -> { + if (v == null) { + result.put(k, NULL_ATTRIBUTE_VALUE); + } else { + + result.put(k, toAttributeValue(v, enhancedTypeMap.getOrDefault(k, EnhancedType.of(v.getClass())))); + } + + }); + return result; + } + + private AttributeValue toAttributeValue(T value, EnhancedType enhancedType) { + if (value instanceof AttributeValue) { + return (AttributeValue) value; + } + return converterForClass(enhancedType, attributeConverterChain).transformFrom(value); + } + + private T fromAttributeValue(AttributeValue attributeValue, EnhancedType type) { + if (type.rawClass().equals(AttributeValue.class)) { + return (T) attributeValue; + } + return converterForClass(type, attributeConverterChain).transformTo(attributeValue); + } + + public static class DefaultBuilder implements EnhancedDocument.Builder { + + Map nonAttributeValueMap = new LinkedHashMap<>(); + Map enhancedTypeMap = new HashMap<>(); + + List attributeConverterProviders = new ArrayList<>(); + + private DefaultBuilder() { + } + + + public DefaultBuilder(DefaultEnhancedDocument enhancedDocument) { + this.nonAttributeValueMap = new LinkedHashMap<>(enhancedDocument.nonAttributeValueMap); + this.attributeConverterProviders = new ArrayList<>(enhancedDocument.attributeConverterProviders); + this.enhancedTypeMap = new HashMap<>(enhancedDocument.enhancedTypeMap); + } + + public Builder putObject(String attributeName, Object value) { + putObject(attributeName, value, false); + return this; + } + + private Builder putObject(String attributeName, Object value, boolean ignoreNullValue) { + if (!ignoreNullValue) { + checkInvalidAttribute(attributeName, value); + } else { + validateAttributeName(attributeName); + } + enhancedTypeMap.remove(attributeName); + nonAttributeValueMap.remove(attributeName); + nonAttributeValueMap.put(attributeName, value); + return this; + } + + @Override + public Builder putString(String attributeName, String value) { + return putObject(attributeName, value); + } + + @Override + public Builder putNumber(String attributeName, Number value) { + return putObject(attributeName, value); + } + + @Override + public Builder putBytes(String attributeName, SdkBytes value) { + return putObject(attributeName, value); + } + + @Override + public Builder putBoolean(String attributeName, boolean value) { + return putObject(attributeName, Boolean.valueOf(value)); + } + + @Override + public Builder putNull(String attributeName) { + return putObject(attributeName, null, true); + } + + @Override + public Builder putStringSet(String attributeName, Set values) { + checkInvalidAttribute(attributeName, values); + if (values.stream().anyMatch(Objects::isNull)) { + throw NULL_SET_ERROR.getValue(); + } + return put(attributeName, values, EnhancedType.setOf(String.class)); + } + + @Override + public Builder putNumberSet(String attributeName, Set values) { + checkInvalidAttribute(attributeName, values); + Set sdkNumberSet = + values.stream().map(number -> { + if (number == null) { + throw NULL_SET_ERROR.getValue(); + } + return SdkNumber.fromString(number.toString()); + }).collect(Collectors.toCollection(LinkedHashSet::new)); + return put(attributeName, sdkNumberSet, EnhancedType.setOf(SdkNumber.class)); + } + + @Override + public Builder putBytesSet(String attributeName, Set values) { + checkInvalidAttribute(attributeName, values); + if (values.stream().anyMatch(Objects::isNull)) { + throw NULL_SET_ERROR.getValue(); + } + return put(attributeName, values, EnhancedType.setOf(SdkBytes.class)); + } + + @Override + public Builder putList(String attributeName, List value, EnhancedType type) { + checkInvalidAttribute(attributeName, value); + Validate.paramNotNull(type, "type"); + return put(attributeName, value, EnhancedType.listOf(type)); + } + + @Override + public Builder put(String attributeName, T value, EnhancedType type) { + checkInvalidAttribute(attributeName, value); + Validate.notNull(attributeName, "attributeName cannot be null."); + enhancedTypeMap.put(attributeName, type); + nonAttributeValueMap.remove(attributeName); + nonAttributeValueMap.put(attributeName, value); + return this; + } + + @Override + public Builder put(String attributeName, T value, Class type) { + checkAndValidateClass(type, true); + put(attributeName, value, EnhancedType.of(type)); + return this; + } + + @Override + public Builder putMap(String attributeName, Map value, EnhancedType keyType, + EnhancedType valueType) { + checkInvalidAttribute(attributeName, value); + Validate.notNull(attributeName, "attributeName cannot be null."); + Validate.paramNotNull(keyType, "keyType"); + Validate.paramNotNull(valueType, "valueType"); + return put(attributeName, value, EnhancedType.mapOf(keyType, valueType)); + } + + @Override + public Builder putJson(String attributeName, String json) { + checkInvalidAttribute(attributeName, json); + return putObject(attributeName, getAttributeValueFromJson(json)); + } + + @Override + public Builder remove(String attributeName) { + Validate.isTrue(!StringUtils.isEmpty(attributeName), "Attribute name must not be null or empty"); + nonAttributeValueMap.remove(attributeName); + return this; + } + + @Override + public Builder addAttributeConverterProvider(AttributeConverterProvider attributeConverterProvider) { + Validate.paramNotNull(attributeConverterProvider, "attributeConverterProvider"); + attributeConverterProviders.add(attributeConverterProvider); + return this; + } + + @Override + public Builder attributeConverterProviders(List attributeConverterProviders) { + Validate.paramNotNull(attributeConverterProviders, "attributeConverterProviders"); + this.attributeConverterProviders.clear(); + this.attributeConverterProviders.addAll(attributeConverterProviders); + return this; + } + + @Override + public Builder attributeConverterProviders(AttributeConverterProvider... attributeConverterProviders) { + Validate.paramNotNull(attributeConverterProviders, "attributeConverterProviders"); + return attributeConverterProviders(Arrays.asList(attributeConverterProviders)); + } + + @Override + public Builder json(String json) { + Validate.paramNotNull(json, "json"); + AttributeValue attributeValue = getAttributeValueFromJson(json); + if (attributeValue != null && attributeValue.hasM()) { + nonAttributeValueMap = new LinkedHashMap<>(attributeValue.m()); + } + return this; + } + + @Override + public Builder attributeValueMap(Map attributeValueMap) { + Validate.paramNotNull(attributeConverterProviders, "attributeValueMap"); + nonAttributeValueMap.clear(); + attributeValueMap.forEach(this::putObject); + return this; + } + + @Override + public EnhancedDocument build() { + return new DefaultEnhancedDocument(this); + } + + private static AttributeValue getAttributeValueFromJson(String json) { + JsonNodeParser build = JsonNodeParser.builder().build(); + JsonNode jsonNode = build.parse(json); + if (jsonNode == null) { + throw new IllegalArgumentException("Could not parse argument json " + json); + } + return JSON_ATTRIBUTE_CONVERTER.transformFrom(jsonNode); + } + + private static void checkInvalidAttribute(String attributeName, Object value) { + validateAttributeName(attributeName); + Validate.notNull(value, "Value for %s must not be null. Use putNull API to insert a Null value", attributeName); + } + + private static void validateAttributeName(String attributeName) { + Validate.isTrue(attributeName != null && !attributeName.trim().isEmpty(), + "Attribute name must not be null or empty."); + } + + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DefaultEnhancedDocument that = (DefaultEnhancedDocument) o; + return nonAttributeValueMap.equals(that.nonAttributeValueMap) && Objects.equals(enhancedTypeMap, that.enhancedTypeMap) + && Objects.equals(attributeValueMap, that.attributeValueMap) && Objects.equals(attributeConverterProviders, + that.attributeConverterProviders) + && attributeConverterChain.equals(that.attributeConverterChain); + } + + @Override + public int hashCode() { + int result = nonAttributeValueMap != null ? nonAttributeValueMap.hashCode() : 0; + result = 31 * result + (attributeConverterProviders != null ? attributeConverterProviders.hashCode() : 0); + return result; + } + + private static void checkAndValidateClass(Class type, boolean isPut) { + Validate.paramNotNull(type, "type"); + Validate.isTrue(!type.isAssignableFrom(List.class), + String.format(VALIDATE_TYPE_ERROR, "List", isPut ? "put" : "get", "List")); + Validate.isTrue(!type.isAssignableFrom(Map.class), + String.format(VALIDATE_TYPE_ERROR, "Map", isPut ? "put" : "get", "Map")); + + } +} \ No newline at end of file diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/document/JsonStringFormatHelper.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/document/JsonStringFormatHelper.java new file mode 100644 index 000000000000..4fa04cb1b8f0 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/document/JsonStringFormatHelper.java @@ -0,0 +1,102 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.internal.document; + +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; +import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.protocols.jsoncore.JsonNode; + +@SdkInternalApi +public final class JsonStringFormatHelper { + + private JsonStringFormatHelper() { + } + + /** + * Helper function to convert a JsonNode to Json String representation + * + * @param jsonNode The JsonNode that needs to be converted to Json String. + * @return Json String of Json Node. + */ + public static String stringValue(JsonNode jsonNode) { + if (jsonNode.isArray()) { + return StreamSupport.stream(jsonNode.asArray().spliterator(), false) + .map(JsonStringFormatHelper::stringValue) + .collect(Collectors.joining(",", "[", "]")); + } + if (jsonNode.isObject()) { + return mapToString(jsonNode); + } + return jsonNode.isString() ? "\"" + addEscapeCharacters(jsonNode.text()) + "\"" : jsonNode.toString(); + } + + /** + * Escapes characters for a give given string + * + * @param input Input string + * @return String with escaped characters. + */ + public static String addEscapeCharacters(String input) { + StringBuilder output = new StringBuilder(); + for (int i = 0; i < input.length(); i++) { + char ch = input.charAt(i); + switch (ch) { + case '\\': + output.append("\\\\"); // escape backslash with a backslash + break; + case '\n': + output.append("\\n"); // newline character + break; + case '\r': + output.append("\\r"); // carriage return character + break; + case '\t': + output.append("\\t"); // tab character + break; + case '\f': + output.append("\\f"); // form feed + break; + case '\"': + output.append("\\\""); // double-quote character + break; + case '\'': + output.append("\\'"); // single-quote character + break; + default: + output.append(ch); + break; + } + } + return output.toString(); + } + + private static String mapToString(JsonNode jsonNode) { + Map value = jsonNode.asObject(); + + if (value.isEmpty()) { + return "{}"; + } + + StringBuilder output = new StringBuilder(); + output.append("{"); + value.forEach((k, v) -> output.append("\"").append(k).append("\":") + .append(stringValue(v)).append(",")); + output.setCharAt(output.length() - 1, '}'); + return output.toString(); + } +} diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.java index efe41d41d7b1..5d08ee4a3ae3 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.java @@ -589,8 +589,15 @@ private B constructNewBuilder() { @Override public AttributeConverter converterForAttribute(Object key) { ResolvedImmutableAttribute resolvedImmutableAttribute = indexedMappers.get(key); - return resolvedImmutableAttribute != null - ? resolvedImmutableAttribute.attributeConverter() - : null; + if (resolvedImmutableAttribute != null) { + return resolvedImmutableAttribute.attributeConverter(); + } + + // If no resolvedAttribute is found look through flattened attributes + FlattenedMapper flattenedMapper = indexedFlattenedMappers.get(key); + if (flattenedMapper != null) { + return (AttributeConverter) flattenedMapper.getOtherItemTableSchema().converterForAttribute(key); + } + return null; } } diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/model/UpdateItemEnhancedResponse.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/model/UpdateItemEnhancedResponse.java index cdf0200f09da..ca7d14ecfcbe 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/model/UpdateItemEnhancedResponse.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/model/UpdateItemEnhancedResponse.java @@ -23,6 +23,7 @@ import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; import software.amazon.awssdk.services.dynamodb.model.ConsumedCapacity; import software.amazon.awssdk.services.dynamodb.model.ItemCollectionMetrics; +import software.amazon.awssdk.services.dynamodb.model.ReturnValue; import software.amazon.awssdk.services.dynamodb.model.UpdateItemResponse; /** @@ -46,7 +47,8 @@ private UpdateItemEnhancedResponse(Builder builder) { } /** - * The attribute values as they appeared before the {@code UpdateItem} operation. + * The returned attribute values. These correspond to the DynamoDB {@link ReturnValue} setting. By default, + * the attributes reflect the values after the {@code UpdateItem} operation has been applied ({@link ReturnValue#ALL_NEW}). */ public T attributes() { return attributes; diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/attribute/JsonItemAttributeConverterTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/attribute/JsonItemAttributeConverterTest.java new file mode 100644 index 000000000000..b264671e43fe --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/attribute/JsonItemAttributeConverterTest.java @@ -0,0 +1,104 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.converters.attribute; + +import static org.assertj.core.api.Assertions.assertThat; +import static software.amazon.awssdk.enhanced.dynamodb.converters.attribute.ConverterTestUtils.transformFrom; +import static software.amazon.awssdk.enhanced.dynamodb.converters.attribute.ConverterTestUtils.transformTo; +import static software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnhancedAttributeValue.fromNumber; +import static software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnhancedAttributeValue.fromString; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.CharacterArrayAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.JsonItemAttributeConverter; +import software.amazon.awssdk.protocols.jsoncore.JsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.ArrayJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.BooleanJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.NumberJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.ObjectJsonNode; +import software.amazon.awssdk.protocols.jsoncore.internal.StringJsonNode; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +class JsonItemAttributeConverterTest { + + @Test + void jsonAttributeConverterWithString() { + JsonItemAttributeConverter converter = JsonItemAttributeConverter.create(); + StringJsonNode stringJsonNode = new StringJsonNode("testString"); + assertThat(transformFrom(converter, stringJsonNode).s()).isEqualTo("testString"); + assertThat(transformTo(converter, AttributeValue.fromS("testString"))).isEqualTo(stringJsonNode); + } + + @Test + void jsonAttributeConverterWithBoolean() { + JsonItemAttributeConverter converter = JsonItemAttributeConverter.create(); + BooleanJsonNode booleanJsonNode = new BooleanJsonNode(true); + assertThat(transformFrom(converter, booleanJsonNode).bool()).isTrue(); + assertThat(transformFrom(converter, booleanJsonNode).s()).isNull(); + assertThat(transformTo(converter, AttributeValue.fromBool(true))).isEqualTo(booleanJsonNode); + } + + @Test + void jsonAttributeConverterWithNumber() { + JsonItemAttributeConverter converter = JsonItemAttributeConverter.create(); + NumberJsonNode numberJsonNode = new NumberJsonNode("20"); + assertThat(transformFrom(converter, numberJsonNode).n()).isEqualTo("20"); + assertThat(transformFrom(converter, numberJsonNode).s()).isNull(); + assertThat(transformTo(converter, AttributeValue.fromN("20"))).isEqualTo(numberJsonNode); + } + + @Test + void jsonAttributeConverterWithSdkBytes() { + JsonItemAttributeConverter converter = JsonItemAttributeConverter.create(); + StringJsonNode sdkByteJsonNode = new StringJsonNode(SdkBytes.fromUtf8String("a").asUtf8String()); + + assertThat(transformFrom(converter, sdkByteJsonNode).s()).isEqualTo(SdkBytes.fromUtf8String("a").asUtf8String()); + assertThat(transformFrom(converter, sdkByteJsonNode).b()).isNull(); + assertThat(transformTo(converter, AttributeValue.fromB(SdkBytes.fromUtf8String("a")))).isEqualTo(new StringJsonNode("YQ==")); + } + + @Test + void jsonAttributeConverterWithSet() { + JsonItemAttributeConverter converter = JsonItemAttributeConverter.create(); + ArrayJsonNode arrayJsonNode = + new ArrayJsonNode(Stream.of(new NumberJsonNode("10"), new NumberJsonNode("20")).collect(Collectors.toList())); + + assertThat(transformFrom(converter, arrayJsonNode).l()) + .isEqualTo(Stream.of(AttributeValue.fromN("10"), AttributeValue.fromN("20")) + .collect(Collectors.toList())); + } + + @Test + void jsonAttributeWithMap(){ + + Map jsonNodeMap = new LinkedHashMap<>(); + jsonNodeMap.put("key", new StringJsonNode("value")); + ObjectJsonNode objectJsonNode = new ObjectJsonNode(jsonNodeMap); + JsonItemAttributeConverter converter = JsonItemAttributeConverter.create(); + AttributeValue convertedMap = converter.transformFrom(objectJsonNode); + + assertThat(convertedMap.hasM()).isTrue(); + Map expectedMap = new LinkedHashMap<>(); + expectedMap.put("key", AttributeValue.fromS("value")); + assertThat(convertedMap).isEqualTo(AttributeValue.fromM(expectedMap)); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomAttributeForDocumentConverterProvider.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomAttributeForDocumentConverterProvider.java new file mode 100644 index 000000000000..1222333c7a71 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomAttributeForDocumentConverterProvider.java @@ -0,0 +1,43 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.converters.document; + +import java.util.Map; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnhancedAttributeValue; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.string.IntegerStringConverter; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.utils.ImmutableMap; + +public class CustomAttributeForDocumentConverterProvider implements AttributeConverterProvider { + private final Map, AttributeConverter> converterCache = ImmutableMap.of( + EnhancedType.of(CustomClassForDocumentAPI.class), new CustomClassForDocumentAttributeConverter(), + EnhancedType.of(Integer.class), new CustomIntegerAttributeConverter() + ); + + @SuppressWarnings("unchecked") + @Override + public AttributeConverter converterFor(EnhancedType enhancedType) { + return (AttributeConverter) converterCache.get(enhancedType); + } + + public static CustomAttributeForDocumentConverterProvider create(){ + return new CustomAttributeForDocumentConverterProvider(); + } +} \ No newline at end of file diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomClassForDocumentAPI.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomClassForDocumentAPI.java new file mode 100644 index 000000000000..97192240cb39 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomClassForDocumentAPI.java @@ -0,0 +1,254 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.converters.document; + +import java.math.BigDecimal; +import java.time.Instant; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import software.amazon.awssdk.core.SdkBytes; + +public class CustomClassForDocumentAPI { + + public boolean aBoolean() { + return aBoolean; + } + + public BigDecimal bigDecimal() { + return bigDecimal; + } + + public Set bigDecimalSet() { + return bigDecimalSet; + } + + public SdkBytes binary() { + return binary; + } + + public Set binarySet() { + return binarySet; + } + + + public Set booleanSet() { + return booleanSet; + } + + public List customClassList() { + return customClassForDocumentAPIList; + } + + public Long longNumber() { + return longNumber; + } + + public Set longSet() { + return longSet; + } + public String string() { + return string; + } + + public Set stringSet() { + return stringSet; + } + + public List instantList() { + return instantList; + } + + public Map customClassMap() { + return customClassMap; + } + + public CustomClassForDocumentAPI innerCustomClass() { + return innerCustomClassForDocumentAPI; + } + + private final Set stringSet; + private final SdkBytes binary; + private final Set binarySet; + private final boolean aBoolean; + private final Set booleanSet; + private final Long longNumber; + private final Set longSet; + private final BigDecimal bigDecimal; + private final Set bigDecimalSet; + private final List customClassForDocumentAPIList; + private final List instantList; + private final Map customClassMap; + private final CustomClassForDocumentAPI innerCustomClassForDocumentAPI; + + private final String string; + + + public static Builder builder(){ + return new Builder(); + } + + public CustomClassForDocumentAPI(Builder builder) { + this.string = builder.string; + this.stringSet = builder.stringSet; + this.binary = builder.binary; + this.binarySet = builder.binarySet; + this.aBoolean = builder.aBoolean; + this.booleanSet = builder.booleanSet; + this.longNumber = builder.longNumber; + this.longSet = builder.longSet; + this.bigDecimal = builder.bigDecimal; + this.bigDecimalSet = builder.bigDecimalSet; + this.customClassForDocumentAPIList = builder.customClassForDocumentAPIList; + this.instantList = builder.instantList; + this.customClassMap = builder.customClassMap; + this.innerCustomClassForDocumentAPI = builder.innerCustomClassForDocumentAPI; + } + + public static final class Builder { + private String string; + private Set stringSet; + private SdkBytes binary; + private Set binarySet; + private boolean aBoolean; + private Set booleanSet; + private Long longNumber; + private Set longSet; + private BigDecimal bigDecimal; + private Set bigDecimalSet; + private List customClassForDocumentAPIList; + private List instantList; + private Map customClassMap; + private CustomClassForDocumentAPI innerCustomClassForDocumentAPI; + + private Builder() { + } + + + public Builder string(String string) { + this.string = string; + return this; + } + + public Builder stringSet(Set stringSet) { + this.stringSet = stringSet; + return this; + } + + public Builder binary(SdkBytes binary) { + this.binary = binary; + return this; + } + + public Builder binarySet(Set binarySet) { + this.binarySet = binarySet; + return this; + } + + public Builder aBoolean(boolean aBoolean) { + this.aBoolean = aBoolean; + return this; + } + + public Builder booleanSet(Set booleanSet) { + this.booleanSet = booleanSet; + return this; + } + + public Builder longNumber(Long longNumber) { + this.longNumber = longNumber; + return this; + } + + public Builder longSet(Set longSet) { + this.longSet = longSet; + return this; + } + + public Builder bigDecimal(BigDecimal bigDecimal) { + this.bigDecimal = bigDecimal; + return this; + } + + public Builder bigDecimalSet(Set bigDecimalSet) { + this.bigDecimalSet = bigDecimalSet; + return this; + } + + public Builder customClassList(List customClassForDocumentAPIList) { + this.customClassForDocumentAPIList = customClassForDocumentAPIList; + return this; + } + + public Builder instantList(List instantList) { + this.instantList = instantList; + return this; + } + + public Builder customClassMap(Map customClassMap) { + this.customClassMap = customClassMap; + return this; + } + + public Builder innerCustomClass(CustomClassForDocumentAPI innerCustomClassForDocumentAPI) { + this.innerCustomClassForDocumentAPI = innerCustomClassForDocumentAPI; + return this; + } + + public CustomClassForDocumentAPI build() { + return new CustomClassForDocumentAPI(this); + } + } + + @Override + public String toString() { + return "CustomClassForDocumentAPI{" + + "aBoolean=" + aBoolean + + ", bigDecimal=" + bigDecimal + + ", bigDecimalSet=" + bigDecimalSet + + ", binary=" + binary + + ", binarySet=" + binarySet + + ", booleanSet=" + booleanSet + + ", customClassForDocumentAPIList=" + customClassForDocumentAPIList + + ", customClassMap=" + customClassMap + + ", innerCustomClassForDocumentAPI=" + innerCustomClassForDocumentAPI + + ", instantList=" + instantList + + ", longNumber=" + longNumber + + ", longSet=" + longSet + + ", string='" + string + '\'' + + ", stringSet=" + stringSet + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomClassForDocumentAPI that = (CustomClassForDocumentAPI) o; + return aBoolean == that.aBoolean && Objects.equals(string, that.string) && Objects.equals(stringSet, that.stringSet) && Objects.equals(binary, that.binary) && Objects.equals(binarySet, that.binarySet) && Objects.equals(booleanSet, that.booleanSet) && Objects.equals(longNumber, that.longNumber) && Objects.equals(longSet, that.longSet) && (bigDecimal == null ? that.bigDecimal == null : bigDecimal.compareTo(that.bigDecimal) == 0) && Objects.equals(bigDecimalSet, that.bigDecimalSet) && Objects.equals(customClassForDocumentAPIList, that.customClassForDocumentAPIList) && Objects.equals(instantList, that.instantList) && Objects.equals(customClassMap, that.customClassMap) && Objects.equals(innerCustomClassForDocumentAPI, that.innerCustomClassForDocumentAPI); + } + + @Override + public int hashCode() { + return Objects.hash(string, stringSet, binary, binarySet, aBoolean, booleanSet, longNumber, longSet, bigDecimal, + bigDecimalSet, customClassForDocumentAPIList, instantList, customClassMap, innerCustomClassForDocumentAPI); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomClassForDocumentAttributeConverter.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomClassForDocumentAttributeConverter.java new file mode 100644 index 000000000000..29e02ad87482 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomClassForDocumentAttributeConverter.java @@ -0,0 +1,161 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.converters.document; + +import java.time.Instant; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.BigDecimalAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.BooleanAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ByteArrayAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnhancedAttributeValue; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.InstantAsStringAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ListAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.LongAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.SetAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +public class CustomClassForDocumentAttributeConverter implements AttributeConverter { + + final static Integer DEFAULT_INCREMENT = 10; + + @Override + public AttributeValue transformFrom(CustomClassForDocumentAPI input) { + + if(input == null){ + return null; + } + Map attributeValueMap = new LinkedHashMap<>(); + // Maintain the Alphabetical Order ,so that expected json matches + if(input.booleanSet() != null){ + attributeValueMap.put("booleanSet", + AttributeValue.fromL(input.booleanSet().stream().map(b -> AttributeValue.fromBool(b)).collect(Collectors.toList()))); + } + if(input.customClassList() != null){ + attributeValueMap.put("customClassList", convertCustomList(input.customClassList())); + } + if (input.innerCustomClass() != null){ + attributeValueMap.put("innerCustomClass", transformFrom(input.innerCustomClass())); + } + if(input.instantList() != null){ + attributeValueMap.put("instantList", convertInstantList(input.instantList())); + } + if(input.longNumber() != null){ + attributeValueMap.put("longNumber", AttributeValue.fromN(input.longNumber().toString())); + } + if(input.string() != null){ + attributeValueMap.put("string", AttributeValue.fromS(input.string())); + } + if(input.stringSet() != null){ + attributeValueMap.put("stringSet", AttributeValue.fromSs(input.stringSet().stream().collect(Collectors.toList()))); + } + if(input.bigDecimalSet() != null){ + attributeValueMap.put("stringSet", + AttributeValue.fromNs(input.bigDecimalSet().stream().map(b -> b.toString()).collect(Collectors.toList()))); + } + return EnhancedAttributeValue.fromMap(attributeValueMap).toAttributeValue(); + } + + + private static AttributeValue convertCustomList(List customClassForDocumentAPIList){ + List convertCustomList = + customClassForDocumentAPIList.stream().map(customClassForDocumentAPI -> create().transformFrom(customClassForDocumentAPI)).collect(Collectors.toList()); + return AttributeValue.fromL(convertCustomList); + + } + + private static AttributeValue convertInstantList(List customClassForDocumentAPIList){ + return ListAttributeConverter.create(InstantAsStringAttributeConverter.create()).transformFrom(customClassForDocumentAPIList); + } + + @Override + public CustomClassForDocumentAPI transformTo(AttributeValue input) { + + Map customAttr = input.m(); + + CustomClassForDocumentAPI.Builder builder = CustomClassForDocumentAPI.builder(); + + if (customAttr.get("aBoolean") != null) { + builder.aBoolean(BooleanAttributeConverter.create().transformTo(customAttr.get("aBoolean"))); + } + if (customAttr.get("bigDecimal") != null) { + builder.bigDecimal(BigDecimalAttributeConverter.create().transformTo(customAttr.get("bigDecimal"))); + } + if (customAttr.get("bigDecimalSet") != null) { + builder.bigDecimalSet(SetAttributeConverter.setConverter(BigDecimalAttributeConverter.create()).transformTo(customAttr.get("bigDecimalSet"))); + } + if (customAttr.get("binarySet") != null) { + builder.binarySet(SetAttributeConverter.setConverter(ByteArrayAttributeConverter.create()).transformTo(customAttr.get("binarySet"))); + } + if (customAttr.get("binary") != null) { + builder.binary(SdkBytes.fromByteArray(ByteArrayAttributeConverter.create().transformTo(customAttr.get("binary")))); + } + if (customAttr.get("booleanSet") != null) { + builder.booleanSet(SetAttributeConverter.setConverter(BooleanAttributeConverter.create()).transformTo(customAttr.get( + "booleanSet"))); + } + if (customAttr.get("customClassList") != null) { + builder.customClassList(ListAttributeConverter.create(create()).transformTo(customAttr.get("customClassList"))); + } + if (customAttr.get("instantList") != null) { + builder.instantList(ListAttributeConverter.create(AttributeConverterProvider.defaultProvider().converterFor(EnhancedType.of(Instant.class))).transformTo(customAttr.get( + "instantList"))); + } + if (customAttr.get("innerCustomClass") != null) { + builder.innerCustomClass(create().transformTo(customAttr.get("innerCustomClass"))); + } + if (customAttr.get("longNumber") != null) { + builder.longNumber(LongAttributeConverter.create().transformTo(customAttr.get("longNumber"))); + } + if (customAttr.get("longSet") != null) { + builder.longSet(SetAttributeConverter.setConverter(LongAttributeConverter.create()).transformTo(customAttr.get( + "longSet"))); + } + if (customAttr.get("string") != null) { + builder.string(StringAttributeConverter.create().transformTo(customAttr.get("string"))); + } + if (customAttr.get("stringSet") != null) { + builder.stringSet(SetAttributeConverter.setConverter(StringAttributeConverter.create()).transformTo(customAttr.get( + "stringSet"))); + } + return builder.build(); + } + + public static CustomClassForDocumentAttributeConverter create() { + return new CustomClassForDocumentAttributeConverter(); + } + + @Override + public EnhancedType type() { + return EnhancedType.of(CustomClassForDocumentAPI.class); + } + + @Override + public AttributeValueType attributeValueType() { + return AttributeValueType.M; + } + + +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomIntegerAttributeConverter.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomIntegerAttributeConverter.java new file mode 100644 index 000000000000..084740169201 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/document/CustomIntegerAttributeConverter.java @@ -0,0 +1,49 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.converters.document; + +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnhancedAttributeValue; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.string.IntegerStringConverter; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +public class CustomIntegerAttributeConverter implements AttributeConverter { + + final static Integer DEFAULT_INCREMENT = 10; + + @Override + public AttributeValue transformFrom(Integer input) { + return EnhancedAttributeValue.fromNumber(IntegerStringConverter.create().toString(input + DEFAULT_INCREMENT)) + .toAttributeValue(); + } + + @Override + public Integer transformTo(AttributeValue input) { + return Integer.valueOf(input.n()); + } + + @Override + public EnhancedType type() { + return EnhancedType.of(Integer.class); + } + + @Override + public AttributeValueType attributeValueType() { + return AttributeValueType.N; + } +} \ No newline at end of file diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/DefaultEnhancedDocumentTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/DefaultEnhancedDocumentTest.java new file mode 100644 index 000000000000..deaf64fd962e --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/DefaultEnhancedDocumentTest.java @@ -0,0 +1,66 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import static org.assertj.core.api.Assertions.assertThat; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocumentTestData.defaultDocBuilder; + +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.enhanced.dynamodb.internal.document.DefaultEnhancedDocument; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +class DefaultEnhancedDocumentTest { + + @Test + void copyCreatedFromToBuilder() { + DefaultEnhancedDocument originalDoc = (DefaultEnhancedDocument) defaultDocBuilder() + .putString("stringKey", "stringValue") + .build(); + DefaultEnhancedDocument copiedDoc = (DefaultEnhancedDocument) originalDoc.toBuilder().build(); + DefaultEnhancedDocument copyAndAlter = + (DefaultEnhancedDocument) originalDoc.toBuilder().putString("keyOne", "valueOne").build(); + assertThat(originalDoc.toMap()).isEqualTo(copiedDoc.toMap()); + assertThat(originalDoc.toMap().keySet()).hasSize(1); + assertThat(copyAndAlter.toMap().keySet()).hasSize(2); + assertThat(copyAndAlter.getString("stringKey")).isEqualTo("stringValue"); + assertThat(copyAndAlter.getString("keyOne")).isEqualTo("valueOne"); + assertThat(originalDoc.toMap()).isEqualTo(copiedDoc.toMap()); + } + + @Test + void isNull_inDocumentGet() { + DefaultEnhancedDocument nullDocument = (DefaultEnhancedDocument) DefaultEnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putNull("nullDocument") + .putString("nonNull", + "stringValue") + .build(); + assertThat(nullDocument.isNull("nullDocument")).isTrue(); + assertThat(nullDocument.isNull("nonNull")).isFalse(); + assertThat(nullDocument.toMap()).containsEntry("nullDocument", AttributeValue.fromNul(true)); + + } + + @Test + void isNull_when_putObjectWithNullAttribute() { + DefaultEnhancedDocument.DefaultBuilder builder = + (DefaultEnhancedDocument.DefaultBuilder) DefaultEnhancedDocument.builder().attributeConverterProviders(defaultProvider()); + builder.putObject("nullAttribute", AttributeValue.fromNul(true)); + DefaultEnhancedDocument document = (DefaultEnhancedDocument) builder.build(); + assertThat(document.isNull("nullAttribute")).isTrue(); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchemaTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchemaTest.java new file mode 100644 index 000000000000..8eede432dd34 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchemaTest.java @@ -0,0 +1,239 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocumentTestData.testDataInstance; + +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.stream.Collectors; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomAttributeForDocumentConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomClassForDocumentAPI; +import software.amazon.awssdk.enhanced.dynamodb.document.DocumentTableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocumentTestData; +import software.amazon.awssdk.enhanced.dynamodb.document.TestData; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.ChainConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.internal.mapper.StaticKeyAttributeMetadata; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +class DocumentTableSchemaTest { + + String NO_PRIMARY_KEYS_IN_METADATA = "Attempt to execute an operation that requires a primary index without defining " + + "any primary key attributes in the table metadata."; + + @Test + void converterForAttribute_APIIsNotSupported() { + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> documentTableSchema.converterForAttribute("someKey")); + } + + @Test + void defaultBuilderWith_NoElement_CreateEmptyMetaData() { + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + assertThat(documentTableSchema.tableMetadata()).isNotNull(); + assertThat(documentTableSchema.isAbstract()).isFalse(); + //Accessing attribute for documentTableSchema when TableMetaData not supplied in the builder. + assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy( + () -> documentTableSchema.tableMetadata().primaryKeys()).withMessage(NO_PRIMARY_KEYS_IN_METADATA); + assertThat(documentTableSchema.attributeValue(EnhancedDocument + .builder() + .addAttributeConverterProvider(defaultProvider()) + .build(), "key")).isNull(); + assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> documentTableSchema.tableMetadata().primaryKeys()); + + assertThat(documentTableSchema.attributeNames()).isEqualTo(Collections.emptyList()); + + + } + + @Test + void tableMetaData_With_BothSortAndHashKey_InTheBuilder() { + DocumentTableSchema documentTableSchema = DocumentTableSchema + .builder() + .addIndexPartitionKey(TableMetadata.primaryIndexName(), "sampleHashKey", AttributeValueType.S) + .addIndexSortKey("sort-index", "sampleSortKey", AttributeValueType.S) + .build(); + assertThat(documentTableSchema.attributeNames()).isEqualTo(Arrays.asList("sampleHashKey", "sampleSortKey")); + assertThat(documentTableSchema.tableMetadata().keyAttributes().stream().collect(Collectors.toList())).isEqualTo( + Arrays.asList(StaticKeyAttributeMetadata.create("sampleHashKey", AttributeValueType.S), + StaticKeyAttributeMetadata.create("sampleSortKey", AttributeValueType.S))); + } + + @Test + void tableMetaData_WithOnly_HashKeyInTheBuilder() { + DocumentTableSchema documentTableSchema = DocumentTableSchema + .builder() + .addIndexPartitionKey( + TableMetadata.primaryIndexName(), "sampleHashKey", AttributeValueType.S) + .build(); + assertThat(documentTableSchema.attributeNames()).isEqualTo(Collections.singletonList("sampleHashKey")); + assertThat(documentTableSchema.tableMetadata().keyAttributes().stream().collect(Collectors.toList())).isEqualTo( + Collections.singletonList(StaticKeyAttributeMetadata.create("sampleHashKey", AttributeValueType.S))); + } + + @Test + void defaultConverter_IsNotCreated_When_NoConverter_IsPassedInBuilder_IgnoreNullAsFalse() { + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + EnhancedDocument enhancedDocument = EnhancedDocument.builder() + .putNull("nullKey") + .attributeConverterProviders(CustomAttributeForDocumentConverterProvider.create()) + .putString("stringKey", "stringValue") + .build(); + + + assertThatIllegalStateException() + .isThrownBy(() -> documentTableSchema.mapToItem(enhancedDocument.toMap(), false)) + .withMessageContaining("AttributeConverter not found for class EnhancedType(java.lang.String). " + + "Please add an AttributeConverterProvider for this type. If it is a default type, add the " + + "DefaultAttributeConverterProvider to the builder."); + } + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validate_DocumentTableSchemaItemToMap(TestData testData) { + /** + * The builder method internally creates a AttributeValueMap which is saved to the ddb, if this matches then + * the document is as expected + */ + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + + Assertions.assertThat( + documentTableSchema.itemToMap(testData.getEnhancedDocument(), false)).isEqualTo(testData.getDdbItemMap()); + } + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validate_DocumentTableSchema_mapToItem(TestData testData) { + /** + * The builder method internally creates a AttributeValueMap which is saved to the ddb, if this matches then + * the document is as expected + */ + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + assertThat(documentTableSchema.mapToItem(null)).isNull(); + Assertions.assertThat( + documentTableSchema.mapToItem(testData.getDdbItemMap()).toMap()).isEqualTo(testData.getEnhancedDocument() + .toMap()); + // TODO : order mismatch ?? + // + // Assertions.assertThat( + // documentTableSchema.mapToItem(testData.getDdbItemMap()).toJson()).isEqualTo(testData.getJson()); + } + + + @Test + void enhanceTypeOf_TableSchema() { + assertThat(DocumentTableSchema.builder().build().itemType()).isEqualTo(EnhancedType.of(EnhancedDocument.class)); + } + + @Test + void error_When_attributeConvertersIsOverwrittenToIncorrectConverter() { + + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().attributeConverterProviders(defaultProvider()) + .attributeConverterProviders(ChainConverterProvider.create()).build(); + TestData simpleStringData = testDataInstance().dataForScenario("simpleString"); + // Lazy loading is done , thus it does not fail until we try to access some doc from enhancedDocument + EnhancedDocument enhancedDocument = documentTableSchema.mapToItem(simpleStringData.getDdbItemMap(), false); + assertThatIllegalStateException().isThrownBy( + () -> { + enhancedDocument.getString("stringKey"); + }).withMessage( + "AttributeConverter not found for class EnhancedType(java.lang.String). Please add an AttributeConverterProvider " + + "for this type. " + + "If it is a default type, add the DefaultAttributeConverterProvider to the builder."); + } + + @Test + void default_attributeConverters_isUsedFromTableSchema() { + + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + TestData simpleStringData = testDataInstance().dataForScenario("simpleString"); + EnhancedDocument enhancedDocument = documentTableSchema.mapToItem(simpleStringData.getDdbItemMap(), false); + assertThat(enhancedDocument.getString("stringKey")).isEqualTo("stringValue"); + } + + @Test + void custom_attributeConverters_isUsedFromTableSchema() { + + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder() + .attributeConverterProviders(CustomAttributeForDocumentConverterProvider.create(), defaultProvider()) + .build(); + TestData simpleStringData = testDataInstance().dataForScenario("customList"); + EnhancedDocument enhancedDocument = documentTableSchema.mapToItem(simpleStringData.getDdbItemMap(), false); + assertThat(enhancedDocument.getList("customClassForDocumentAPI", EnhancedType.of(CustomClassForDocumentAPI.class)).size()).isEqualTo(2); + } + + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validate_DocumentTableSchemaItemToMapWithFilter(TestData testData) { + EnhancedDocument filterDocument = testData.getEnhancedDocument().toBuilder() + .putString("filterOne", "str") + .putBoolean("filterTwo", false) + .putNumber("filterThree", 3L) + .putNumber("noFilter", 10) + .putNull("filterNull") + .build(); + + Map filteredAttributeValueMap = new LinkedHashMap<>(); + filteredAttributeValueMap.put("filterOne", AttributeValue.fromS("str")); + filteredAttributeValueMap.put("filterTwo", AttributeValue.fromBool(false)); + filteredAttributeValueMap.put("filterThree", AttributeValue.fromN("3")); + filteredAttributeValueMap.put("filterNull", AttributeValue.fromNul(true)); + + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder().build(); + + Assertions.assertThat( + documentTableSchema.itemToMap(filterDocument, + Arrays.asList("filterOne", "filterTwo", "filterThree","filterNull") + )).isEqualTo(filteredAttributeValueMap); + } + + @Test + void validate_DocumentTableSchema_WithCustomIntegerAttributeProvider() { + EnhancedDocument numberDocument = EnhancedDocument.builder() + .putNumber("integerOne", 1) + .putNumber("integerTen", 10) + .putNull("null") + .build(); + + Map resultMap = new LinkedHashMap<>(); + resultMap.put("integerOne", AttributeValue.fromN("11")); + resultMap.put("integerTen", AttributeValue.fromN("20")); + resultMap.put("null", AttributeValue.fromNul(true)); + + DocumentTableSchema documentTableSchema = DocumentTableSchema.builder() + .attributeConverterProviders( + Collections.singletonList( + CustomAttributeForDocumentConverterProvider.create())) + .build(); + Assertions.assertThat( + documentTableSchema.itemToMap(numberDocument, true)).isEqualTo(resultMap); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocumentTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocumentTest.java new file mode 100644 index 000000000000..5edd69ab7be6 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocumentTest.java @@ -0,0 +1,473 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.assertj.core.api.Assertions.assertThatNullPointerException; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static org.assertj.core.api.Assertions.assertThat; +import static software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocumentTestData.testDataInstance; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ValueSource; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomAttributeForDocumentConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomClassForDocumentAPI; + +class EnhancedDocumentTest { + + private static Stream escapeDocumentStrings() { + char c = 0x0a; + return Stream.of( + Arguments.of(String.valueOf(c), "{\"key\":\"\\n\"}") + , Arguments.of("", "{\"key\":\"\"}") + , Arguments.of(" ", "{\"key\":\" \"}") + , Arguments.of("\t", "{\"key\":\"\\t\"}") + , Arguments.of("\n", "{\"key\":\"\\n\"}") + , Arguments.of("\r", "{\"key\":\"\\r\"}") + , Arguments.of("\f", "{\"key\":\"\\f\"}") + ); + } + + @Test + void enhancedDocumentGetters() { + + EnhancedDocument document = testDataInstance() + .dataForScenario("complexDocWithSdkBytesAndMapArrays_And_PutOverWritten") + .getEnhancedDocument(); + // Assert + assertThat(document.getString("stringKey")).isEqualTo("stringValue"); + assertThat(document.getNumber("numberKey")).isEqualTo(SdkNumber.fromInteger(1)); + assertThat(document.getList("numberList", EnhancedType.of(BigDecimal.class))) + .containsExactly(BigDecimal.valueOf(4), BigDecimal.valueOf(5), BigDecimal.valueOf(6)); + assertThat(document.getList("numberList", EnhancedType.of(SdkNumber.class))) + .containsExactly(SdkNumber.fromInteger(4), SdkNumber.fromInteger(5), SdkNumber.fromInteger(6)); + assertThat(document.get("simpleDate", EnhancedType.of(LocalDate.class))).isEqualTo(LocalDate.MIN); + assertThat(document.getStringSet("stringSet")).containsExactly("one", "two"); + assertThat(document.getBytes("sdkByteKey")).isEqualTo(SdkBytes.fromUtf8String("a")); + assertThat(document.getBytesSet("sdkByteSet")) + .containsExactlyInAnyOrder(SdkBytes.fromUtf8String("a"), SdkBytes.fromUtf8String("b")); + assertThat(document.getNumberSet("numberSetSet")).containsExactlyInAnyOrder(SdkNumber.fromInteger(1), + SdkNumber.fromInteger(2)); + + Map expectedBigDecimalMap = new LinkedHashMap<>(); + expectedBigDecimalMap.put("78b3522c-2ab3-4162-8c5d-f093fa76e68c", BigDecimal.valueOf(3)); + expectedBigDecimalMap.put("4ae1f694-52ce-4cf6-8211-232ccf780da8", BigDecimal.valueOf(9)); + assertThat(document.getMap("simpleMap", EnhancedType.of(String.class), EnhancedType.of(BigDecimal.class))) + .containsExactlyEntriesOf(expectedBigDecimalMap); + + Map expectedUuidBigDecimalMap = new LinkedHashMap<>(); + expectedUuidBigDecimalMap.put(UUID.fromString("78b3522c-2ab3-4162-8c5d-f093fa76e68c"), BigDecimal.valueOf(3)); + expectedUuidBigDecimalMap.put(UUID.fromString("4ae1f694-52ce-4cf6-8211-232ccf780da8"), BigDecimal.valueOf(9)); + assertThat(document.getMap("simpleMap", EnhancedType.of(UUID.class), EnhancedType.of(BigDecimal.class))) + .containsExactlyEntriesOf(expectedUuidBigDecimalMap); + } + + @Test + void enhancedDocWithNestedListAndMaps() { + /** + * No attributeConverters supplied, in this case it uses the {@link DefaultAttributeConverterProvider} and does not error + */ + EnhancedDocument simpleDoc = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("HashKey", "abcdefg123") + .putNull("nullKey") + .putNumber("numberKey", 2.0) + .putBytes("sdkByte", SdkBytes.fromUtf8String("a")) + .putBoolean("booleanKey", true) + .putJson("jsonKey", "{\"1\": [\"a\", \"b\", \"c\"],\"2\": 1}") + .putStringSet("stingSet", + Stream.of("a", "b", "c").collect(Collectors.toSet())) + + .putNumberSet("numberSet", Stream.of(1, 2, 3, 4).collect(Collectors.toSet())) + .putBytesSet("sdkByteSet", + Stream.of(SdkBytes.fromUtf8String("a")).collect(Collectors.toSet())) + .build(); + + assertThat(simpleDoc.toJson()).isEqualTo("{\"HashKey\":\"abcdefg123\",\"nullKey\":null,\"numberKey\":2.0," + + "\"sdkByte\":\"YQ==\",\"booleanKey\":true,\"jsonKey\":{\"1\":[\"a\",\"b\"," + + "\"c\"],\"2\":1},\"stingSet\":[\"a\",\"b\",\"c\"],\"numberSet\":[1,2,3,4]," + + "\"sdkByteSet\":[\"YQ==\"]}"); + + + assertThat(simpleDoc.isPresent("HashKey")).isTrue(); + // No Null pointer or doesnot exist is thrown + assertThat(simpleDoc.isPresent("HashKey2")).isFalse(); + assertThat(simpleDoc.getString("HashKey")).isEqualTo("abcdefg123"); + assertThat(simpleDoc.isNull("nullKey")).isTrue(); + + assertThat(simpleDoc.getNumber("numberKey")).isEqualTo(SdkNumber.fromDouble(2.0)); + assertThat(simpleDoc.getNumber("numberKey").bigDecimalValue().compareTo(BigDecimal.valueOf(2.0))).isEqualTo(0); + + assertThat(simpleDoc.getBytes("sdkByte")).isEqualTo(SdkBytes.fromUtf8String("a")); + assertThat(simpleDoc.getBoolean("booleanKey")).isTrue(); + assertThat(simpleDoc.getJson("jsonKey")).isEqualTo("{\"1\":[\"a\",\"b\",\"c\"],\"2\":1}"); + assertThat(simpleDoc.getStringSet("stingSet")).isEqualTo(Stream.of("a", "b", "c").collect(Collectors.toSet())); + assertThat(simpleDoc.getList("stingSet", EnhancedType.of(String.class))).isEqualTo(Stream.of("a", "b", "c").collect(Collectors.toList())); + + assertThat(simpleDoc.getNumberSet("numberSet") + .stream().map(n -> n.intValue()).collect(Collectors.toSet())) + .isEqualTo(Stream.of(1, 2, 3, 4).collect(Collectors.toSet())); + + + assertThat(simpleDoc.getBytesSet("sdkByteSet")).isEqualTo(Stream.of(SdkBytes.fromUtf8String("a")).collect(Collectors.toSet())); + + + // Trying to access some other Types + assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() -> simpleDoc.getBoolean("sdkByteSet")) + .withMessageContaining("BooleanAttributeConverter cannot convert " + + "an attribute of type BS into the requested type class java.lang.Boolean"); + + + } + + @Test + void testNullArgsInStaticConstructor() { + assertThatNullPointerException() + .isThrownBy(() -> EnhancedDocument.fromAttributeValueMap(null)) + .withMessage("attributeValueMap must not be null."); + + assertThatNullPointerException() + .isThrownBy(() -> EnhancedDocument.fromJson(null)) + .withMessage("json must not be null."); + } + + @Test + void accessingSetFromBuilderMethodsAsListsInDocuments() { + Set stringSet = Stream.of("a", "b", "c").collect(Collectors.toSet()); + + EnhancedDocument enhancedDocument = EnhancedDocument.builder() + .addAttributeConverterProvider(defaultProvider()) + .putStringSet("stringSet", stringSet) + .build(); + + Set retrievedStringSet = enhancedDocument.getStringSet("stringSet"); + assertThat(retrievedStringSet).isEqualTo(stringSet); + // Note that this behaviour is different in V1 , in order to remain consistent with EnhancedDDB converters + List retrievedStringList = enhancedDocument.getList("stringSet", EnhancedType.of(String.class)); + assertThat(retrievedStringList).containsExactlyInAnyOrderElementsOf(stringSet); + } + + @Test + void builder_ResetsTheOldValues_beforeJsonSetterIsCalled() { + + EnhancedDocument enhancedDocument = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("simpleKeyOriginal", "simpleValueOld") + .json("{\"stringKey\": \"stringValue\"}") + .putString("simpleKeyNew", "simpleValueNew") + .build(); + + assertThat(enhancedDocument.toJson()).isEqualTo("{\"stringKey\":\"stringValue\",\"simpleKeyNew\":\"simpleValueNew\"}"); + assertThat(enhancedDocument.getString("simpleKeyOriginal")).isNull(); + + } + + @Test + void builder_with_NullKeys() { + String EMPTY_OR_NULL_ERROR = "Attribute name must not be null or empty."; + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putString(null, "Sample")) + .withMessage(EMPTY_OR_NULL_ERROR); + + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putNull(null)) + .withMessage(EMPTY_OR_NULL_ERROR); + + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putNumber(null, 3)) + .withMessage(EMPTY_OR_NULL_ERROR); + + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putList(null, Arrays.asList(), EnhancedType.of(String.class))) + .withMessage(EMPTY_OR_NULL_ERROR); + + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putBytes(null, SdkBytes.fromUtf8String("a"))) + .withMessage(EMPTY_OR_NULL_ERROR); + + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putMap(null, new HashMap<>(), null, null)) + .withMessage(EMPTY_OR_NULL_ERROR); + + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putStringSet(null, Stream.of("a").collect(Collectors.toSet()))) + .withMessage(EMPTY_OR_NULL_ERROR); + + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putNumberSet(null, Stream.of(1).collect(Collectors.toSet()))) + .withMessage(EMPTY_OR_NULL_ERROR); + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putStringSet(null, Stream.of("a").collect(Collectors.toSet()))) + .withMessage(EMPTY_OR_NULL_ERROR); + assertThatIllegalArgumentException() + .isThrownBy(() -> EnhancedDocument.builder().putBytesSet(null, Stream.of(SdkBytes.fromUtf8String("a")) + .collect(Collectors.toSet()))) + .withMessage(EMPTY_OR_NULL_ERROR); + } + + @Test + void errorWhen_NoAttributeConverter_IsProviderIsDefined() { + EnhancedDocument enhancedDocument = testDataInstance().dataForScenario("simpleString") + .getEnhancedDocument() + .toBuilder() + .attributeConverterProviders(CustomAttributeForDocumentConverterProvider.create()) + .build(); + + EnhancedType getType = EnhancedType.of(EnhancedDocumentTestData.class); + assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() -> enhancedDocument.get( + "stringKey", getType + )).withMessage( + "AttributeConverter not found for class EnhancedType(java.lang.String). Please add an AttributeConverterProvider " + + "for this type. " + + "If it is a default type, add the DefaultAttributeConverterProvider to the builder."); + } + + @Test + void access_NumberAttributeFromMap() { + EnhancedDocument enhancedDocument = EnhancedDocument.fromJson(testDataInstance() + .dataForScenario("ElementsOfCustomType") + .getJson()); + + assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() -> + enhancedDocument.getNumber("customMapValue")) + .withMessage( + "software.amazon.awssdk.enhanced.dynamodb.internal.converter" + + ".attribute.SdkNumberAttributeConverter cannot convert" + + " an attribute of type M into the requested type class " + + "software.amazon.awssdk.core.SdkNumber"); + } + + @Test + void access_CustomType_without_AttributeConverterProvider() { + EnhancedDocument enhancedDocument = EnhancedDocument.fromJson(testDataInstance() + .dataForScenario("ElementsOfCustomType") + .getJson()); + + EnhancedType enhancedType = EnhancedType.of( + CustomClassForDocumentAPI.class); + + assertThatExceptionOfType(IllegalStateException.class).isThrownBy( + () -> enhancedDocument.get( + "customMapValue", enhancedType)).withMessage("Converter not found for " + + "EnhancedType(software.amazon.awssdk.enhanced.dynamodb.converters" + + ".document.CustomClassForDocumentAPI)"); + EnhancedDocument docWithCustomProvider = + enhancedDocument.toBuilder().attributeConverterProviders(CustomAttributeForDocumentConverterProvider.create(), + defaultProvider()).build(); + assertThat(docWithCustomProvider.get("customMapValue", EnhancedType.of(CustomClassForDocumentAPI.class))).isNotNull(); + } + + @Test + void error_When_DefaultProviderIsPlacedCustomProvider() { + CustomClassForDocumentAPI customObject = CustomClassForDocumentAPI.builder().string("str_one") + .longNumber(26L) + .aBoolean(false).build(); + EnhancedDocument afterCustomClass = EnhancedDocument.builder() + .attributeConverterProviders( + + CustomAttributeForDocumentConverterProvider.create(), + defaultProvider()) + .putString("direct_attr", "sample_value") + .put("customObject", customObject, + EnhancedType.of(CustomClassForDocumentAPI.class)) + .build(); + + assertThat(afterCustomClass.toJson()).isEqualTo("{\"direct_attr\":\"sample_value\",\"customObject\":{\"longNumber\":26," + + "\"string\":\"str_one\"}}"); + + EnhancedDocument enhancedDocument = EnhancedDocument.builder() + .putString("direct_attr", "sample_value") + .put("customObject", customObject, + EnhancedType.of(CustomClassForDocumentAPI.class)).attributeConverterProviders + (defaultProvider(), + CustomAttributeForDocumentConverterProvider.create()) + .build(); + + assertThatIllegalStateException().isThrownBy( + () -> enhancedDocument.toJson() + ).withMessage("Converter not found for " + + "EnhancedType(software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomClassForDocumentAPI)"); + } + + @ParameterizedTest + @ValueSource(strings = {"", " ", "\t", " ", "\n", "\r", "\f"}) + void invalidKeyNames(String escapingString) { + assertThatIllegalArgumentException().isThrownBy(() -> + EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString(escapingString, "sample") + .build()) + .withMessageContaining("Attribute name must not be null or empty."); + } + + @ParameterizedTest + @MethodSource("escapeDocumentStrings") + void escapingTheValues(String escapingString, String expectedJson) { + + EnhancedDocument document = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("key", escapingString) + .build(); + assertThat(document.toJson()).isEqualTo(expectedJson); + } + + @Test + void removeParameterFromDocument() { + EnhancedDocument allSimpleTypes = testDataInstance().dataForScenario("allSimpleTypes").getEnhancedDocument(); + assertThat(allSimpleTypes.isPresent("nullKey")).isTrue(); + assertThat(allSimpleTypes.isNull("nullKey")).isTrue(); + assertThat(allSimpleTypes.getNumber("numberKey").intValue()).isEqualTo(10); + assertThat(allSimpleTypes.getString("stringKey")).isEqualTo("stringValue"); + + EnhancedDocument removedAttributesDoc = allSimpleTypes.toBuilder() + .remove("nullKey") + .remove("numberKey") + .build(); + + assertThat(removedAttributesDoc.isPresent("nullKey")).isFalse(); + assertThat(removedAttributesDoc.isNull("nullKey")).isFalse(); + assertThat(removedAttributesDoc.isPresent("numberKey")).isFalse(); + assertThat(removedAttributesDoc.getString("stringKey")).isEqualTo("stringValue"); + + assertThatIllegalArgumentException().isThrownBy( + () -> removedAttributesDoc.toBuilder().remove("")) + .withMessage("Attribute name must not be null or empty"); + + + assertThatIllegalArgumentException().isThrownBy( + () -> removedAttributesDoc.toBuilder().remove(null)) + .withMessage("Attribute name must not be null or empty"); + } + + @Test + void nullValueInsertion() { + + final String SAMPLE_KEY = "sampleKey"; + + String expectedNullMessage = "Value for sampleKey must not be null. Use putNull API to insert a Null value"; + + EnhancedDocument.Builder builder = EnhancedDocument.builder(); + assertThatNullPointerException().isThrownBy(() -> builder.putString(SAMPLE_KEY, null)).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.put(SAMPLE_KEY, null, + EnhancedType.of(String.class))).withMessageContaining(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putNumber(SAMPLE_KEY, null)).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putBytes(SAMPLE_KEY, null)).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putStringSet(SAMPLE_KEY, null)).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putBytesSet(SAMPLE_KEY, null)).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putJson(SAMPLE_KEY, null)).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putNumberSet(SAMPLE_KEY, null)).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putMap(SAMPLE_KEY, null, EnhancedType.of(String.class), + EnhancedType.of(String.class))).withMessage(expectedNullMessage); + assertThatNullPointerException().isThrownBy(() -> builder.putList(SAMPLE_KEY, null, EnhancedType.of(String.class))).withMessage(expectedNullMessage); + } + + @Test + void accessingNulAttributeValue() { + String NULL_KEY = "nullKey"; + EnhancedDocument enhancedDocument = + EnhancedDocument.builder().attributeConverterProviders(defaultProvider()).putNull(NULL_KEY).build(); + + Assertions.assertNull(enhancedDocument.getString(NULL_KEY)); + Assertions.assertNull(enhancedDocument.getList(NULL_KEY, EnhancedType.of(String.class))); + assertThat(enhancedDocument.getBoolean(NULL_KEY)).isNull(); + } + + @Test + void booleanValueRepresentation() { + EnhancedDocument.Builder builder = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()); + assertThat(builder.putString("boolean", "true").build().getBoolean("boolean")).isTrue(); + assertThat(builder.putNumber("boolean", 1).build().getBoolean("boolean")).isTrue(); + } + + @Test + void putAndGetOfCustomTypes_with_EnhancedTypeApi() { + CustomClassForDocumentAPI customObject = CustomClassForDocumentAPI.builder().string("str_one") + .longNumber(26L) + .aBoolean(false).build(); + EnhancedDocument enhancedDocument = EnhancedDocument.builder() + .attributeConverterProviders( + CustomAttributeForDocumentConverterProvider.create(), + defaultProvider()) + .putString("direct_attr", "sample_value") + .put("customObject", customObject, + EnhancedType.of(CustomClassForDocumentAPI.class)) + .build(); + + assertThat(enhancedDocument.get("customObject", EnhancedType.of(CustomClassForDocumentAPI.class))) + .isEqualTo(customObject); + } + + @Test + void putAndGetOfCustomTypes_with_ClassTypes() { + CustomClassForDocumentAPI customObject = CustomClassForDocumentAPI.builder().string("str_one") + .longNumber(26L) + .aBoolean(false).build(); + EnhancedDocument enhancedDocument = EnhancedDocument.builder() + .attributeConverterProviders( + CustomAttributeForDocumentConverterProvider.create(), + defaultProvider()) + .putString("direct_attr", "sample_value") + .put("customObject", customObject, + CustomClassForDocumentAPI.class) + .build(); + + assertThat(enhancedDocument.get("customObject", CustomClassForDocumentAPI.class)).isEqualTo(customObject); + } + + @Test + void error_when_usingClassGetPut_for_CollectionValues(){ + + assertThatIllegalArgumentException().isThrownBy( + () -> EnhancedDocument.builder().put("mapKey", new HashMap(), Map.class)) + .withMessage("Values of type Map are not supported by this API, please use the putMap API instead"); + + assertThatIllegalArgumentException().isThrownBy( + () -> EnhancedDocument.builder().put("listKey", new ArrayList<>() , List.class)) + .withMessage("Values of type List are not supported by this API, please use the putList API instead"); + + + assertThatIllegalArgumentException().isThrownBy( + () -> EnhancedDocument.builder().build().get("mapKey", Map.class)) + .withMessage("Values of type Map are not supported by this API, please use the getMap API instead"); + + assertThatIllegalArgumentException().isThrownBy( + () -> EnhancedDocument.builder().build().get("listKey" , List.class)) + .withMessage("Values of type List are not supported by this API, please use the getList API instead"); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocumentTestData.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocumentTestData.java new file mode 100644 index 000000000000..4a52e6138c8a --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocumentTestData.java @@ -0,0 +1,708 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import static java.time.Instant.ofEpochMilli; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.document.TestData.TypeMap.typeMap; +import static software.amazon.awssdk.enhanced.dynamodb.document.TestData.dataBuilder; + +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.ArgumentsProvider; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomAttributeForDocumentConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomClassForDocumentAPI; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.ChainConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.StringConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.string.CharSequenceStringConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.document.DefaultEnhancedDocument; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.utils.Pair; + +public final class EnhancedDocumentTestData implements ArgumentsProvider { + + private static long FIXED_INSTANT_TIME = 1677690845038L; + + public static final AttributeValue NUMBER_STRING_ARRAY_ATTRIBUTES_LISTS = + AttributeValue.fromL(Arrays.asList(AttributeValue.fromN("1"), + AttributeValue.fromN("2"), + AttributeValue.fromN("3"))); + + private static final EnhancedDocumentTestData INSTANCE = new EnhancedDocumentTestData(); + + private Map testScenarioMap; + private List testDataList; + + public EnhancedDocumentTestData() { + initializeTestData(); + } + + public static EnhancedDocumentTestData testDataInstance() { + return new EnhancedDocumentTestData(); + } + + public static EnhancedDocument.Builder defaultDocBuilder() { + EnhancedDocument.Builder defaultBuilder = DefaultEnhancedDocument.builder(); + return defaultBuilder.addAttributeConverterProvider(defaultProvider()); + } + + public static AttributeStringValueMap map() { + return new AttributeStringValueMap(); + } + + private void initializeTestData() { + + testDataList = new ArrayList<>(); + testDataList.add(dataBuilder().scenario("nullKey") + .ddbItemMap(map().withKeyValue("nullKey", AttributeValue.fromNul(true)).get()) + .enhancedDocument(defaultDocBuilder() + .putNull("nullKey") + .build()) + .json("{\"nullKey\":null}") + .attributeConverterProvider(defaultProvider()) + .build()); + + + testDataList.add(dataBuilder().scenario("simpleString") + .ddbItemMap(map().withKeyValue("stringKey", AttributeValue.fromS("stringValue")).get()) + .enhancedDocument( + ((DefaultEnhancedDocument.DefaultBuilder) + DefaultEnhancedDocument.builder()).putObject("stringKey", "stringValue") + .addAttributeConverterProvider(defaultProvider()).build()) + .attributeConverterProvider(defaultProvider()) + .json("{\"stringKey\":\"stringValue\"}") + + .build()); + + testDataList.add(dataBuilder().scenario("record") + + .ddbItemMap(map().withKeyValue("uniqueId", AttributeValue.fromS("id-value")) + .withKeyValue("sortKey",AttributeValue.fromS("sort-value")) + .withKeyValue("attributeKey", AttributeValue.fromS("one")) + .withKeyValue("attributeKey2", AttributeValue.fromS("two")) + .withKeyValue("attributeKey3", AttributeValue.fromS("three")).get()) + .enhancedDocument( + defaultDocBuilder() + .putString("uniqueId","id-value") + .putString("sortKey","sort-value") + .putString("attributeKey","one") + .putString("attributeKey2","two") + .putString("attributeKey3","three") + .build() + ) + + + .attributeConverterProvider(defaultProvider()) + .json("{\"uniqueId\":\"id-value\",\"sortKey\":\"sort-value\",\"attributeKey\":\"one\"," + + "\"attributeKey2\":\"two\",\"attributeKey3\":\"three\"}") + + .build()); + + testDataList.add(dataBuilder().scenario("differentNumberTypes") + .ddbItemMap(map() + .withKeyValue("numberKey", AttributeValue.fromN("10")) + .withKeyValue("bigDecimalNumberKey", + AttributeValue.fromN(new BigDecimal(10).toString())).get()) + .enhancedDocument( + defaultDocBuilder() + .putNumber("numberKey", Integer.valueOf(10)) + .putNumber("bigDecimalNumberKey", new BigDecimal(10)) + .build()) + .attributeConverterProvider(defaultProvider()) + .json("{" + "\"numberKey\":10," + "\"bigDecimalNumberKey\":10" + "}") + + .build()); + + testDataList.add(dataBuilder().scenario("allSimpleTypes") + .ddbItemMap(map() + .withKeyValue("stringKey", AttributeValue.fromS("stringValue")) + .withKeyValue("numberKey", AttributeValue.fromN("10")) + .withKeyValue("boolKey", AttributeValue.fromBool(true)) + .withKeyValue("nullKey", AttributeValue.fromNul(true)) + .withKeyValue("numberSet", AttributeValue.fromNs(Arrays.asList("1", "2", "3"))) + .withKeyValue("sdkBytesSet", + AttributeValue.fromBs(Arrays.asList(SdkBytes.fromUtf8String("a") + ,SdkBytes.fromUtf8String("b") + ,SdkBytes.fromUtf8String("c")))) + .withKeyValue("stringSet", + AttributeValue.fromSs(Arrays.asList("a", "b", "c"))).get()) + .enhancedDocument(defaultDocBuilder() + .putString("stringKey", "stringValue") + .putNumber("numberKey", 10) + .putBoolean("boolKey", true) + .putNull("nullKey") + .putNumberSet("numberSet", Stream.of(1, 2, 3).collect(Collectors.toSet())) + .putBytesSet("sdkBytesSet", Stream.of(SdkBytes.fromUtf8String("a"), + SdkBytes.fromUtf8String("b"), + SdkBytes.fromUtf8String("c")) + .collect(Collectors.toSet())) + .putStringSet("stringSet", Stream.of("a", "b", "c").collect(Collectors.toSet())) + .build()) + .json("{\"stringKey\":\"stringValue\",\"numberKey\":10,\"boolKey\":true,\"nullKey\":null," + + "\"numberSet\":[1,2,3],\"sdkBytesSet\":[\"YQ==\",\"Yg==\",\"Yw==\"],\"stringSet\":[\"a\"," + + "\"b\",\"c\"]}") + .attributeConverterProvider(defaultProvider()) + .build()); + + testDataList.add(dataBuilder().scenario("differentNumberSets") + .isGeneric(false) + .ddbItemMap(map() + .withKeyValue("floatSet", AttributeValue.fromNs(Arrays.asList("2.0", "3.0"))) + .withKeyValue("integerSet", AttributeValue.fromNs(Arrays.asList("-1", "0", "1"))) + .withKeyValue("bigDecimal", AttributeValue.fromNs(Arrays.asList("1000.002", "2000.003"))) + .withKeyValue("sdkNumberSet", AttributeValue.fromNs(Arrays.asList("1", "2", "3"))).get()) + .enhancedDocument(defaultDocBuilder() + .putNumberSet("floatSet", Stream.of( Float.parseFloat("2.0"), + Float.parseFloat("3.0") ).collect(Collectors.toCollection(LinkedHashSet::new))) + .putNumberSet("integerSet",Arrays.asList(-1,0, 1).stream().collect(Collectors.toCollection(LinkedHashSet::new))) + .putNumberSet("bigDecimal", Stream.of(BigDecimal.valueOf(1000.002), BigDecimal.valueOf(2000.003) ).collect(Collectors.toCollection(LinkedHashSet::new))) + .putNumberSet("sdkNumberSet", Stream.of(SdkNumber.fromInteger(1), SdkNumber.fromInteger(2), SdkNumber.fromInteger(3) ).collect(Collectors.toSet())) + .build()) + .json("{\"floatSet\": [2.0, 3.0],\"integerSet\": [-1, 0, 1],\"bigDecimal\": [1000.002, 2000.003],\"sdkNumberSet\": [1,2, 3]}") + .attributeConverterProvider(defaultProvider()) + .build()); + + testDataList.add(dataBuilder().scenario("simpleListExcludingBytes") + .ddbItemMap(map() + .withKeyValue("numberList", + AttributeValue.fromL( + Arrays.asList(AttributeValue.fromN("1"), + AttributeValue.fromN("2")))) + .withKeyValue("stringList", + AttributeValue.fromL( + Arrays.asList( + AttributeValue.fromS("one"), + AttributeValue.fromS("two")))).get()) + .enhancedDocument( + defaultDocBuilder() + .putList("numberList", Arrays.asList(1,2), EnhancedType.of(Integer.class)) + .putList("stringList", Arrays.asList("one","two"), EnhancedType.of(String.class)) + .build() + ) + .typeMap(typeMap() + .addAttribute("numberList", EnhancedType.of(Integer.class)) + .addAttribute("stringList", EnhancedType.of(String.class))) + .attributeConverterProvider(defaultProvider()) + .json("{\"numberList\":[1,2],\"stringList\":[\"one\",\"two\"]}") + .build()); + + testDataList.add(dataBuilder().scenario("customList") + .ddbItemMap( + map().withKeyValue("customClassForDocumentAPI", AttributeValue.fromL( + Arrays.asList( + AttributeValue.fromM(getAttributeValueMapForCustomClassWithPrefix(1,10, false)) + , + AttributeValue.fromM(getAttributeValueMapForCustomClassWithPrefix(2,200, false))))).get()) + .enhancedDocument( + defaultDocBuilder() + .attributeConverterProviders(CustomAttributeForDocumentConverterProvider.create() + ,defaultProvider()) + .putList("customClassForDocumentAPI" + , Arrays.asList(getCustomClassForDocumentAPIWithBaseAndOffset(1,10) + ,getCustomClassForDocumentAPIWithBaseAndOffset(2,200)), + EnhancedType.of(CustomClassForDocumentAPI.class)) + .build() + ) + .typeMap(typeMap() + .addAttribute("instantList", EnhancedType.of(Instant.class)) + .addAttribute("customClassForDocumentAPI", EnhancedType.of(CustomClassForDocumentAPI.class))) + .attributeConverterProvider(ChainConverterProvider.create(CustomAttributeForDocumentConverterProvider.create(), + defaultProvider())) + .json("{\"customClassForDocumentAPI\":[{\"instantList\":[\"2023-03-01T17:14:05.049Z\"," + + "\"2023-03-01T17:14:05.049Z\",\"2023-03-01T17:14:05.049Z\"],\"longNumber\":11," + + "\"string\":\"11\",\"stringSet\":[\"12\",\"13\",\"14\"]}," + + "{\"instantList\":[\"2023-03-01T17:14:05.240Z\",\"2023-03-01T17:14:05.240Z\"," + + "\"2023-03-01T17:14:05.240Z\"],\"longNumber\":202,\"string\":\"202\"," + + "\"stringSet\":[\"203\",\"204\",\"205\"]}]}") + .build()); + + testDataList.add(dataBuilder().scenario("ThreeLevelNestedList") + .ddbItemMap( + map().withKeyValue("threeLevelList", + AttributeValue.fromL(Arrays.asList( + AttributeValue.fromL(Arrays.asList( + AttributeValue.fromL(Arrays.asList(AttributeValue.fromS("l1_0"), + AttributeValue.fromS("l1_1"))), + AttributeValue.fromL(Arrays.asList(AttributeValue.fromS("l2_0"), + AttributeValue.fromS("l2_1"))) + )) + , + AttributeValue.fromL(Arrays.asList( + AttributeValue.fromL(Arrays.asList(AttributeValue.fromS("l3_0"), + AttributeValue.fromS("l3_1"))), + AttributeValue.fromL(Arrays.asList(AttributeValue.fromS("l4_0"), + AttributeValue.fromS("l4_1"))) + ))))).get() + ) + .enhancedDocument( + defaultDocBuilder() + .putList("threeLevelList" + , Arrays.asList( + Arrays.asList( + Arrays.asList("l1_0", "l1_1"), Arrays.asList("l2_0", "l2_1") + ), + Arrays.asList( + Arrays.asList("l3_0", "l3_1"), Arrays.asList("l4_0", "l4_1") + ) + ) + , new EnhancedType>>() { + } + ) + + .build() + ) + .attributeConverterProvider(defaultProvider()) + .json("{\"threeLevelList\":[[[\"l1_0\",\"l1_1\"],[\"l2_0\",\"l2_1\"]],[[\"l3_0\"," + + "\"l3_1\"],[\"l4_0\",\"l4_1\"]]]}") + .typeMap(typeMap() + .addAttribute("threeLevelList", new EnhancedType>>() { + })) + .build()); + + // Test case for Nested List with Maps List> + testDataList.add(dataBuilder().scenario("listOfMapOfListValues") + .ddbItemMap( + map() + .withKeyValue("listOfListOfMaps", + AttributeValue.fromL( + Arrays.asList( + AttributeValue.fromM(getStringListAttributeValueMap("a", 2, 2)), + AttributeValue.fromM(getStringListAttributeValueMap("b", 1, 1)) + ) + ) + ).get()) + .enhancedDocument( + defaultDocBuilder() + .putList("listOfListOfMaps" + , Arrays.asList( + getStringListObjectMap("a", 2, 2), + getStringListObjectMap("b", 1, 1) + ) + , new EnhancedType>>() { + } + ) + .build() + ) + .json("{\"listOfListOfMaps\":[{\"key_a_1\":[1,2],\"key_a_2\":[1,2]},{\"key_b_1\":[1]}]}") + .attributeConverterProvider(defaultProvider()) + .typeMap(typeMap() + .addAttribute("listOfListOfMaps", new EnhancedType>>() { + })) + .build()); + + testDataList.add(dataBuilder().scenario("simpleMap") + .ddbItemMap( + map() + .withKeyValue("simpleMap", AttributeValue.fromM(getStringSimpleAttributeValueMap( + "suffix", 7))) + .get()) + .enhancedDocument( + defaultDocBuilder() + .putMap("simpleMap", getStringSimpleMap("suffix", 7, CharSequenceStringConverter.create()), + EnhancedType.of(CharSequence.class), EnhancedType.of(String.class)) + .build() + ) + .attributeConverterProvider(defaultProvider()) + .typeMap(typeMap() + .addAttribute("simpleMap", EnhancedType.of(CharSequence.class), + EnhancedType.of(String.class))) + .json("{\"simpleMap\":{\"key_suffix_1\":\"1\",\"key_suffix_2\":\"2\"," + + "\"key_suffix_3\":\"3\",\"key_suffix_4\":\"4\",\"key_suffix_5\":\"5\"," + + "\"key_suffix_6\":\"6\",\"key_suffix_7\":\"7\"}}") + .build()); + + testDataList.add(dataBuilder().scenario("ElementsOfCustomType") + .ddbItemMap( + map().withKeyValue("customMapValue", + AttributeValue.fromM( + map().withKeyValue("entryOne", + AttributeValue.fromM(getAttributeValueMapForCustomClassWithPrefix(2, 10, false))) + .get())) + .get() + ) + .enhancedDocument( + defaultDocBuilder() + .attributeConverterProviders(CustomAttributeForDocumentConverterProvider.create() + , defaultProvider()) + .putMap("customMapValue", + Stream.of(Pair.of("entryOne", customValueWithBaseAndOffset(2, 10))) + .collect(Collectors.toMap(p -> CharSequenceStringConverter.create().fromString(p.left()), p -> p.right(), + (oldValue, newValue) -> oldValue, + LinkedHashMap::new)) + , EnhancedType.of(CharSequence.class), + EnhancedType.of(CustomClassForDocumentAPI.class)) + .build() + ) + .json("{\"customMapValue\":{\"entryOne\":{\"instantList\":[\"2023-03-01T17:14:05.050Z\"," + + "\"2023-03-01T17:14:05.050Z\",\"2023-03-01T17:14:05.050Z\"],\"longNumber\":12," + + "\"string\":\"12\",\"stringSet\":[\"13\",\"14\",\"15\"]}}}") + .typeMap(typeMap() + .addAttribute("customMapValue", EnhancedType.of(CharSequence.class), + EnhancedType.of(CustomClassForDocumentAPI.class))) + .attributeConverterProvider(ChainConverterProvider.create(CustomAttributeForDocumentConverterProvider.create(), + defaultProvider())) + .build()); + + testDataList.add(dataBuilder().scenario("complexDocWithSdkBytesAndMapArrays_And_PutOverWritten") + .ddbItemMap(map().withKeyValue("nullKey",AttributeValue.fromNul(true)).get()) + .enhancedDocument( + defaultDocBuilder() + .putNull("nullKey") + .putNumber("numberKey", 1) + .putString("stringKey", "stringValue") + .putList("numberList", Arrays.asList(1, 2, 3), EnhancedType.of(Integer.class)) + .put("simpleDate", LocalDate.MIN, EnhancedType.of(LocalDate.class)) + .putStringSet("stringSet", Stream.of("one", "two").collect(Collectors.toSet())) + .putBytes("sdkByteKey", SdkBytes.fromUtf8String("a")) + .putBytesSet("sdkByteSet", + Stream.of(SdkBytes.fromUtf8String("a"), + SdkBytes.fromUtf8String("b")).collect(Collectors.toSet())) + .putNumberSet("numberSetSet", Stream.of(1, 2).collect(Collectors.toSet())) + .putList("numberList", Arrays.asList(4, 5, 6), EnhancedType.of(Integer.class)) + .putMap("simpleMap", + mapFromSimpleKeyValue(Pair.of("78b3522c-2ab3-4162-8c5d" + + "-f093fa76e68c", 3), + Pair.of("4ae1f694-52ce-4cf6-8211" + + "-232ccf780da8", 9)), + EnhancedType.of(String.class), EnhancedType.of(Integer.class)) + .putMap("mapKey", mapFromSimpleKeyValue(Pair.of("1", Arrays.asList("a", "b" + , "c")), Pair.of("2", + Collections.singletonList("1"))), + EnhancedType.of(String.class), EnhancedType.listOf(String.class)) + .build() + ) + .json("{\"nullKey\": null, \"numberKey\": 1, \"stringKey\":\"stringValue\", " + + "\"simpleDate\":\"-999999999-01-01\",\"stringSet\": " + + "[\"one\",\"two\"],\"sdkByteKey\":\"a\",\"sdkByteSet\":[\"a\",\"b\"], " + + "\"numberSetSet\": [1,2], " + + "\"numberList\": [4, 5, 6], " + + "\"simpleMap\": {\"78b3522c-2ab3-4162-8c5d-f093fa76e68c\": 3," + + "\"4ae1f694-52ce-4cf6-8211-232ccf780da8\": 9}, \"mapKey\": {\"1\":[\"a\",\"b\"," + + " \"c\"],\"2\":[\"1\"]}}") + .attributeConverterProvider(defaultProvider()) + .isGeneric(false) + .build()); + + testDataList.add(dataBuilder().scenario("insertUsingPutJson") + .ddbItemMap( + map().withKeyValue("customMapValue", + AttributeValue.fromM( + map().withKeyValue("entryOne", + AttributeValue.fromM(getAttributeValueMapForCustomClassWithPrefix(2, 10, true))) + .get())) + .get() + ) + .enhancedDocument( + defaultDocBuilder() + .attributeConverterProviders(CustomAttributeForDocumentConverterProvider.create() + ,defaultProvider()) + + .putJson("customMapValue", + "{\"entryOne\": " + + "{" + + "\"instantList\": [\"2023-03-01T17:14:05.050Z\", \"2023-03-01T17:14:05.050Z\", \"2023-03-01T17:14:05.050Z\"], " + + "\"longNumber\": 12, " + + "\"string\": \"12\"" + + "}" + + "}") + .build() + ) + .json("{\"customMapValue\":{\"entryOne\":{\"instantList\":[\"2023-03-01T17:14:05.050Z\"," + + "\"2023-03-01T17:14:05.050Z\",\"2023-03-01T17:14:05.050Z\"],\"longNumber\":12," + + "\"string\":\"12\"}}}") + .typeMap(typeMap() + .addAttribute("customMapValue", EnhancedType.of(CharSequence.class), + EnhancedType.of(CustomClassForDocumentAPI.class))) + .attributeConverterProvider(ChainConverterProvider.create(CustomAttributeForDocumentConverterProvider.create(), + defaultProvider())) + .build()); + + testDataList.add(dataBuilder().scenario("putJsonWithSimpleMapOfStrings") + .ddbItemMap( + map() + .withKeyValue("simpleMap", AttributeValue.fromM(getStringSimpleAttributeValueMap( + "suffix", 7))) + .get()) + .enhancedDocument( + defaultDocBuilder() + .putJson("simpleMap", + "{\"key_suffix_1\":\"1\",\"key_suffix_2\":\"2\",\"key_suffix_3\":" + + " \"3\",\"key_suffix_4\": " + + "\"4\",\"key_suffix_5\":\"5\",\"key_suffix_6\":\"6\",\"key_suffix_7\":\"7\"}" ) + .build() + ) + .attributeConverterProvider(defaultProvider()) + .typeMap(typeMap() + .addAttribute("simpleMap", EnhancedType.of(String.class), + EnhancedType.of(String.class))) + .json("{\"simpleMap\":{\"key_suffix_1\":\"1\",\"key_suffix_2\":\"2\"," + + "\"key_suffix_3\":\"3\",\"key_suffix_4\":\"4\",\"key_suffix_5\":\"5\"," + + "\"key_suffix_6\":\"6\",\"key_suffix_7\":\"7\"}}") + + .build()); + + // singleSdkByte SetOfSdkBytes ListOfSdkBytes and Map of SdkBytes + testDataList.add(dataBuilder().scenario("bytesSet") + .isGeneric(false) + .ddbItemMap( + map() + .withKeyValue("bytes", AttributeValue.fromB(SdkBytes.fromUtf8String("HelloWorld"))) + .withKeyValue("setOfBytes", AttributeValue.fromBs( + Arrays.asList(SdkBytes.fromUtf8String("one"), + SdkBytes.fromUtf8String("two"), + SdkBytes.fromUtf8String("three")))) + .withKeyValue("listOfBytes", AttributeValue.fromL( + Arrays.asList(SdkBytes.fromUtf8String("i1"), + SdkBytes.fromUtf8String("i2"), + SdkBytes.fromUtf8String("i3")).stream().map( + s -> AttributeValue.fromB(s)).collect(Collectors.toList()))) + .withKeyValue("mapOfBytes", AttributeValue.fromM( + Stream.of(Pair.of("k1", AttributeValue.fromB(SdkBytes.fromUtf8String("v1"))) + ,Pair.of("k2", AttributeValue.fromB(SdkBytes.fromUtf8String("v2")))) + .collect(Collectors.toMap(k->k.left(), + r ->r.right(), + (oldV, newV)-> oldV, + LinkedHashMap::new) + + + ))).get()) + .enhancedDocument( + defaultDocBuilder() + .putBytes("bytes", SdkBytes.fromUtf8String("HelloWorld")) + .putBytesSet("setOfBytes", + Arrays.asList(SdkBytes.fromUtf8String("one"), + SdkBytes.fromUtf8String("two"), + SdkBytes.fromUtf8String("three")).stream() + .collect(Collectors.toCollection(LinkedHashSet::new)) + ) + .putList("listOfBytes", + Arrays.asList(SdkBytes.fromUtf8String("i1"), + SdkBytes.fromUtf8String("i2"), + SdkBytes.fromUtf8String("i3")) + ,EnhancedType.of(SdkBytes.class) + ) + .putMap("mapOfBytes" + , Stream.of(Pair.of("k1", SdkBytes.fromUtf8String("v1")) + ,Pair.of("k2", SdkBytes.fromUtf8String("v2"))) + .collect(Collectors.toMap(k->k.left(), + r ->r.right(), + (oldV, newV)-> oldV, + LinkedHashMap::new) + + ), EnhancedType.of(String.class), EnhancedType.of(SdkBytes.class)) + + .build() + ) + .json("{\"bytes\":\"HelloWorld\",\"setOfBytes\":[\"one\",\"two\",\"three\"], " + + "\"listOfBytes\":[\"i1\",\"i2\",\"i3\"],\"mapOfBytes\": {\"k1\":\"v1\"," + + "\"k2\":\"v2\"}}") + .attributeConverterProvider(defaultProvider()) + .typeMap(typeMap() + .addAttribute("listOfBytes", EnhancedType.of(SdkBytes.class)) + .addAttribute("mapOfBytes", EnhancedType.of(String.class), + EnhancedType.of(SdkBytes.class))) + .build()); + testScenarioMap = testDataList.stream().collect(Collectors.toMap(TestData::getScenario, Function.identity())); + + // testScenarioMap = testDataList.stream().collect(Collectors.toMap(k->k.getScenario(), Function.identity())); + } + + public TestData dataForScenario(String scenario) { + return testScenarioMap.get(scenario); + } + + public List getAllGenericScenarios() { + return testScenarioMap.values().stream().filter(testData -> testData.isGeneric()).collect(Collectors.toList()); + } + + public static class AttributeStringValueMap { + private Map attributeValueMap = new LinkedHashMap<>(); + + public Map get() { + return attributeValueMap; + } + + public AttributeStringValueMap withKeyValue(String key, AttributeValue value) { + attributeValueMap.put(key, value); + return this; + } + } + + /** + * + * @param offset from base elements to differentiate the subsequent elements + * @param base Start of the foest element + * @param includeSets While testing FromJson, sets are excluded since Json treats sets as lists + * @return Map with Key - value as String, AttributeValue> + */ + /** + * Creates a map of attribute values for a custom class with a prefix added to each key. + * + * @param offset The offset from the base element to differentiate subsequent elements. + * @param base The start index of the first element. + * @param excludeSetsInMap Whether to exclude sets when creating the map. (Json treats sets as lists.) + * @return A map with key-value pairs of String and AttributeValue. + */ + private static Map getAttributeValueMapForCustomClassWithPrefix(int offset, int base, + boolean excludeSetsInMap) { + + Map map = new LinkedHashMap<>(); + map.put("instantList", + AttributeValue.fromL(Stream.of( + ofEpochMilli(FIXED_INSTANT_TIME + base +offset) ,ofEpochMilli(FIXED_INSTANT_TIME + base + offset), + ofEpochMilli(FIXED_INSTANT_TIME + base + offset)) + .map(r -> AttributeValue.fromS(String.valueOf(r))).collect(Collectors.toList()))); + map.put("longNumber", AttributeValue.fromN(String.valueOf(base + offset))); + map.put("string", AttributeValue.fromS(String.valueOf(base + offset))); + if(! excludeSetsInMap){ + map.put("stringSet", + AttributeValue.fromSs(Stream.of(1 + base + offset,2 + base +offset, 3 + base +offset).map(r -> String.valueOf(r)).collect(Collectors.toList()))); + + } + return map; + } + + private static CustomClassForDocumentAPI getCustomClassForDocumentAPIWithBaseAndOffset(int offset, int base) { + + return CustomClassForDocumentAPI.builder() + .instantList(Stream.of( + ofEpochMilli(FIXED_INSTANT_TIME + base + offset), + ofEpochMilli(FIXED_INSTANT_TIME + base + offset), + ofEpochMilli(FIXED_INSTANT_TIME + base + offset)) + .collect(Collectors.toList())) + .longNumber(Long.valueOf(base + offset)) + .string(String.valueOf(base + offset)) + .stringSet(Stream.of(1+ base + offset, 2 +base + offset, 3 + base + offset).map(String::valueOf).collect(Collectors.toCollection(LinkedHashSet::new))) + .build(); + + } + + /** + * getStringListAttributeValueMap("lvl_1", 3, 2) + * { + * key_lvl_1_1=AttributeValue(L=[AttributeValue(N=1), AttributeValue(N=2)]), + * key_lvl_1_2=AttributeValue(L=[AttributeValue(N=1), AttributeValue(N=2)]), + * key_lvl_1_3=AttributeValue(L=[AttributeValue(N=1), AttributeValue(N=2)]) + * } + */ + private static Map getStringListAttributeValueMap(String suffixKey, int numberOfKeys , + int nestedListLength ) { + + Map result = new LinkedHashMap<>(); + IntStream.range(1, numberOfKeys + 1).forEach(n-> + result.put(String.format("key_%s_%d",suffixKey,n), + AttributeValue.fromL(IntStream.range(1, nestedListLength+1).mapToObj(numb -> AttributeValue.fromN(String.valueOf(numb))).collect(Collectors.toList()))) + ); + return result; + } + + /** + * getStringListObjectMap("lvl_1", 3, 2) + * { + * key_lvl_1_1=[1,2], + * key_lvl_1_2=[1,2], + * key_lvl_1_3=[1,2] + * } + */ + private static Map> getStringListObjectMap(String suffixKey, int numberOfKeys , + int nestedListLength ) { + Map> result = new LinkedHashMap<>(); + IntStream.range(1, numberOfKeys + 1).forEach( n-> + result.put(String.format("key_%s_%d",suffixKey,n), + IntStream.range(1, nestedListLength+1).mapToObj(numb -> Integer.valueOf(numb)).collect(Collectors.toList())) + ); + return result; + } + + @Override + public Stream provideArguments(ExtensionContext context) throws Exception { + return testDataInstance().getAllGenericScenarios().stream().map(Arguments::of); + } + + /** + * { + * key_suffix_1=AttributeValue(S=1), + * key_suffix_2=AttributeValue(S=2), + * key_suffix_3=AttributeValue(S=3) + * } + */ + private static Map getStringSimpleAttributeValueMap(String suffix, int numberOfElements) { + + return IntStream.range(1, numberOfElements + 1) + .boxed() + .collect(Collectors.toMap(n -> String.format("key_%s_%d", suffix, n), + n -> AttributeValue.fromS(String.valueOf(n)) + , (oldValue, newValue) -> oldValue, LinkedHashMap::new)); + + } + + private static CustomClassForDocumentAPI customValueWithBaseAndOffset(int offset, int base) { + + return CustomClassForDocumentAPI.builder() + .instantList(Stream.of( + ofEpochMilli(FIXED_INSTANT_TIME + base +offset) ,ofEpochMilli(FIXED_INSTANT_TIME + base + offset), + ofEpochMilli(FIXED_INSTANT_TIME + base + offset)).collect(Collectors.toList())) + .longNumber(Long.valueOf(base + offset)) + .string(String.valueOf(base + offset)) + .stringSet(Stream.of(1 + base + offset,2 + base +offset, 3 + base +offset).map(r -> String.valueOf(r)).collect(Collectors.toCollection(LinkedHashSet::new))) + + .build(); + + } + + /** + * getStringSimpleMap("suffix", 2, CharSequenceStringConverter.create())) + *{ + * key_suffix_1=1, + * key_suffix_2=2 + *} + */ + private static Map getStringSimpleMap(String suffix, int numberOfElements, StringConverter stringConverter) { + return IntStream.range(1, numberOfElements + 1) + .boxed() + .collect(Collectors.toMap( + n -> stringConverter.fromString(String.format("key_%s_%d", suffix, n)), + n -> String.valueOf(n), + (key, value) -> key, // merge function to handle collisions + LinkedHashMap::new + )); + } + + private Map mapFromSimpleKeyValue(Pair...keyValuePair) { + return Stream.of(keyValuePair) + .collect(Collectors.toMap(k ->k.left(), + v ->v.right(), + (oldValue, newValue) -> oldValue, + LinkedHashMap::new)); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/ParameterizedDocumentTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/ParameterizedDocumentTest.java new file mode 100644 index 000000000000..3ac4b0b63a52 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/ParameterizedDocumentTest.java @@ -0,0 +1,156 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.core.SdkNumber; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnhancedAttributeValue; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ListAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.MapAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.string.DefaultStringConverterProvider; + +class ParameterizedDocumentTest { + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validate_BuilderMethodsOfDefaultDocument(TestData testData) { + /** + * The builder method internally creates a AttributeValueMap which is saved to the ddb, if this matches then + * the document is as expected + */ + assertThat(testData.getEnhancedDocument().toMap()).isEqualTo(testData.getDdbItemMap()); + } + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validate_validateJsonStringAreEqual(TestData testData) { + System.out.println(testData.getScenario()); + /** + * The builder method internally creates a AttributeValueMap which is saved to the ddb, if this matches then + * the document is as expected + */ + assertThat(testData.getEnhancedDocument().toJson()).isEqualTo(testData.getJson()); + } + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validate_documentsCreated_fromJson(TestData testData) { + /** + * The builder method internally creates a AttributeValueMap which is saved to the ddb, if this matches then + * the document is as expected + */ + assertThat(EnhancedDocument.fromJson(testData.getJson()).toJson()) + .isEqualTo(testData.getEnhancedDocument().toJson()); + } + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validate_documentsCreated_fromAttributeValueMap(TestData testData) { + /** + * The builder method internally creates a AttributeValueMap which is saved to the ddb, if this matches then + * the document is as expected + */ + + assertThat(EnhancedDocument.fromAttributeValueMap(testData.getDdbItemMap()).toMap()) + .isEqualTo(testData.getDdbItemMap()); + } + + @ParameterizedTest + @ArgumentsSource(EnhancedDocumentTestData.class) + void validateGetterMethodsOfDefaultDocument(TestData testData) { + EnhancedDocument enhancedDocument = testData.getEnhancedDocument(); + Map> enhancedTypeMap = testData.getTypeMap().enhancedTypeMap; + AttributeConverterProvider chainConverterProvider = testData.getAttributeConverterProvider(); + + assertThat(testData.getEnhancedDocument().toMap()).isEqualTo(testData.getDdbItemMap()); + + testData.getDdbItemMap().forEach((key, value) -> { + EnhancedAttributeValue enhancedAttributeValue = EnhancedAttributeValue.fromAttributeValue(value); + + switch (enhancedAttributeValue.type()) { + case NULL: + assertThat(enhancedDocument.isNull(key)).isTrue(); + break; + case S: + assertThat(enhancedAttributeValue.asString()).isEqualTo(enhancedDocument.getString(key)); + assertThat(enhancedAttributeValue.asString()).isEqualTo(enhancedDocument.get(key, String.class)); + assertThat(enhancedAttributeValue.asString()).isEqualTo(enhancedDocument.get(key, EnhancedType.of(String.class))); + break; + case N: + assertThat(enhancedAttributeValue.asNumber()).isEqualTo(enhancedDocument.getNumber(key).stringValue()); + assertThat(enhancedAttributeValue.asNumber()).isEqualTo(String.valueOf(enhancedDocument.get(key, + SdkNumber.class))); + assertThat(enhancedAttributeValue.asNumber()).isEqualTo(enhancedDocument.get(key, + EnhancedType.of(SdkNumber.class)).toString()); + break; + case B: + assertThat(enhancedAttributeValue.asBytes()).isEqualTo(enhancedDocument.getBytes(key)); + assertThat(enhancedAttributeValue.asBytes()).isEqualTo(enhancedDocument.get(key, SdkBytes.class)); + assertThat(enhancedAttributeValue.asBytes()).isEqualTo(enhancedDocument.get(key, EnhancedType.of(SdkBytes.class))); + break; + case BOOL: + assertThat(enhancedAttributeValue.asBoolean()).isEqualTo(enhancedDocument.getBoolean(key)); + assertThat(enhancedAttributeValue.asBoolean()).isEqualTo(enhancedDocument.get(key, Boolean.class)); + assertThat(enhancedAttributeValue.asBoolean()).isEqualTo(enhancedDocument.get(key, EnhancedType.of(Boolean.class))); + break; + case NS: + Set expectedNumber = chainConverterProvider.converterFor(EnhancedType.setOf(SdkNumber.class)).transformTo(value); + assertThat(expectedNumber).isEqualTo(enhancedDocument.getNumberSet(key)); + break; + case SS: + Set stringSet = chainConverterProvider.converterFor(EnhancedType.setOf(String.class)).transformTo(value); + assertThat(stringSet).isEqualTo(enhancedDocument.getStringSet(key)); + break; + case BS: + Set sdkBytesSet = chainConverterProvider.converterFor(EnhancedType.setOf(SdkBytes.class)).transformTo(value); + assertThat(sdkBytesSet).isEqualTo(enhancedDocument.getBytesSet(key)); + break; + case L: + EnhancedType enhancedType = enhancedTypeMap.get(key).get(0); + ListAttributeConverter converter = ListAttributeConverter + .create(chainConverterProvider.converterFor(enhancedType)); + if(converter == null){ + throw new IllegalStateException("Converter not found for " + enhancedType); + } + assertThat(converter.transformTo(value)).isEqualTo(enhancedDocument.getList(key, enhancedType)); + assertThat(enhancedDocument.getListOfUnknownType(key)).isEqualTo(value.l()); + break; + case M: + EnhancedType keyType = enhancedTypeMap.get(key).get(0); + EnhancedType valueType = enhancedTypeMap.get(key).get(1); + MapAttributeConverter mapAttributeConverter = MapAttributeConverter.mapConverter( + DefaultStringConverterProvider.create().converterFor(keyType), + chainConverterProvider.converterFor(valueType) + ); + assertThat(mapAttributeConverter.transformTo(value)) + .isEqualTo(enhancedDocument.getMap(key, keyType, valueType)); + assertThat(enhancedDocument.getMapOfUnknownType(key)).isEqualTo(value.m()); + break; + default: + throw new IllegalStateException("EnhancedAttributeValue type not found: " + enhancedAttributeValue.type()); + } + }); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/TestData.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/TestData.java new file mode 100644 index 000000000000..4a2cc9c9969e --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/document/TestData.java @@ -0,0 +1,153 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.document; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; + +public class TestData { + private EnhancedDocument enhancedDocument; + private String scenario; + private Map ddbItemMap; + private TypeMap typeMap; + private AttributeConverterProvider attributeConverterProvider; + + public String getScenario() { + return scenario; + } + + private String json; + private boolean isGeneric; + + public static Builder dataBuilder(){ + return new Builder(); + } + + public boolean isGeneric() { + return isGeneric; + } + + public EnhancedDocument getEnhancedDocument() { + return enhancedDocument; + } + + public Map getDdbItemMap() { + return ddbItemMap; + } + + public TypeMap getTypeMap() { + return typeMap; + } + + public AttributeConverterProvider getAttributeConverterProvider() { + return attributeConverterProvider; + } + + public String getJson() { + return json; + } + + public TestData(Builder builder) { + this.enhancedDocument = builder.enhancedDocument; + this.ddbItemMap = builder.ddbItemMap; + this.typeMap = builder.typeMap; + this.attributeConverterProvider = builder.attributeConverterProvider; + this.json = builder.json; + this.isGeneric = builder.isGeneric; + this.scenario = builder.scenario; + } + + public static class Builder{ + + private String scenario; + + private Builder() { + } + + private EnhancedDocument enhancedDocument; + private boolean isGeneric = true; + private Map ddbItemMap; + private TypeMap typeMap = new TypeMap(); + private AttributeConverterProvider attributeConverterProvider; + + private String json; + + public Builder enhancedDocument(EnhancedDocument enhancedDocument) { + this.enhancedDocument = enhancedDocument; + return this; + } + + public Builder ddbItemMap(Map ddbItemMap) { + this.ddbItemMap = ddbItemMap; + return this; + } + + public Builder typeMap(TypeMap typeMap) { + this.typeMap = typeMap; + return this; + } + + public Builder attributeConverterProvider(AttributeConverterProvider attributeConverterProvider) { + this.attributeConverterProvider = attributeConverterProvider; + return this; + } + + public Builder isGeneric(boolean isGeneric) { + this.isGeneric = isGeneric; + return this; + } + + public Builder scenario(String scenario) { + this.scenario = scenario; + return this; + } + + public Builder json(String json) { + this.json = json; + return this; + } + + public TestData build(){ + return new TestData(this); + } + + } + + public static class TypeMap { + private TypeMap() { + } + + public static TypeMap typeMap(){ + return new TypeMap(); + } + + Map> enhancedTypeMap = new LinkedHashMap<>(); + + public Map> getEnhancedTypeMap() { + return enhancedTypeMap; + } + + public TypeMap addAttribute(String attribute, EnhancedType... enhancedType) { + enhancedTypeMap.put(attribute, Arrays.asList(enhancedType)); + return this; + } + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/AutoGeneratedTimestampRecordTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/AutoGeneratedTimestampRecordTest.java index e6a296cfc39d..6b20ecb798ef 100644 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/AutoGeneratedTimestampRecordTest.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/AutoGeneratedTimestampRecordTest.java @@ -73,6 +73,16 @@ public class AutoGeneratedTimestampRecordTest extends LocalDynamoDbSyncTestBase private static final String TABLE_NAME = "table-name"; private static final OperationContext PRIMARY_CONTEXT = DefaultOperationContext.create(TABLE_NAME, TableMetadata.primaryIndexName()); + + private static final TableSchema FLATTENED_TABLE_SCHEMA = + StaticTableSchema.builder(FlattenedRecord.class) + .newItemSupplier(FlattenedRecord::new) + .addAttribute(Instant.class, a -> a.name("generated") + .getter(FlattenedRecord::getGenerated) + .setter(FlattenedRecord::setGenerated) + .tags(autoGeneratedTimestampAttribute())) + .build(); + private static final TableSchema TABLE_SCHEMA = StaticTableSchema.builder(Record.class) .newItemSupplier(Record::new) @@ -102,6 +112,7 @@ public class AutoGeneratedTimestampRecordTest extends LocalDynamoDbSyncTestBase .setter(Record::setConvertedLastUpdatedDate) .attributeConverter(TimeFormatUpdateTestConverter.create()) .tags(autoGeneratedTimestampAttribute())) + .flatten(FLATTENED_TABLE_SCHEMA, Record::getFlattenedRecord, Record::setFlattenedRecord) .build(); private final List> fakeItems = @@ -154,12 +165,14 @@ public void putNewRecordSetsInitialAutoGeneratedTimestamp() { mappedTable.putItem(r -> r.item(item)); Record result = mappedTable.getItem(r -> r.key(k -> k.partitionValue("id"))); GetItemResponse itemAsStoredInDDB = getItemAsStoredFromDDB(); + FlattenedRecord flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_NOW); Record expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_NOW) .setConvertedLastUpdatedDate(MOCKED_INSTANT_NOW) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); // The data in DDB is stored in converted time format assertThat(itemAsStoredInDDB.item().get("convertedLastUpdatedDate").s(), is("13 01 2019 14:00:00")); @@ -169,12 +182,14 @@ public void putNewRecordSetsInitialAutoGeneratedTimestamp() { public void updateNewRecordSetsAutoFormattedDate() { Record result = mappedTable.updateItem(r -> r.item(new Record().setId("id").setAttribute("one"))); GetItemResponse itemAsStoredInDDB = getItemAsStoredFromDDB(); + FlattenedRecord flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_NOW); Record expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_NOW) .setConvertedLastUpdatedDate(MOCKED_INSTANT_NOW) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); // The data in DDB is stored in converted time format assertThat(itemAsStoredInDDB.item().get("convertedLastUpdatedDate").s(), is("13 01 2019 14:00:00")); @@ -185,12 +200,14 @@ public void putExistingRecordUpdatedWithAutoFormattedTimestamps() { mappedTable.putItem(r -> r.item(new Record().setId("id").setAttribute("one"))); Record result = mappedTable.getItem(r -> r.key(k -> k.partitionValue("id"))); GetItemResponse itemAsStoredInDDB = getItemAsStoredFromDDB(); + FlattenedRecord flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_NOW); Record expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_NOW) .setConvertedLastUpdatedDate(MOCKED_INSTANT_NOW) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); // The data in DDB is stored in converted time format assertThat(itemAsStoredInDDB.item().get("convertedLastUpdatedDate").s(), is("13 01 2019 14:00:00")); @@ -199,13 +216,15 @@ public void putExistingRecordUpdatedWithAutoFormattedTimestamps() { mappedTable.putItem(r -> r.item(new Record().setId("id").setAttribute("one"))); result = mappedTable.getItem(r -> r.key(k -> k.partitionValue("id"))); itemAsStoredInDDB = getItemAsStoredFromDDB(); + flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_UPDATE_ONE); expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) .setConvertedLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) // Note : Since we are doing PutItem second time, the createDate gets updated, .setCreatedDate(MOCKED_INSTANT_UPDATE_ONE) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE) + .setFlattenedRecord(flattenedRecord); System.out.println("result "+result); assertThat(result, is(expectedRecord)); @@ -218,12 +237,14 @@ public void putItemFollowedByUpdates() { mappedTable.putItem(r -> r.item(new Record().setId("id").setAttribute("one"))); Record result = mappedTable.getItem(r -> r.key(k -> k.partitionValue("id"))); GetItemResponse itemAsStoredInDDB = getItemAsStoredFromDDB(); + FlattenedRecord flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_NOW); Record expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_NOW) .setConvertedLastUpdatedDate(MOCKED_INSTANT_NOW) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); // The data in DDB is stored in converted time format assertThat(itemAsStoredInDDB.item().get("convertedLastUpdatedDate").s(), is("13 01 2019 14:00:00")); @@ -233,12 +254,14 @@ public void putItemFollowedByUpdates() { result = mappedTable.updateItem(r -> r.item(new Record().setId("id").setAttribute("one"))); itemAsStoredInDDB = getItemAsStoredFromDDB(); + flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_UPDATE_ONE); expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) .setConvertedLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); // The data in DDB is stored in converted time format assertThat(itemAsStoredInDDB.item().get("convertedLastUpdatedDate").s(), is("14 01 2019 14:00:00")); @@ -247,12 +270,14 @@ public void putItemFollowedByUpdates() { Mockito.when(mockCLock.instant()).thenReturn(MOCKED_INSTANT_UPDATE_TWO); result = mappedTable.updateItem(r -> r.item(new Record().setId("id").setAttribute("one"))); itemAsStoredInDDB = getItemAsStoredFromDDB(); + flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_UPDATE_TWO); expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_UPDATE_TWO) .setConvertedLastUpdatedDate(MOCKED_INSTANT_UPDATE_TWO) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_TWO); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_TWO) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); // The data in DDB is stored in converted time format assertThat(itemAsStoredInDDB.item().get("convertedLastUpdatedDate").s(), is("15 01 2019 14:00:00")); @@ -267,12 +292,14 @@ public void putExistingRecordWithConditionExpressions() { mappedTable.putItem(r -> r.item(new Record().setId("id").setAttribute("one"))); Record result = mappedTable.getItem(r -> r.key(k -> k.partitionValue("id"))); GetItemResponse itemAsStoredInDDB = getItemAsStoredFromDDB(); + FlattenedRecord flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_NOW); Record expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_NOW) .setConvertedLastUpdatedDate(MOCKED_INSTANT_NOW) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_NOW) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); // The data in DDB is stored in converted time format assertThat(itemAsStoredInDDB.item().get("convertedLastUpdatedDate").s(), is("13 01 2019 14:00:00")); @@ -291,13 +318,15 @@ public void putExistingRecordWithConditionExpressions() { .build()); result = mappedTable.getItem(r -> r.key(k -> k.partitionValue("id"))); + flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_UPDATE_ONE); expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) .setConvertedLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) // Note that this is a second putItem call so create date is updated. .setCreatedDate(MOCKED_INSTANT_UPDATE_ONE) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); } @@ -319,12 +348,14 @@ public void updateExistingRecordWithConditionExpressions() { .conditionExpression(conditionExpression)); Record result = mappedTable.getItem(r -> r.key(k -> k.partitionValue("id"))); + FlattenedRecord flattenedRecord = new FlattenedRecord().setGenerated(MOCKED_INSTANT_UPDATE_ONE); Record expectedRecord = new Record().setId("id") .setAttribute("one") .setLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) .setConvertedLastUpdatedDate(MOCKED_INSTANT_UPDATE_ONE) .setCreatedDate(MOCKED_INSTANT_NOW) - .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE); + .setLastUpdatedDateInEpochMillis(MOCKED_INSTANT_UPDATE_ONE) + .setFlattenedRecord(flattenedRecord); assertThat(result, is(expectedRecord)); } @@ -408,6 +439,7 @@ private static class Record { private Instant lastUpdatedDate; private Instant convertedLastUpdatedDate; private Instant lastUpdatedDateInEpochMillis; + private FlattenedRecord flattenedRecord; private String getId() { return id; @@ -463,6 +495,15 @@ private Record setLastUpdatedDateInEpochMillis(Instant lastUpdatedDateInEpochMil return this; } + public FlattenedRecord getFlattenedRecord() { + return flattenedRecord; + } + + public Record setFlattenedRecord(FlattenedRecord flattenedRecord) { + this.flattenedRecord = flattenedRecord; + return this; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -477,13 +518,14 @@ public boolean equals(Object o) { Objects.equals(lastUpdatedDate, record.lastUpdatedDate) && Objects.equals(createdDate, record.createdDate) && Objects.equals(lastUpdatedDateInEpochMillis, record.lastUpdatedDateInEpochMillis) && - Objects.equals(convertedLastUpdatedDate, record.convertedLastUpdatedDate); + Objects.equals(convertedLastUpdatedDate, record.convertedLastUpdatedDate) && + Objects.equals(flattenedRecord, record.flattenedRecord); } @Override public int hashCode() { - return Objects.hash(id, attribute, - lastUpdatedDate, createdDate, lastUpdatedDateInEpochMillis, convertedLastUpdatedDate); + return Objects.hash(id, attribute, lastUpdatedDate, createdDate, lastUpdatedDateInEpochMillis, + convertedLastUpdatedDate, flattenedRecord); } @Override @@ -495,6 +537,44 @@ public String toString() { ", lastUpdatedDate=" + lastUpdatedDate + ", convertedLastUpdatedDate=" + convertedLastUpdatedDate + ", lastUpdatedDateInEpochMillis=" + lastUpdatedDateInEpochMillis + + ", flattenedRecord=" + flattenedRecord + + '}'; + } + } + + private static class FlattenedRecord { + private Instant generated; + + public Instant getGenerated() { + return generated; + } + + public FlattenedRecord setGenerated(Instant generated) { + this.generated = generated; + return this; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FlattenedRecord that = (FlattenedRecord) o; + return Objects.equals(generated, that.generated); + } + + @Override + public int hashCode() { + return Objects.hash(generated); + } + + @Override + public String toString() { + return "FlattenedRecord{" + + "generated=" + generated + '}'; } } diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/BasicCrudTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/BasicCrudTest.java index 88a91f624a85..8d59158b2931 100644 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/BasicCrudTest.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/BasicCrudTest.java @@ -45,7 +45,7 @@ import software.amazon.awssdk.services.dynamodb.model.ProjectionType; public class BasicCrudTest extends LocalDynamoDbSyncTestBase { - private static final String ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS = "a*t:t.r-i#bute+3/4(&?5=@)<6>!ch$ar%"; + private static final String ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS = "a*t:t.r-i#bute +3/4(&?5=@)<6>!ch$ar%"; private static class Record { private String id; diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicAsyncCrudTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicAsyncCrudTest.java new file mode 100644 index 000000000000..74d445228e5e --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicAsyncCrudTest.java @@ -0,0 +1,596 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.functionaltests.document; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.stringValue; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.concurrent.CompletionException; +import java.util.concurrent.ExecutionException; +import org.assertj.core.api.Assertions; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbAsyncTable; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedAsyncClient; +import software.amazon.awssdk.enhanced.dynamodb.Expression; +import software.amazon.awssdk.enhanced.dynamodb.Key; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocumentTestData; +import software.amazon.awssdk.enhanced.dynamodb.document.TestData; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.LocalDynamoDbAsyncTestBase; +import software.amazon.awssdk.enhanced.dynamodb.model.DeleteItemEnhancedRequest; +import software.amazon.awssdk.enhanced.dynamodb.model.PutItemEnhancedRequest; +import software.amazon.awssdk.enhanced.dynamodb.model.UpdateItemEnhancedRequest; +import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.ConditionalCheckFailedException; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; +import software.amazon.awssdk.services.dynamodb.model.GetItemResponse; + +@RunWith(Parameterized.class) +public class BasicAsyncCrudTest extends LocalDynamoDbAsyncTestBase { + + private static final String ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS = "a*t:t.r-i#bute+3/4(&?5=@)<6>!ch$ar%"; + private final TestData testData; + + @Rule + public ExpectedException exception = ExpectedException.none(); + private DynamoDbEnhancedAsyncClient enhancedClient; + private final String tableName = getConcreteTableName("table-name"); + private DynamoDbAsyncClient lowLevelClient; + + private DynamoDbAsyncTable docMappedtable ; + + @Before + public void setUp(){ + lowLevelClient = getDynamoDbAsyncClient(); + enhancedClient = DynamoDbEnhancedAsyncClient.builder() + .dynamoDbClient(lowLevelClient) + .build(); + docMappedtable = enhancedClient.table(tableName, + TableSchema.documentSchemaBuilder() + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "id", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", AttributeValueType.S) + .attributeConverterProviders(defaultProvider()) + .build()); + docMappedtable.createTable().join(); + } + + public BasicAsyncCrudTest(TestData testData) { + this.testData = testData; + } + + @Parameterized.Parameters + public static Collection parameters() throws Exception { + return EnhancedDocumentTestData.testDataInstance().getAllGenericScenarios(); + } + + private static EnhancedDocument appendKeysToDoc(TestData testData) { + EnhancedDocument enhancedDocument = testData.getEnhancedDocument().toBuilder() + .putString("id", "id-value") + .putString("sort", "sort-value").build(); + return enhancedDocument; + } + + private static Map simpleKey() { + Map key = new LinkedHashMap<>(); + key.put("id", AttributeValue.fromS("id-value")); + key.put("sort", AttributeValue.fromS("sort-value")); + return key; + } + + private static Map appendKeysToTestDataAttributeMap(Map attributeValueMap) { + + Map result = new LinkedHashMap<>(attributeValueMap); + result.put("id", AttributeValue.fromS("id-value")); + result.put("sort", AttributeValue.fromS("sort-value")); + return result; + } + + @After + public void deleteTable() { + getDynamoDbAsyncClient().deleteTable(DeleteTableRequest.builder() + .tableName(tableName) + .build()).join(); + } + + @Test + public void putThenGetItemUsingKey() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData); + docMappedtable.putItem(enhancedDocument).join(); + Map key = simpleKey(); + GetItemResponse lowLevelGet = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)).join(); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(enhancedDocument.toMap()); + } + + @Test + public void putThenGetItemUsingKeyItem() throws ExecutionException, InterruptedException { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData); + + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + + EnhancedDocument result = docMappedtable.getItem(EnhancedDocument.builder() + .attributeConverterProviders(testData.getAttributeConverterProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .build()).join(); + + Map attributeValueMap = appendKeysToTestDataAttributeMap(testData.getDdbItemMap()); + Assertions.assertThat(result.toMap()).isEqualTo(enhancedDocument.toMap()); + Assertions.assertThat(result.toMap()).isEqualTo(attributeValueMap); + } + + @Test + public void getNonExistentItem() { + EnhancedDocument item = docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))).join(); + Assertions.assertThat(item).isNull(); + } + + @Test + public void updateOverwriteCompleteItem_usingShortcutForm() { + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + docMappedtable.putItem(enhancedDocument).join(); + + // Updating new Items other than the one present in testData + EnhancedDocument updateDocument = EnhancedDocument.builder() + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putString("attribute2", "five") + .putString("attribute3", "six") + .build(); + + EnhancedDocument result = docMappedtable.updateItem(updateDocument).join(); + + Map updatedItemMap = new LinkedHashMap<>(testData.getDdbItemMap()); + + updatedItemMap.put("attribute", AttributeValue.fromS("four")); + updatedItemMap.put("attribute2", AttributeValue.fromS("five")); + updatedItemMap.put("attribute3", AttributeValue.fromS("six")); + updatedItemMap.put("id", AttributeValue.fromS("id-value")); + updatedItemMap.put("sort", AttributeValue.fromS("sort-value")); + Map key = simpleKey(); + GetItemResponse lowLevelGet = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)).join(); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(result.toMap()); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(updatedItemMap); + } + + @Test + public void putTwiceThenGetItem() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + + docMappedtable.putItem(enhancedDocument).join(); + + // Updating new Items other than the one present in testData + EnhancedDocument updateDocument = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putString("attribute2", "five") + .putString("attribute3", "six") + .build(); + docMappedtable.putItem(r -> r.item(updateDocument)).join(); + Map key = simpleKey(); + GetItemResponse lowLevelGet = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)).join(); + + // All the items are overwritten + Assertions.assertThat(lowLevelGet.item()).isEqualTo(updateDocument.toMap()); + + EnhancedDocument docGetItem = docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value" + ))).join(); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(docGetItem.toMap()); + + } + + @Test + public void putThenDeleteItem_usingShortcutForm() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + + Map key = simpleKey(); + + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + GetItemResponse lowLevelGetBeforeDelete = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)).join(); + + + EnhancedDocument beforeDeleteResult = + docMappedtable.deleteItem(Key.builder().partitionValue("id-value").sortValue("sort-value").build()).join(); + + + EnhancedDocument afterDeleteDoc = + docMappedtable.getItem(Key.builder().partitionValue("id-value").sortValue("sort-value").build()).join(); + + GetItemResponse lowLevelGetAfterDelete = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)).join(); + + assertThat(enhancedDocument.toMap(), is(EnhancedDocument.fromAttributeValueMap(lowLevelGetBeforeDelete.item()).toMap())); + assertThat(beforeDeleteResult.toMap(), is(enhancedDocument.toMap())); + assertThat(beforeDeleteResult.toMap(), is(lowLevelGetBeforeDelete.item())); + assertThat(afterDeleteDoc, is(nullValue())); + assertThat(lowLevelGetAfterDelete.item().size(), is(0)); + } + + @Test + public void putThenDeleteItem_usingKeyItemForm() { + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + + docMappedtable.putItem(enhancedDocument).join(); + EnhancedDocument beforeDeleteResult = + docMappedtable.deleteItem(enhancedDocument).join(); + EnhancedDocument afterDeleteResult = + docMappedtable.getItem(Key.builder().partitionValue("id-value").sortValue("sort-value").build()).join(); + + assertThat(beforeDeleteResult.toMap(), is(enhancedDocument.toMap())); + assertThat(afterDeleteResult, is(nullValue())); + + Map key = simpleKey(); + GetItemResponse lowLevelGetBeforeDelete = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)).join(); + assertThat(lowLevelGetBeforeDelete.item().size(), is(0)); + } + + @Test + public void putWithConditionThatSucceeds() { + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + + EnhancedDocument newDoc = enhancedDocument.toBuilder().putString("attribute", "four").build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("one")) + .putExpressionValue(":value1", stringValue("three")) + .build(); + + docMappedtable.putItem(PutItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression).build()).join(); + + EnhancedDocument result = docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))).join(); + assertThat(result.toMap(), is(newDoc.toMap())); + } + + @Test + public void putWithConditionThatFails() throws ExecutionException, InterruptedException { + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + EnhancedDocument newDoc = enhancedDocument.toBuilder().putString("attribute", "four").build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("wrong")) + .build(); + + exception.expect(CompletionException.class); + exception.expectCause(instanceOf(ConditionalCheckFailedException.class)); + docMappedtable.putItem(PutItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression).build()).join(); + } + + @Test + public void deleteNonExistentItem() { + EnhancedDocument result = + docMappedtable.deleteItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))).join(); + assertThat(result, is(nullValue())); + } + + @Test + public void deleteWithConditionThatSucceeds() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("three")) + .build(); + + Key key = docMappedtable.keyFrom(enhancedDocument); + docMappedtable.deleteItem(DeleteItemEnhancedRequest.builder().key(key).conditionExpression(conditionExpression).build()).join(); + + EnhancedDocument result = docMappedtable.getItem(r -> r.key(key)).join(); + assertThat(result, is(nullValue())); + } + + @Test + public void deleteWithConditionThatFails() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("wrong")) + .build(); + + exception.expect(CompletionException.class); + exception.expectCause(instanceOf(ConditionalCheckFailedException.class)); + docMappedtable.deleteItem(DeleteItemEnhancedRequest.builder().key(docMappedtable.keyFrom(enhancedDocument)) + .conditionExpression(conditionExpression) + .build()).join(); + } + + @Test + public void updateOverwriteCompleteRecord_usingShortcutForm() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + + docMappedtable.putItem(enhancedDocument).join(); + // Updating new Items other than the one present in testData + EnhancedDocument.Builder updateDocBuilder = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putString("attribute2", "five") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "six"); + + EnhancedDocument expectedDocument = updateDocBuilder.build(); + // Explicitly Nullify each of the previous members + testData.getEnhancedDocument().toMap().keySet().forEach(r -> { + updateDocBuilder.putNull(r); + }); + + EnhancedDocument updateDocument = updateDocBuilder.build(); + EnhancedDocument result = docMappedtable.updateItem(updateDocument).join(); + assertThat(result.toMap(), is(expectedDocument.toMap())); + assertThat(result.toJson(), is("{\"a*t:t.r-i#bute+3/4(&?5=@)<6>!ch$ar%\":\"six\",\"attribute\":\"four\"," + + "\"attribute2\":\"five\",\"id\":\"id-value\",\"sort\":\"sort-value\"}")); + } + + @Test + public void updateCreatePartialRecord() { + + EnhancedDocument.Builder docBuilder = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one"); + EnhancedDocument updateDoc = docBuilder.build(); + /** + * Explicitly removing AttributeNull Value that are added in testData for testing. + * This should not be treated as Null in partial update, because for a Document, an AttributeValue.fromNul(true) with a + * Null value is treated as Null or non-existent during updateItem. + */ + testData.getEnhancedDocument().toMap().entrySet().forEach(entry -> { + if (AttributeValue.fromNul(true).equals(entry.getValue())) { + docBuilder.remove(entry.getKey()); + } + }); + EnhancedDocument expectedDocUpdate = docBuilder.build(); + EnhancedDocument result = docMappedtable.updateItem(r -> r.item(updateDoc)).join(); + assertThat(result.toMap(), is(expectedDocUpdate.toMap())); + } + + @Test + public void updateCreateKeyOnlyRecord() { + EnhancedDocument.Builder updateDocBuilder = appendKeysToDoc(testData).toBuilder(); + + EnhancedDocument expectedDocument = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value").build(); + + testData.getEnhancedDocument().toMap().keySet().forEach(r -> { + updateDocBuilder.putNull(r); + }); + + EnhancedDocument cleanedUpDoc = updateDocBuilder.build(); + EnhancedDocument result = docMappedtable.updateItem(r -> r.item(cleanedUpDoc)).join(); + assertThat(result.toMap(), is(expectedDocument.toMap())); + } + + @Test + public void updateOverwriteModelledNulls() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + EnhancedDocument updateDocument = EnhancedDocument.builder().attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putNull("attribute2") + .putNull(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS).build(); + + EnhancedDocument result = docMappedtable.updateItem(r -> r.item(updateDocument)).join(); + + + assertThat(result.isPresent("attribute2"), is(false)); + assertThat(result.isPresent(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS), is(false)); + assertThat(result.getString("attribute"), is("four")); + + testData.getEnhancedDocument().toMap().entrySet().forEach(entry -> { + if (AttributeValue.fromNul(true).equals(entry.getValue())) { + assertThat(result.isPresent(entry.getKey()), is(true)); + } else { + assertThat(result.toMap().get(entry.getKey()), is(testData.getDdbItemMap().get(entry.getKey()))); + } + }); + } + + @Test + public void updateCanIgnoreNullsDoesNotIgnoreNullAttributeValues() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + EnhancedDocument updateDocument = EnhancedDocument.builder() + .putString("id", "id-value") + .putString("sort", "sort-value") + .putNull("attribute") + .putNull(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .build(); + EnhancedDocument result = docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(updateDocument) + .ignoreNulls(true) + .build()).join(); + EnhancedDocument expectedResult = appendKeysToDoc(testData).toBuilder() + .putString("attribute2", "two") + .build(); + assertThat(result.toMap(), is(expectedResult.toMap())); + } + + @Test + public void updateKeyOnlyExistingRecordDoesNothing() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData); + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + EnhancedDocument hashKeyAndSortOnly = EnhancedDocument.builder() + .putString("id", "id-value") + .putString("sort", "sort-value").build(); + EnhancedDocument result = docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(hashKeyAndSortOnly) + .ignoreNulls(true) + .build()).join(); + assertThat(result.toMap(), is(enhancedDocument.toMap())); + } + + @Test + public void updateWithConditionThatSucceeds() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + EnhancedDocument newDoc = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("three")) + .build(); + + docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression) + .build()).join(); + + EnhancedDocument result = + docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))).join(); + assertThat(result.toMap(), is(enhancedDocument.toBuilder().putString("attribute", "four").build().toMap())); + } + + @Test + public void updateWithConditionThatFails() { + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)).join(); + + EnhancedDocument newDoc = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("wrong")) + .build(); + + exception.expect(CompletionException.class); + exception.expectCause(instanceOf(ConditionalCheckFailedException.class)); + docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression) + .build()).join(); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicCrudTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicCrudTest.java new file mode 100644 index 000000000000..e4068d2ce292 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicCrudTest.java @@ -0,0 +1,580 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.functionaltests.document; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.stringValue; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; +import org.assertj.core.api.Assertions; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; +import software.amazon.awssdk.enhanced.dynamodb.Expression; +import software.amazon.awssdk.enhanced.dynamodb.Key; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocumentTestData; +import software.amazon.awssdk.enhanced.dynamodb.document.TestData; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.LocalDynamoDbSyncTestBase; +import software.amazon.awssdk.enhanced.dynamodb.model.DeleteItemEnhancedRequest; +import software.amazon.awssdk.enhanced.dynamodb.model.PutItemEnhancedRequest; +import software.amazon.awssdk.enhanced.dynamodb.model.UpdateItemEnhancedRequest; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.ConditionalCheckFailedException; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; +import software.amazon.awssdk.services.dynamodb.model.GetItemResponse; + + +@RunWith(Parameterized.class) +public class BasicCrudTest extends LocalDynamoDbSyncTestBase { + + private static final String ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS = "a*t:t.r-i#bute+3/4(&?5=@)<6>!ch$ar%"; + private final TestData testData; + @Rule + public ExpectedException exception = ExpectedException.none(); + private DynamoDbEnhancedClient enhancedClient; + private final String tableName = getConcreteTableName("table-name"); + private DynamoDbClient lowLevelClient; + + private DynamoDbTable docMappedtable ; + + + @Before + public void setUp(){ + lowLevelClient = getDynamoDbClient(); + enhancedClient = DynamoDbEnhancedClient.builder() + .dynamoDbClient(lowLevelClient) + .build(); + docMappedtable = enhancedClient.table(tableName, + TableSchema.documentSchemaBuilder() + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "id", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", AttributeValueType.S) + .attributeConverterProviders(defaultProvider()) + .build()); + docMappedtable.createTable(); + } + + public BasicCrudTest(TestData testData) { + this.testData = testData; + } + + @Parameterized.Parameters + public static Collection parameters() throws Exception { + return EnhancedDocumentTestData.testDataInstance().getAllGenericScenarios(); + } + + private static EnhancedDocument appendKeysToDoc(TestData testData) { + EnhancedDocument enhancedDocument = testData.getEnhancedDocument().toBuilder() + .putString("id", "id-value") + .putString("sort", "sort-value").build(); + return enhancedDocument; + } + + private static Map simpleKey() { + Map key = new LinkedHashMap<>(); + key.put("id", AttributeValue.fromS("id-value")); + key.put("sort", AttributeValue.fromS("sort-value")); + return key; + } + + private static Map appendKeysToTestDataAttributeMap(Map attributeValueMap) { + + Map result = new LinkedHashMap<>(attributeValueMap); + result.put("id", AttributeValue.fromS("id-value")); + result.put("sort", AttributeValue.fromS("sort-value")); + return result; + } + + @After + public void deleteTable() { + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(tableName) + .build()); + } + + @Test + public void putThenGetItemUsingKey() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData); + docMappedtable.putItem(enhancedDocument); + Map key = simpleKey(); + GetItemResponse lowLevelGet = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(enhancedDocument.toMap()); + } + + @Test + public void putThenGetItemUsingKeyItem() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData); + + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + + EnhancedDocument result = docMappedtable.getItem(EnhancedDocument.builder() + .attributeConverterProviders(testData.getAttributeConverterProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .build()); + + Map attributeValueMap = appendKeysToTestDataAttributeMap(testData.getDdbItemMap()); + Assertions.assertThat(result.toMap()).isEqualTo(enhancedDocument.toMap()); + Assertions.assertThat(result.toMap()).isEqualTo(attributeValueMap); + } + + @Test + public void getNonExistentItem() { + EnhancedDocument item = docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))); + Assertions.assertThat(item).isNull(); + } + + @Test + public void updateOverwriteCompleteItem_usingShortcutForm() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + docMappedtable.putItem(enhancedDocument); + + // Updating new Items other than the one present in testData + EnhancedDocument updateDocument = EnhancedDocument.builder() + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putString("attribute2", "five") + .putString("attribute3", "six") + .build(); + + EnhancedDocument result = docMappedtable.updateItem(updateDocument); + + Map updatedItemMap = new LinkedHashMap<>(testData.getDdbItemMap()); + + updatedItemMap.put("attribute", AttributeValue.fromS("four")); + updatedItemMap.put("attribute2", AttributeValue.fromS("five")); + updatedItemMap.put("attribute3", AttributeValue.fromS("six")); + updatedItemMap.put("id", AttributeValue.fromS("id-value")); + updatedItemMap.put("sort", AttributeValue.fromS("sort-value")); + Map key = simpleKey(); + GetItemResponse lowLevelGet = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(result.toMap()); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(updatedItemMap); + } + + @Test + public void putTwiceThenGetItem() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + docMappedtable.putItem(enhancedDocument); + + // Updating new Items other than the one present in testData + EnhancedDocument updateDocument = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putString("attribute2", "five") + .putString("attribute3", "six") + .build(); + docMappedtable.putItem(r -> r.item(updateDocument)); + Map key = simpleKey(); + GetItemResponse lowLevelGet = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)); + // All the items are overwritten + Assertions.assertThat(lowLevelGet.item()).isEqualTo(updateDocument.toMap()); + + EnhancedDocument docGetItem = docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value" + ))); + Assertions.assertThat(lowLevelGet.item()).isEqualTo(docGetItem.toMap()); + + } + + @Test + public void putThenDeleteItem_usingShortcutForm() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + Map key = simpleKey(); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + GetItemResponse lowLevelGetBeforeDelete = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)); + + + EnhancedDocument beforeDeleteResult = + docMappedtable.deleteItem(Key.builder().partitionValue("id-value").sortValue("sort-value").build()); + + + EnhancedDocument afterDeleteDoc = + docMappedtable.getItem(Key.builder().partitionValue("id-value").sortValue("sort-value").build()); + + GetItemResponse lowLevelGetAfterDelete = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)); + assertThat(enhancedDocument.toMap(), is(EnhancedDocument.fromAttributeValueMap(lowLevelGetBeforeDelete.item()).toMap())); + assertThat(beforeDeleteResult.toMap(), is(enhancedDocument.toMap())); + assertThat(beforeDeleteResult.toMap(), is(lowLevelGetBeforeDelete.item())); + assertThat(afterDeleteDoc, is(nullValue())); + assertThat(lowLevelGetAfterDelete.item().size(), is(0)); + } + + @Test + public void putThenDeleteItem_usingKeyItemForm() { + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + docMappedtable.putItem(enhancedDocument); + EnhancedDocument beforeDeleteResult = + docMappedtable.deleteItem(enhancedDocument); + EnhancedDocument afterDeleteResult = + docMappedtable.getItem(Key.builder().partitionValue("id-value").sortValue("sort-value").build()); + + assertThat(beforeDeleteResult.toMap(), is(enhancedDocument.toMap())); + assertThat(afterDeleteResult, is(nullValue())); + + Map key = simpleKey(); + GetItemResponse lowLevelGetBeforeDelete = lowLevelClient.getItem(r -> r.key(key).tableName(tableName)); + assertThat(lowLevelGetBeforeDelete.item().size(), is(0)); + } + + @Test + public void putWithConditionThatSucceeds() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + + EnhancedDocument newDoc = enhancedDocument.toBuilder().putString("attribute", "four").build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("one")) + .putExpressionValue(":value1", stringValue("three")) + .build(); + + docMappedtable.putItem(PutItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression).build()); + + EnhancedDocument result = docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))); + assertThat(result.toMap(), is(newDoc.toMap())); + } + + @Test + public void putWithConditionThatFails() { + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString("attribute3", "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + + EnhancedDocument newDoc = enhancedDocument.toBuilder().putString("attribute", "four").build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("wrong")) + .build(); + exception.expect(ConditionalCheckFailedException.class); + docMappedtable.putItem(PutItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression).build()); + } + + @Test + public void deleteNonExistentItem() { + EnhancedDocument result = + docMappedtable.deleteItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))); + assertThat(result, is(nullValue())); + } + + @Test + public void deleteWithConditionThatSucceeds() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("three")) + .build(); + + Key key = docMappedtable.keyFrom(enhancedDocument); + docMappedtable.deleteItem(DeleteItemEnhancedRequest.builder().key(key).conditionExpression(conditionExpression).build()); + EnhancedDocument result = docMappedtable.getItem(r -> r.key(key)); + assertThat(result, is(nullValue())); + } + + @Test + public void deleteWithConditionThatFails() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("wrong")) + .build(); + + exception.expect(ConditionalCheckFailedException.class); + docMappedtable.deleteItem(DeleteItemEnhancedRequest.builder().key(docMappedtable.keyFrom(enhancedDocument)) + .conditionExpression(conditionExpression) + .build()); + } + + @Test + public void updateOverwriteCompleteRecord_usingShortcutForm() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(enhancedDocument); + // Updating new Items other than the one present in testData + EnhancedDocument.Builder updateDocBuilder = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putString("attribute2", "five") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "six"); + + EnhancedDocument expectedDocument = updateDocBuilder.build(); + // Explicitly Nullify each of the previous members + testData.getEnhancedDocument().toMap().keySet().forEach(r -> { + updateDocBuilder.putNull(r); + System.out.println(r); + }); + + EnhancedDocument updateDocument = updateDocBuilder.build(); + EnhancedDocument result = docMappedtable.updateItem(updateDocument); + assertThat(result.toMap(), is(expectedDocument.toMap())); + assertThat(result.toJson(), is("{\"a*t:t.r-i#bute+3/4(&?5=@)<6>!ch$ar%\":\"six\",\"attribute\":\"four\"," + + "\"attribute2\":\"five\",\"id\":\"id-value\",\"sort\":\"sort-value\"}")); + } + + @Test + public void updateCreatePartialRecord() { + + EnhancedDocument.Builder docBuilder = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one"); + EnhancedDocument updateDoc = docBuilder.build(); + /** + * Explicitly removing AttributeNull Value that are added in testData for testing. + * This should not be treated as Null in partial update, because for a Document, an AttributeValue.fromNul(true) with a + * Null value is treated as Null or non-existent during updateItem. + */ + testData.getEnhancedDocument().toMap().entrySet().forEach(entry -> { + if (AttributeValue.fromNul(true).equals(entry.getValue())) { + docBuilder.remove(entry.getKey()); + } + }); + EnhancedDocument expectedDocUpdate = docBuilder.build(); + EnhancedDocument result = docMappedtable.updateItem(r -> r.item(updateDoc)); + assertThat(result.toMap(), is(expectedDocUpdate.toMap())); + } + + @Test + public void updateCreateKeyOnlyRecord() { + EnhancedDocument.Builder updateDocBuilder = appendKeysToDoc(testData).toBuilder(); + + EnhancedDocument expectedDocument = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value").build(); + + testData.getEnhancedDocument().toMap().keySet().forEach(r -> { + updateDocBuilder.putNull(r); + }); + + EnhancedDocument cleanedUpDoc = updateDocBuilder.build(); + EnhancedDocument result = docMappedtable.updateItem(r -> r.item(cleanedUpDoc)); + assertThat(result.toMap(), is(expectedDocument.toMap())); + } + + @Test + public void updateOverwriteModelledNulls() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + EnhancedDocument updateDocument = EnhancedDocument.builder().attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .putNull("attribute2") + .putNull(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS).build(); + + EnhancedDocument result = docMappedtable.updateItem(r -> r.item(updateDocument)); + assertThat(result.isPresent("attribute2"), is(false)); + assertThat(result.isPresent(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS), is(false)); + assertThat(result.getString("attribute"), is("four")); + + testData.getEnhancedDocument().toMap().entrySet().forEach(entry -> { + if (AttributeValue.fromNul(true).equals(entry.getValue())) { + assertThat(result.isPresent(entry.getKey()), is(true)); + } else { + assertThat(result.toMap().get(entry.getKey()), is(testData.getDdbItemMap().get(entry.getKey()))); + } + }); + } + + @Test + public void updateCanIgnoreNullsDoesNotIgnoreNullAttributeValues() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + EnhancedDocument updateDocument = EnhancedDocument.builder() + .putString("id", "id-value") + .putString("sort", "sort-value") + .putNull("attribute") + .putNull(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .build(); + EnhancedDocument result = docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(updateDocument) + .ignoreNulls(true) + .build()); + EnhancedDocument expectedResult = appendKeysToDoc(testData).toBuilder() + .putString("attribute2", "two") + .build(); + + assertThat(result.toMap(), is(expectedResult.toMap())); + } + + @Test + public void updateKeyOnlyExistingRecordDoesNothing() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData); + docMappedtable.putItem(r -> r.item(enhancedDocument)); + EnhancedDocument hashKeyAndSortOnly = EnhancedDocument.builder() + .putString("id", "id-value") + .putString("sort", "sort-value").build(); + EnhancedDocument result = docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(hashKeyAndSortOnly) + .ignoreNulls(true) + .build()); + assertThat(result.toMap(), is(enhancedDocument.toMap())); + } + + @Test + public void updateWithConditionThatSucceeds() { + + + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + EnhancedDocument newDoc = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("three")) + .build(); + + docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression) + .build()); + + EnhancedDocument result = docMappedtable.getItem(r -> r.key(k -> k.partitionValue("id-value").sortValue("sort-value"))); + assertThat(result.toMap(), is(enhancedDocument.toBuilder().putString("attribute", "four").build().toMap())); + } + + @Test + public void updateWithConditionThatFails() { + EnhancedDocument enhancedDocument = appendKeysToDoc(testData).toBuilder() + .putString("attribute", "one") + .putString("attribute2", "two") + .putString(ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS, "three") + .build(); + + docMappedtable.putItem(r -> r.item(enhancedDocument)); + + EnhancedDocument newDoc = EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putString("sort", "sort-value") + .putString("attribute", "four") + .build(); + Expression conditionExpression = Expression.builder() + .expression("#key = :value OR #key1 = :value1") + .putExpressionName("#key", "attribute") + .putExpressionName("#key1", ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS) + .putExpressionValue(":value", stringValue("wrong")) + .putExpressionValue(":value1", stringValue("wrong")) + .build(); + + exception.expect(ConditionalCheckFailedException.class); + docMappedtable.updateItem(UpdateItemEnhancedRequest.builder(EnhancedDocument.class) + .item(newDoc) + .conditionExpression(conditionExpression) + .build()); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicQueryTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicQueryTest.java new file mode 100644 index 000000000000..8248566ddd08 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicQueryTest.java @@ -0,0 +1,609 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.functionaltests.document; + +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.numberValue; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.stringValue; +import static software.amazon.awssdk.enhanced.dynamodb.model.QueryConditional.keyEqualTo; +import static software.amazon.awssdk.enhanced.dynamodb.model.QueryConditional.sortBetween; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import software.amazon.awssdk.core.pagination.sync.SdkIterable; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.Expression; +import software.amazon.awssdk.enhanced.dynamodb.Key; +import software.amazon.awssdk.enhanced.dynamodb.NestedAttributeName; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.LocalDynamoDbSyncTestBase; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.InnerAttribConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.InnerAttributeRecord; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.NestedTestRecord; +import software.amazon.awssdk.enhanced.dynamodb.model.Page; +import software.amazon.awssdk.enhanced.dynamodb.model.PageIterable; +import software.amazon.awssdk.enhanced.dynamodb.model.QueryEnhancedRequest; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; + +public class BasicQueryTest extends LocalDynamoDbSyncTestBase { + private DynamoDbClient lowLevelClient; + private DynamoDbTable docMappedtable ; + private DynamoDbTable neseteddocMappedtable ; + + @Rule + public ExpectedException exception = ExpectedException.none(); + private DynamoDbEnhancedClient enhancedClient; + private final String tableName = getConcreteTableName("doc-table-name"); + private final String nestedTableName = getConcreteTableName("doc-nested-table-name"); + + @Before + public void createTable() { + + + lowLevelClient = getDynamoDbClient(); + enhancedClient = DynamoDbEnhancedClient.builder() + .dynamoDbClient(lowLevelClient) + .build(); + docMappedtable = enhancedClient.table(tableName, + TableSchema.documentSchemaBuilder() + .attributeConverterProviders(defaultProvider()) + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "id", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", + AttributeValueType.N) + .attributeConverterProviders(defaultProvider()) + .build()); + docMappedtable.createTable(); + neseteddocMappedtable = enhancedClient.table(nestedTableName, + TableSchema.documentSchemaBuilder() + .attributeConverterProviders( + new InnerAttribConverterProvider<>(), + defaultProvider()) + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "outerAttribOne", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", + AttributeValueType.N) + .build()); + neseteddocMappedtable.createTable(); + + } + + @After + public void deleteTable() { + + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(tableName) + .build()); + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(nestedTableName) + .build()); + } + + private static final List DOCUMENTS = + IntStream.range(0, 10) + .mapToObj(i -> EnhancedDocument.builder() + .putString("id", "id-value") + .putNumber("sort", i) + .putNumber("value", i) + .build() + + ).collect(Collectors.toList()); + + private static final List DOCUMENTS_WITH_PROVIDERS = + IntStream.range(0, 10) + .mapToObj(i -> EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putNumber("sort", i) + .putNumber("value", i) + .build() + ).collect(Collectors.toList()); + + public static EnhancedDocument createDocumentFromNestedRecord(NestedTestRecord nestedTestRecord){ + + EnhancedDocument.Builder enhancedDocument = + EnhancedDocument.builder(); + if (nestedTestRecord.getOuterAttribOne() != null) { + enhancedDocument.putString("outerAttribOne", nestedTestRecord.getOuterAttribOne()); + } + if (nestedTestRecord.getSort() != null) { + enhancedDocument.putNumber("sort", nestedTestRecord.getSort()); + } + if (nestedTestRecord.getDotVariable() != null) { + enhancedDocument.putString("test.com", nestedTestRecord.getDotVariable()); + } + InnerAttributeRecord innerAttributeRecord = nestedTestRecord.getInnerAttributeRecord(); + if (innerAttributeRecord != null) { + enhancedDocument.put("innerAttributeRecord", innerAttributeRecord, EnhancedType.of(InnerAttributeRecord.class)); + } + return enhancedDocument.build(); + } + + private static final List NESTED_TEST_DOCUMENTS = + IntStream.range(0, 10) + .mapToObj(i -> { + final NestedTestRecord nestedTestRecord = new NestedTestRecord(); + nestedTestRecord.setOuterAttribOne("id-value-" + i); + nestedTestRecord.setSort(i); + final InnerAttributeRecord innerAttributeRecord = new InnerAttributeRecord(); + innerAttributeRecord.setAttribOne("attribOne-"+i); + innerAttributeRecord.setAttribTwo(i); + nestedTestRecord.setInnerAttributeRecord(innerAttributeRecord); + nestedTestRecord.setDotVariable("v"+i); + return nestedTestRecord; + }) + .map(BasicQueryTest::createDocumentFromNestedRecord) + + .collect(Collectors.toList()); + + private static final List NESTED_TEST_RECORDS = + IntStream.range(0, 10) + .mapToObj(i -> { + final NestedTestRecord nestedTestRecord = new NestedTestRecord(); + nestedTestRecord.setOuterAttribOne("id-value-" + i); + nestedTestRecord.setSort(i); + final InnerAttributeRecord innerAttributeRecord = new InnerAttributeRecord(); + innerAttributeRecord.setAttribOne("attribOne-"+i); + innerAttributeRecord.setAttribTwo(i); + nestedTestRecord.setInnerAttributeRecord(innerAttributeRecord); + nestedTestRecord.setDotVariable("v"+i); + return nestedTestRecord; + }) + .collect(Collectors.toList()); + + private void insertDocuments() { + DOCUMENTS.forEach(document -> docMappedtable.putItem(r -> r.item(document))); + NESTED_TEST_DOCUMENTS.forEach(nestedDocs -> neseteddocMappedtable.putItem(r -> r.item(nestedDocs))); + } + + private void insertNestedDocuments() { + NESTED_TEST_DOCUMENTS.forEach(nestedDocs -> neseteddocMappedtable.putItem(r -> r.item(nestedDocs))); + } + + @Test + public void queryAllRecordsDefaultSettings_shortcutForm() { + insertDocuments(); + Iterator> results = + docMappedtable.query(keyEqualTo(k -> k.partitionValue("id-value"))).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS.stream().map(i -> i + .toBuilder() + .attributeConverterProviders(new InnerAttribConverterProvider<>(), defaultProvider()) + .build() + .toJson()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryAllRecordsDefaultSettings_withProjection() { + insertDocuments(); + Iterator> results = + docMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value"))) + .attributesToProject("value") + ).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(DOCUMENTS.size())); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("id"), is(nullValue())); + assertThat(firstRecord.getNumber("sort"), is(nullValue())); + assertThat(firstRecord.getNumber("value").intValue(), is(0)); + } + + @Test + public void queryAllRecordsDefaultSettings_shortcutForm_viaItems() { + insertDocuments(); + + PageIterable query = docMappedtable.query(keyEqualTo(k -> k.partitionValue("id-value"))); + SdkIterable results = query.items(); + assertThat(results.stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS.stream().map(i -> i + .toBuilder() + .attributeConverterProviders(new InnerAttribConverterProvider<>(), defaultProvider()) + .build() + .toJson()).collect(Collectors.toList()))); + + } + + @Test + public void queryAllRecordsWithFilter() { + insertDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#value >= :min_value AND #value <= :max_value") + .expressionValues(expressionValues) + .expressionNames(Collections.singletonMap("#value", "value")) + .build(); + + Iterator> results = + docMappedtable.query(QueryEnhancedRequest.builder() + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value"))) + .filterExpression(expression) + .build()) + .iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.stream().filter(r -> r.getNumber("sort").intValue() >= 3 && r.getNumber("sort").intValue() <= 5) + .map(doc -> doc.toJson()) + .collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryAllRecordsWithFilterAndProjection() { + insertDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#value >= :min_value AND #value <= :max_value") + .expressionValues(expressionValues) + .expressionNames(Collections.singletonMap("#value", "value")) + .build(); + + Iterator> results = + docMappedtable.query(QueryEnhancedRequest.builder() + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value"))) + .filterExpression(expression) + .attributesToProject("value") + .build()) + .iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items(), hasSize(3)); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + + EnhancedDocument record = page.items().get(0); + assertThat(record.getString("id"), nullValue()); + assertThat(record.getNumber("sort"), nullValue()); + assertThat(record.getNumber("value").intValue(), is(3)); + } + + @Test + public void queryBetween() { + insertDocuments(); + Key fromKey = Key.builder().partitionValue("id-value").sortValue(3).build(); + Key toKey = Key.builder().partitionValue("id-value").sortValue(5).build(); + Iterator> results = docMappedtable.query(r -> r.queryConditional(sortBetween(fromKey, toKey))).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.stream().filter(r -> r.getNumber("sort").intValue() >= 3 && r.getNumber("sort").intValue() <= 5) + .map(doc -> doc.toJson()) + .collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryLimit() { + insertDocuments(); + Iterator> results = + docMappedtable.query(QueryEnhancedRequest.builder() + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value"))) + .limit(5) + .build()) + .iterator(); + assertThat(results.hasNext(), is(true)); + Page page1 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page2 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page3 = results.next(); + assertThat(results.hasNext(), is(false)); + + Map expectedLastEvaluatedKey1 = new HashMap<>(); + expectedLastEvaluatedKey1.put("id", stringValue("id-value")); + expectedLastEvaluatedKey1.put("sort", numberValue(4)); + Map expectedLastEvaluatedKey2 = new HashMap<>(); + expectedLastEvaluatedKey2.put("id", stringValue("id-value")); + expectedLastEvaluatedKey2.put("sort", numberValue(9)); + assertThat(page1.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(0, 5).stream().map( doc -> doc.toJson()).collect(Collectors.toList()))); + assertThat(page1.lastEvaluatedKey(), is(expectedLastEvaluatedKey1)); + assertThat(page2.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(5, 10).stream().map( doc -> doc.toJson()).collect(Collectors.toList()))); + assertThat(page2.lastEvaluatedKey(), is(expectedLastEvaluatedKey2)); + assertThat(page3.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), is(empty())); + assertThat(page3.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryEmpty() { + Iterator> results = + docMappedtable.query(r -> r.queryConditional(keyEqualTo(k -> k.partitionValue("id-value")))).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items(), is(empty())); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryEmpty_viaItems() { + PageIterable query = docMappedtable.query(keyEqualTo(k -> k.partitionValue("id-value"))); + SdkIterable results = query.items(); + assertThat(results.stream().collect(Collectors.toList()), is(empty())); + } + + @Test + public void queryExclusiveStartKey() { + Map exclusiveStartKey = new HashMap<>(); + exclusiveStartKey.put("id", stringValue("id-value")); + exclusiveStartKey.put("sort", numberValue(7)); + insertDocuments(); + Iterator> results = + docMappedtable.query(QueryEnhancedRequest.builder() + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value"))) + .exclusiveStartKey(exclusiveStartKey) + .build()) + .iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().stream().map(doc -> doc.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(8, 10).stream().map(i -> i.toJson()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryExclusiveStartKey_viaItems() { + Map exclusiveStartKey = new HashMap<>(); + exclusiveStartKey.put("id", stringValue("id-value")); + exclusiveStartKey.put("sort", numberValue(7)); + insertDocuments(); + SdkIterable results = + docMappedtable.query(QueryEnhancedRequest.builder() + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value"))) + .exclusiveStartKey(exclusiveStartKey) + .build()) + .items(); + + assertThat(results.stream().map(doc -> doc.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(8, 10).stream().map(i -> i.toJson()).collect(Collectors.toList()))); + } + + @Test + public void queryNestedRecord_SingleAttributeName() { + insertNestedDocuments(); + Iterator> results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-1"))) + .addNestedAttributeToProject(NestedAttributeName.builder().addElement("innerAttributeRecord") + .addElement("attribOne").build())).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is(nullValue())); + assertThat(firstRecord.getString("sort"), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is("attribOne-1")); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(nullValue())); + results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-1"))) + .addAttributeToProject("sort")).iterator(); + assertThat(results.hasNext(), is(true)); + page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is(nullValue())); + assertThat(firstRecord.getNumber("sort").intValue(), is(1)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + } + + @Test + public void queryNestedRecord_withAttributeNameList() { + insertNestedDocuments(); + Iterator> results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-1"))) + .addNestedAttributesToProject(Arrays.asList( + NestedAttributeName.builder().elements("innerAttributeRecord", "attribOne").build(), + NestedAttributeName.builder().addElement("outerAttribOne").build())) + .addNestedAttributesToProject(NestedAttributeName.builder() + .addElements(Arrays.asList("innerAttributeRecord", + "attribTwo")).build())).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is("id-value-1")); + assertThat(firstRecord.getNumber("sort"), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is( + "attribOne-1")); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(1)); + } + + @Test + public void queryNestedRecord_withAttributeNameListAndStringAttributeToProjectAppended() { + insertNestedDocuments(); + Iterator> results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-1"))) + .addNestedAttributesToProject(Arrays.asList( + NestedAttributeName.builder().elements("innerAttributeRecord","attribOne").build())) + .addNestedAttributesToProject(NestedAttributeName.create("innerAttributeRecord","attribTwo")) + .addAttributeToProject("sort")).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is(is(nullValue()))); + assertThat(firstRecord.getNumber("sort").intValue(), is(1)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is( + "attribOne-1")); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(1)); + } + + + @Test + public void queryAllRecordsDefaultSettings_withNestedProjectionNamesNotInNameMap() { + insertNestedDocuments(); + Iterator> results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-1"))) + .addNestedAttributeToProject( NestedAttributeName.builder().addElement("nonExistentSlot").build())).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord, is(nullValue())); + } + + @Test + public void queryRecordDefaultSettings_withDotInTheName() { + insertNestedDocuments(); + Iterator> results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-7"))) + .addNestedAttributeToProject( NestedAttributeName.create("test.com"))).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is(is(nullValue()))); + assertThat(firstRecord.getNumber("sort"), is(is(nullValue()))); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)) , is(nullValue())); + assertThat(firstRecord.getString("test.com"), is("v7")); + Iterator> resultWithAttributeToProject = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-7"))) + .attributesToProject( "test.com").build()).iterator(); + assertThat(resultWithAttributeToProject.hasNext(), is(true)); + Page pageResult = resultWithAttributeToProject.next(); + assertThat(resultWithAttributeToProject.hasNext(), is(false)); + assertThat(pageResult.items().size(), is(1)); + EnhancedDocument record = pageResult.items().get(0); + assertThat(record.getString("outerAttribOne"), is(is(nullValue()))); + assertThat(record.getNumber("sort"), is(is(nullValue()))); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)) , is(nullValue())); + assertThat(record.getString("test.com"), is("v7")); + } + + @Test + public void queryRecordDefaultSettings_withEmptyAttributeList() { + insertNestedDocuments(); + Iterator> results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-7"))) + .attributesToProject(new ArrayList<>()).build()).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is("id-value-7")); + assertThat(firstRecord.getNumber("sort").intValue(), is(7)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(7)); + assertThat(firstRecord.getString("test.com"), is("v7")); + } + + @Test + public void queryRecordDefaultSettings_withNullAttributeList() { + insertNestedDocuments(); + List backwardCompatibilty = null; + Iterator> results = + neseteddocMappedtable.query(b -> b + .queryConditional(keyEqualTo(k -> k.partitionValue("id-value-7"))) + .attributesToProject(backwardCompatibilty).build()).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(1)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is("id-value-7")); + assertThat(firstRecord.getNumber("sort").intValue(), is(7)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(7)); + assertThat(firstRecord.getString("test.com"), is("v7")); + } + + @Test + public void queryAllRecordsDefaultSettings_withNestedProjectionNameEmptyNameMap() { + insertNestedDocuments(); + + assertThatExceptionOfType(Exception.class).isThrownBy( + () -> { + Iterator> results = neseteddocMappedtable.query(b -> b.queryConditional( + keyEqualTo(k -> k.partitionValue("id-value-3"))) + .attributesToProject("").build()).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + }); + + assertThatExceptionOfType(Exception.class).isThrownBy( + () -> { + Iterator> results = neseteddocMappedtable.query(b -> b.queryConditional( + keyEqualTo(k -> k.partitionValue("id-value-3"))) + .addNestedAttributeToProject(NestedAttributeName.create("")).build()).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + + }); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicScanTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicScanTest.java new file mode 100644 index 000000000000..6f0b9284f58c --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/BasicScanTest.java @@ -0,0 +1,671 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.functionaltests.document; + +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.numberValue; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.stringValue; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import software.amazon.awssdk.core.pagination.sync.SdkIterable; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.Expression; +import software.amazon.awssdk.enhanced.dynamodb.NestedAttributeName; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.LocalDynamoDbSyncTestBase; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.InnerAttribConverterProvider; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.InnerAttributeRecord; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.NestedTestRecord; +import software.amazon.awssdk.enhanced.dynamodb.model.Page; +import software.amazon.awssdk.enhanced.dynamodb.model.ScanEnhancedRequest; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; + +public class BasicScanTest extends LocalDynamoDbSyncTestBase { + private DynamoDbClient lowLevelClient; + + private DynamoDbTable docMappedtable ; + private DynamoDbTable neseteddocMappedtable ; + + @Rule + public ExpectedException exception = ExpectedException.none(); + private DynamoDbEnhancedClient enhancedClient; + private final String tableName = getConcreteTableName("doc-table-name"); + private final String nestedTableName = getConcreteTableName("doc-nested-table-name"); + + + @Before + public void createTable() { + + + lowLevelClient = getDynamoDbClient(); + enhancedClient = DynamoDbEnhancedClient.builder() + .dynamoDbClient(lowLevelClient) + .build(); + + docMappedtable = enhancedClient.table(tableName, + TableSchema.documentSchemaBuilder() + .attributeConverterProviders(defaultProvider()) + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "id", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", + AttributeValueType.N) + .attributeConverterProviders(defaultProvider()) + .build()); + docMappedtable.createTable(); + + neseteddocMappedtable = enhancedClient.table(nestedTableName, + TableSchema.documentSchemaBuilder() + .attributeConverterProviders( + new InnerAttribConverterProvider<>(), + defaultProvider()) + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "outerAttribOne", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", + AttributeValueType.N) + .build()); + neseteddocMappedtable.createTable(); + + } + private static final List DOCUMENTS = + IntStream.range(0, 10) + .mapToObj(i -> EnhancedDocument.builder() + .putString("id", "id-value") + .putNumber("sort", i) + .putNumber("value", i) + .build() + + ).collect(Collectors.toList()); + + private static final List DOCUMENTS_WITH_PROVIDERS = + IntStream.range(0, 10) + .mapToObj(i -> EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putNumber("sort", i) + .putNumber("value", i) + .build() + + ).collect(Collectors.toList()); + + + private static final List NESTED_TEST_DOCUMENTS = + IntStream.range(0, 10) + .mapToObj(i -> { + final NestedTestRecord nestedTestRecord = new NestedTestRecord(); + nestedTestRecord.setOuterAttribOne("id-value-" + i); + nestedTestRecord.setSort(i); + final InnerAttributeRecord innerAttributeRecord = new InnerAttributeRecord(); + innerAttributeRecord.setAttribOne("attribOne-"+i); + innerAttributeRecord.setAttribTwo(i); + nestedTestRecord.setInnerAttributeRecord(innerAttributeRecord); + nestedTestRecord.setDotVariable("v"+i); + return nestedTestRecord; + }) + .map(BasicQueryTest::createDocumentFromNestedRecord) + + .collect(Collectors.toList()); + + + private void insertDocuments() { + DOCUMENTS.forEach(document -> docMappedtable.putItem(r -> r.item(document))); + NESTED_TEST_DOCUMENTS.forEach(nestedDocs -> neseteddocMappedtable.putItem(r -> r.item(nestedDocs))); + } + + private void insertNestedDocuments() { + NESTED_TEST_DOCUMENTS.forEach(nestedDocs -> neseteddocMappedtable.putItem(r -> r.item(nestedDocs))); + } + + @After + public void deleteTable() { + + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(tableName) + .build()); + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(nestedTableName) + .build()); + } + + @Test + public void scanAllRecordsDefaultSettings() { + insertDocuments(); + + docMappedtable.scan(ScanEnhancedRequest.builder().build()) + .forEach(p -> p.items().forEach(item -> System.out.println(item))); + Iterator> results = docMappedtable.scan(ScanEnhancedRequest.builder().build()).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(doc -> doc.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.stream().map(i -> i.toJson()).collect(Collectors.toList()))); + + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryAllRecordsDefaultSettings_withProjection() { + insertDocuments(); + + Iterator> results = + docMappedtable.scan(b -> b.attributesToProject("sort")).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().size(), is(DOCUMENTS.size())); + + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("id"), is(nullValue())); + assertThat(firstRecord.getNumber("sort").intValue(), is(0)); + } + + @Test + public void scanAllRecordsDefaultSettings_viaItems() { + insertDocuments(); + SdkIterable items = docMappedtable.scan(ScanEnhancedRequest.builder().limit(2).build()).items(); + assertThat(items.stream().map(i->i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.stream().map(i -> i.toJson()).collect(Collectors.toList()))); + } + + @Test + public void scanAllRecordsWithFilter() { + insertDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("sort >= :min_value AND sort <= :max_value") + .expressionValues(expressionValues) + .build(); + + Iterator> results = + docMappedtable.scan(ScanEnhancedRequest.builder().filterExpression(expression).build()).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.stream().filter(r -> r.getNumber("sort").intValue() >= 3 && r.getNumber("sort").intValue() <= 5) + .map( j -> j.toJson()) + .collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanAllRecordsWithFilterAndProjection() { + insertDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + Iterator> results = + docMappedtable.scan( + ScanEnhancedRequest.builder() + .attributesToProject("sort") + .filterExpression(expression) + .build() + ).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items(), hasSize(3)); + + EnhancedDocument record = page.items().get(0); + + assertThat(record.getString("id"), is(nullValue())); + assertThat(record.getNumber("sort").intValue(), is(3)); + } + + @Test + public void scanLimit() { + insertDocuments(); + Iterator> results = docMappedtable.scan(r -> r.limit(5)).iterator(); + assertThat(results.hasNext(), is(true)); + Page page1 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page2 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page3 = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page1.items().stream().map( i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(0, 5).stream().map( i -> i.toJson()).collect(Collectors.toList()))); + assertThat(page1.lastEvaluatedKey(), is(getKeyMap(4))); + assertThat(page2.items().stream().map( i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(5, 10).stream().map( i -> i.toJson()).collect(Collectors.toList()))); + + assertThat(page2.lastEvaluatedKey(), is(getKeyMap(9))); + assertThat(page3.items(), is(empty())); + assertThat(page3.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanLimit_viaItems() { + insertDocuments(); + SdkIterable results = docMappedtable.scan(r -> r.limit(5)).items(); + assertThat(results.stream().map(i -> i.toJson()) + .collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.stream().map(i ->i.toJson()).collect(Collectors.toList()))); + } + + @Test + public void scanEmpty() { + Iterator> results = docMappedtable.scan().iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items(), is(empty())); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanEmpty_viaItems() { + Iterator results = docMappedtable.scan().items().iterator(); + assertThat(results.hasNext(), is(false)); + } + + @Test + public void scanExclusiveStartKey() { + insertDocuments(); + Iterator> results = + docMappedtable.scan(r -> r.exclusiveStartKey(getKeyMap(7))).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().stream().map(i -> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(8, 10).stream().map( i -> i.toJson()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanExclusiveStartKey_viaItems() { + insertDocuments(); + SdkIterable results = + docMappedtable.scan(r -> r.exclusiveStartKey(getKeyMap(7))).items(); + assertThat(results.stream().map( i-> i.toJson()).collect(Collectors.toList()), + is(DOCUMENTS_WITH_PROVIDERS.subList(8, 10).stream().map( i-> i.toJson()).collect(Collectors.toList()))); + } + + private Map getKeyMap(int sort) { + Map result = new HashMap<>(); + result.put("id", stringValue("id-value")); + result.put("sort", numberValue(sort)); + return Collections.unmodifiableMap(result); + } + + @Test + public void scanAllRecordsWithFilterAndNestedProjectionSingleAttribute() { + insertNestedDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + Iterator> results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributesToProject( + NestedAttributeName.create(Arrays.asList("innerAttributeRecord","attribOne"))) + .build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne() + .compareTo(item2.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne())); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is(nullValue())); + assertThat(firstRecord.getNumber("sort"), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is( + "attribOne-3")); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), + is(nullValue())); + + //Attribute repeated with new and old attributeToProject + results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributesToProject(NestedAttributeName.create("sort")) + .addAttributeToProject("sort") + .build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.getNumber("sort").bigDecimalValue() + .compareTo(item2.getNumber("sort").bigDecimalValue())); + firstRecord = page.items().get(0); + assertThat(firstRecord.get("outerAttribOne", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + assertThat(firstRecord.getNumber("sort").intValue(), is(3)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + + results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributeToProject( + NestedAttributeName.create(Arrays.asList("innerAttributeRecord","attribOne"))) + .build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne() + .compareTo(item2.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne())); + firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is(nullValue())); + assertThat(firstRecord.getNumber("sort"), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is( + "attribOne-3")); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), + is(nullValue())); + } + + @Test + public void scanAllRecordsWithFilterAndNestedProjectionMultipleAttribute() { + insertNestedDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + final ScanEnhancedRequest build = ScanEnhancedRequest.builder() + .filterExpression(expression) + .addAttributeToProject("outerAttribOne") + .addNestedAttributesToProject(Arrays.asList(NestedAttributeName.builder().elements("innerAttributeRecord") + .addElement("attribOne").build())) + .addNestedAttributeToProject(NestedAttributeName.builder() + .elements(Arrays.asList("innerAttributeRecord", "attribTwo")).build()) + .build(); + Iterator> results = + neseteddocMappedtable.scan( + build + ).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne() + .compareTo(item2.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne())); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is("id-value-3")); + assertThat(firstRecord.getNumber("sort"), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is( + "attribOne-3")); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(3)); + } + + @Test + public void scanAllRecordsWithNonExistigKeyName() { + insertNestedDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + Iterator> results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributesToProject(NestedAttributeName.builder().addElement("nonExistent").build()) + .build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord, is(nullValue())); + } + + @Test + public void scanAllRecordsWithDotInAttributeKeyName() { + insertNestedDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + Iterator> results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributesToProject(NestedAttributeName + .create("test.com")).build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.getString("test.com") + .compareTo(item2.getString("test.com"))); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("uterAttribOne"), is(nullValue())); + assertThat(firstRecord.getNumber("sort"), is(nullValue())); + assertThat(firstRecord.getString("test.com"), is("v3")); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + } + + @Test + public void scanAllRecordsWithSameNamesRepeated() { + //Attribute repeated with new and old attributeToProject + insertNestedDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + Iterator >results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributesToProject(NestedAttributeName.builder().elements("sort").build()) + .addAttributeToProject("sort") + .build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.getNumber("sort").bigDecimalValue() + .compareTo(item2.getNumber("sort").bigDecimalValue())); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is(nullValue())); + assertThat(firstRecord.getNumber("sort").intValue(), is(3)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)), is(nullValue())); + } + + @Test + public void scanAllRecordsWithEmptyList() { + //Attribute repeated with new and old attributeToProject + insertNestedDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + Iterator >results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributesToProject(new ArrayList<>()) + .build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.getNumber("sort").bigDecimalValue() + .compareTo(item2.getNumber("sort").bigDecimalValue())); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is("id-value-3")); + assertThat(firstRecord.getNumber("sort").intValue(), is(3)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(3)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is("attribOne-3")); + } + + @Test + public void scanAllRecordsWithNullAttributesToProject() { + //Attribute repeated with new and old attributeToProject + insertNestedDocuments(); + List backwardCompatibilityNull = null; + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + Iterator >results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .attributesToProject("test.com") + .attributesToProject(backwardCompatibilityNull) + .build() + ).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().size(), is(3)); + Collections.sort(page.items(), (item1, item2) -> + item1.getNumber("sort").bigDecimalValue() + .compareTo(item2.getNumber("sort").bigDecimalValue())); + EnhancedDocument firstRecord = page.items().get(0); + assertThat(firstRecord.getString("outerAttribOne"), is("id-value-3")); + assertThat(firstRecord.getNumber("sort").intValue(), is(3)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribTwo(), is(3)); + assertThat(firstRecord.get("innerAttributeRecord", EnhancedType.of(InnerAttributeRecord.class)).getAttribOne(), is( + "attribOne-3")); + } + + @Test + public void scanAllRecordsWithNestedProjectionNameEmptyNameMap() { + insertNestedDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("#sort >= :min_value AND #sort <= :max_value") + .expressionValues(expressionValues) + .putExpressionName("#sort", "sort") + .build(); + + final Iterator> results = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addNestedAttributesToProject(NestedAttributeName.builder().elements("").build()).build() + ).iterator(); + + assertThatExceptionOfType(Exception.class).isThrownBy(() -> { final boolean b = results.hasNext(); + Page next = results.next(); }).withMessageContaining("ExpressionAttributeNames contains invalid " + + "value"); + + final Iterator> resultsAttributeToProject = + neseteddocMappedtable.scan( + ScanEnhancedRequest.builder() + .filterExpression(expression) + .addAttributeToProject("").build() + ).iterator(); + + assertThatExceptionOfType(Exception.class).isThrownBy(() -> { + final boolean b = resultsAttributeToProject.hasNext(); + Page next = resultsAttributeToProject.next(); + }); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/ComplexInputItemsTests.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/ComplexInputItemsTests.java new file mode 100644 index 000000000000..1f968a4f96d7 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/ComplexInputItemsTests.java @@ -0,0 +1,127 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.functionaltests.document; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; + +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; +import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.LocalDynamoDbSyncTestBase; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; + +public class ComplexInputItemsTests extends LocalDynamoDbSyncTestBase { + private final String tableName = getConcreteTableName("table-name"); + private DynamoDbEnhancedClient enhancedClient; + private DynamoDbClient lowLevelClient; + private DynamoDbTable docMappedtable; + + @Before + public void setUp() { + lowLevelClient = getDynamoDbClient(); + enhancedClient = DynamoDbEnhancedClient.builder() + .dynamoDbClient(lowLevelClient) + .build(); + docMappedtable = enhancedClient.table(tableName, + TableSchema.documentSchemaBuilder() + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "id", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", + AttributeValueType.N) + .attributeConverterProviders(defaultProvider()) + .build()); + docMappedtable.createTable(); + } + + @After + public void deleteTable() { + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(tableName) + .build()); + } + + @Test + public void getAndPutDocumentWithNoAttributeConverters() { + + docMappedtable.putItem(EnhancedDocument.builder() + .putString("id", "one") + .putNumber("sort", 1) + .putString("element", "noAttributeConverter") + .build()); + + EnhancedDocument noConverterInGetItem = docMappedtable.getItem(EnhancedDocument.builder() + .putString("id", "one") + .putNumber("sort", 1) + .build()); + assertThat(noConverterInGetItem.toJson(), is("{\"id\":\"one\",\"sort\":1,\"element\":\"noAttributeConverter\"}")); + + } + + + @Test + public void bytesInAlTypes() { + + Map bytesMap = new LinkedHashMap<>(); + bytesMap.put("key1", SdkBytes.fromByteArray("1".getBytes(StandardCharsets.UTF_8))); + bytesMap.put("key2", SdkBytes.fromByteArray("2".getBytes(StandardCharsets.UTF_8))); + EnhancedDocument enhancedDocument = EnhancedDocument.builder() + .putString("id", "allTypesBytes") + .putNumber("sort", 2) + .put("put", SdkBytes.fromUtf8String("1"), SdkBytes.class) + .putBytes("putBytes", + SdkBytes.fromByteBuffer(ByteBuffer.wrap("1".getBytes(StandardCharsets.UTF_8)))) + .putBytesSet("putBytesSet", + Stream.of(SdkBytes.fromUtf8String("1"), + SdkBytes.fromUtf8String("2")).collect(Collectors.toCollection(LinkedHashSet::new))) + .putList("putBytesList", + Stream.of(SdkBytes.fromUtf8String("1"), + SdkBytes.fromUtf8String("2")).collect(Collectors.toList()), + EnhancedType.of(SdkBytes.class)) + .putMap("bytesMap", bytesMap, EnhancedType.of(String.class), + EnhancedType.of(SdkBytes.class)) + .build(); + + docMappedtable.putItem(enhancedDocument); + + + EnhancedDocument retrievedItem = docMappedtable.getItem(EnhancedDocument.builder() + .putString("id", "allTypesBytes") + .putNumber("sort", 2) + .build()); + + assertThat(retrievedItem.toJson(), is("{\"putBytesSet\":[\"MQ==\",\"Mg==\"],\"putBytes\":\"MQ==\",\"putBytesList\":[\"MQ==\",\"Mg==\"],\"id\":\"allTypesBytes\",\"sort\":2,\"bytesMap\":{\"key1\":\"MQ==\",\"key2\":\"Mg==\"},\"put\":\"MQ==\"}" + )); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/IndexQueryTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/IndexQueryTest.java new file mode 100644 index 000000000000..eceffa95a791 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/IndexQueryTest.java @@ -0,0 +1,244 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.functionaltests.document; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.numberValue; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.stringValue; +import static software.amazon.awssdk.enhanced.dynamodb.model.QueryConditional.keyEqualTo; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbIndex; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; +import software.amazon.awssdk.enhanced.dynamodb.Key; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.LocalDynamoDbSyncTestBase; +import software.amazon.awssdk.enhanced.dynamodb.model.CreateTableEnhancedRequest; +import software.amazon.awssdk.enhanced.dynamodb.model.EnhancedGlobalSecondaryIndex; +import software.amazon.awssdk.enhanced.dynamodb.model.Page; +import software.amazon.awssdk.enhanced.dynamodb.model.QueryConditional; +import software.amazon.awssdk.enhanced.dynamodb.model.QueryEnhancedRequest; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; +import software.amazon.awssdk.services.dynamodb.model.ProjectionType; + +public class IndexQueryTest extends LocalDynamoDbSyncTestBase { + + private DynamoDbClient lowLevelClient; + + private DynamoDbTable docMappedtable ; + + @Rule + public ExpectedException exception = ExpectedException.none(); + private DynamoDbEnhancedClient enhancedClient; + private final String tableName = getConcreteTableName("doc-table-name"); + DynamoDbIndex keysOnlyMappedIndex ; + + @Before + public void createTable() { + + + lowLevelClient = getDynamoDbClient(); + enhancedClient = DynamoDbEnhancedClient.builder() + .dynamoDbClient(lowLevelClient) + .build(); + docMappedtable = enhancedClient.table(tableName, + TableSchema.documentSchemaBuilder() + .attributeConverterProviders(defaultProvider()) + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "id", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", + AttributeValueType.N) + .addIndexPartitionKey("gsi_keys_only", "gsi_id", AttributeValueType.S) + .addIndexSortKey("gsi_keys_only", "gsi_sort", AttributeValueType.N) + .attributeConverterProviders(defaultProvider()) + .build()); + + docMappedtable.createTable(CreateTableEnhancedRequest.builder() + .provisionedThroughput(getDefaultProvisionedThroughput()) + .globalSecondaryIndices( + EnhancedGlobalSecondaryIndex.builder() + .indexName("gsi_keys_only") + .projection(p -> p.projectionType(ProjectionType.KEYS_ONLY)) + .provisionedThroughput(getDefaultProvisionedThroughput()) + .build()) + .build()); + + keysOnlyMappedIndex = docMappedtable.index("gsi_keys_only"); + + } + + + private static final List DOCUMENTS = + IntStream.range(0, 10) + .mapToObj(i -> EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putNumber("sort", i) + .putNumber("value", i) + .putString("gsi_id", "gsi-id-value") + .putNumber("gsi_sort", i) + .build() + ).collect(Collectors.toList()); + + private static final List KEYS_ONLY_DOCUMENTS = + DOCUMENTS.stream() + .map(record -> EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", record.getString("id")) + .putNumber("sort", record.getNumber("sort")) + .putString("gsi_id", record.getString("gsi_id")) + .putNumber("gsi_sort", record.getNumber("gsi_sort")).build() + ) + .collect(Collectors.toList()); + + private void insertDocuments() { + DOCUMENTS.forEach(document -> docMappedtable.putItem(r -> r.item(document))); + } + + + + @After + public void deleteTable() { + + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(tableName) + .build()); + } + + @Test + public void queryAllRecordsDefaultSettings_usingShortcutForm() { + insertDocuments(); + + Iterator> results = + keysOnlyMappedIndex.query(keyEqualTo(k -> k.partitionValue("gsi-id-value"))).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.stream().map(i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryBetween() { + insertDocuments(); + Key fromKey = Key.builder().partitionValue("gsi-id-value").sortValue(3).build(); + Key toKey = Key.builder().partitionValue("gsi-id-value").sortValue(5).build(); + Iterator> results = + keysOnlyMappedIndex.query(r -> r.queryConditional(QueryConditional.sortBetween(fromKey, toKey))).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.stream().filter(r -> r.getNumber("sort").intValue() >= 3 && r.getNumber("sort").intValue() <= 5) + .map( j -> j.toMap()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryLimit() { + insertDocuments(); + Iterator> results = + keysOnlyMappedIndex.query(QueryEnhancedRequest.builder() + .queryConditional(keyEqualTo(k -> k.partitionValue("gsi-id-value"))) + .limit(5) + .build()) + .iterator(); + assertThat(results.hasNext(), is(true)); + Page page1 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page2 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page3 = results.next(); + assertThat(results.hasNext(), is(false)); + + Map expectedLastEvaluatedKey1 = new HashMap<>(); + expectedLastEvaluatedKey1.put("id", stringValue(KEYS_ONLY_DOCUMENTS.get(4).getString("id"))); + expectedLastEvaluatedKey1.put("sort", numberValue(KEYS_ONLY_DOCUMENTS.get(4).getNumber("sort"))); + expectedLastEvaluatedKey1.put("gsi_id", stringValue(KEYS_ONLY_DOCUMENTS.get(4).getString("gsi_id"))); + expectedLastEvaluatedKey1.put("gsi_sort", numberValue(KEYS_ONLY_DOCUMENTS.get(4).getNumber("gsi_sort"))); + Map expectedLastEvaluatedKey2 = new HashMap<>(); + expectedLastEvaluatedKey2.put("id", stringValue(KEYS_ONLY_DOCUMENTS.get(9).getString("id"))); + expectedLastEvaluatedKey2.put("sort", numberValue(KEYS_ONLY_DOCUMENTS.get(9).getNumber("sort"))); + expectedLastEvaluatedKey2.put("gsi_id", stringValue(KEYS_ONLY_DOCUMENTS.get(9).getString("gsi_id"))); + expectedLastEvaluatedKey2.put("gsi_sort", numberValue(KEYS_ONLY_DOCUMENTS.get(9).getNumber("gsi_sort"))); + + assertThat(page1.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.subList(0, 5).stream().map( i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page1.lastEvaluatedKey(), is(expectedLastEvaluatedKey1)); + assertThat(page2.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), is(KEYS_ONLY_DOCUMENTS.subList(5, 10).stream().map( i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page2.lastEvaluatedKey(), is(expectedLastEvaluatedKey2)); + assertThat(page3.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), is(empty())); + assertThat(page3.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryEmpty() { + Iterator> results = + keysOnlyMappedIndex.query(r -> r.queryConditional(keyEqualTo(k -> k.partitionValue("gsi-id-value")))).iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items(), is(empty())); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void queryExclusiveStartKey() { + insertDocuments(); + Map expectedLastEvaluatedKey = new HashMap<>(); + expectedLastEvaluatedKey.put("id", stringValue(KEYS_ONLY_DOCUMENTS.get(7).getString("id"))); + expectedLastEvaluatedKey.put("sort", numberValue(KEYS_ONLY_DOCUMENTS.get(7).getNumber("sort"))); + expectedLastEvaluatedKey.put("gsi_id", stringValue(KEYS_ONLY_DOCUMENTS.get(7).getString("gsi_id"))); + expectedLastEvaluatedKey.put("gsi_sort", numberValue(KEYS_ONLY_DOCUMENTS.get(7).getNumber("gsi_sort"))); + Iterator> results = + keysOnlyMappedIndex.query(QueryEnhancedRequest.builder() + .queryConditional(keyEqualTo(k -> k.partitionValue("gsi-id-value"))) + .exclusiveStartKey(expectedLastEvaluatedKey).build()) + .iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.subList(8, 10).stream().map(i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/IndexScanTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/IndexScanTest.java new file mode 100644 index 000000000000..503444001597 --- /dev/null +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/document/IndexScanTest.java @@ -0,0 +1,226 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.enhanced.dynamodb.functionaltests.document; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; +import static software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider.defaultProvider; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.numberValue; +import static software.amazon.awssdk.enhanced.dynamodb.internal.AttributeValues.stringValue; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import software.amazon.awssdk.enhanced.dynamodb.AttributeValueType; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbIndex; +import software.amazon.awssdk.enhanced.dynamodb.DynamoDbTable; +import software.amazon.awssdk.enhanced.dynamodb.Expression; +import software.amazon.awssdk.enhanced.dynamodb.TableMetadata; +import software.amazon.awssdk.enhanced.dynamodb.TableSchema; +import software.amazon.awssdk.enhanced.dynamodb.document.EnhancedDocument; +import software.amazon.awssdk.enhanced.dynamodb.functionaltests.LocalDynamoDbSyncTestBase; +import software.amazon.awssdk.enhanced.dynamodb.model.CreateTableEnhancedRequest; +import software.amazon.awssdk.enhanced.dynamodb.model.EnhancedGlobalSecondaryIndex; +import software.amazon.awssdk.enhanced.dynamodb.model.Page; +import software.amazon.awssdk.enhanced.dynamodb.model.ScanEnhancedRequest; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; +import software.amazon.awssdk.services.dynamodb.model.ProjectionType; + +public class IndexScanTest extends LocalDynamoDbSyncTestBase { + + private DynamoDbClient lowLevelClient; + + private DynamoDbTable docMappedtable ; + + @Rule + public ExpectedException exception = ExpectedException.none(); + private DynamoDbEnhancedClient enhancedClient; + private final String tableName = getConcreteTableName("table-name"); + DynamoDbIndex keysOnlyMappedIndex ; + + @Before + public void createTable() { + lowLevelClient = getDynamoDbClient(); + enhancedClient = DynamoDbEnhancedClient.builder() + .dynamoDbClient(lowLevelClient) + .build(); + + docMappedtable = enhancedClient.table(tableName, + TableSchema.documentSchemaBuilder() + .attributeConverterProviders(defaultProvider()) + .addIndexPartitionKey(TableMetadata.primaryIndexName(), + "id", + AttributeValueType.S) + .addIndexSortKey(TableMetadata.primaryIndexName(), "sort", + AttributeValueType.N) + .addIndexPartitionKey("gsi_keys_only", "gsi_id", AttributeValueType.S) + .addIndexSortKey("gsi_keys_only", "gsi_sort", AttributeValueType.N) + .attributeConverterProviders(defaultProvider()) + .build()); + + docMappedtable.createTable(CreateTableEnhancedRequest.builder() + .provisionedThroughput(getDefaultProvisionedThroughput()) + .globalSecondaryIndices( + EnhancedGlobalSecondaryIndex.builder() + .indexName("gsi_keys_only") + .projection(p -> p.projectionType(ProjectionType.KEYS_ONLY)) + .provisionedThroughput(getDefaultProvisionedThroughput()) + .build()) + .build()); + keysOnlyMappedIndex = docMappedtable.index("gsi_keys_only"); + } + + private static final List DOCUMENTS = + IntStream.range(0, 10) + .mapToObj(i -> EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", "id-value") + .putNumber("sort", i) + .putNumber("value", i) + .putString("gsi_id", "gsi-id-value") + .putNumber("gsi_sort", i) + .build() + ).collect(Collectors.toList()); + + private static final List KEYS_ONLY_DOCUMENTS = + DOCUMENTS.stream() + .map(record -> EnhancedDocument.builder() + .attributeConverterProviders(defaultProvider()) + .putString("id", record.getString("id")) + .putNumber("sort", record.getNumber("sort")) + .putString("gsi_id", record.getString("gsi_id")) + .putNumber("gsi_sort", record.getNumber("gsi_sort")).build() + ) + .collect(Collectors.toList()); + + private void insertDocuments() { + DOCUMENTS.forEach(document -> docMappedtable.putItem(r -> r.item(document))); + } + + + @After + public void deleteTable() { + getDynamoDbClient().deleteTable(DeleteTableRequest.builder() + .tableName(tableName) + .build()); + } + + @Test + public void scanAllRecordsDefaultSettings() { + insertDocuments(); + + Iterator> results = keysOnlyMappedIndex.scan(ScanEnhancedRequest.builder().build()).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.stream().map(i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanAllRecordsWithFilter() { + insertDocuments(); + Map expressionValues = new HashMap<>(); + expressionValues.put(":min_value", numberValue(3)); + expressionValues.put(":max_value", numberValue(5)); + Expression expression = Expression.builder() + .expression("sort >= :min_value AND sort <= :max_value") + .expressionValues(expressionValues) + .build(); + + Iterator> results = + keysOnlyMappedIndex.scan(ScanEnhancedRequest.builder().filterExpression(expression).build()).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + + assertThat(page.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.stream().filter(r -> r.getNumber("sort").intValue() >= 3 + && r.getNumber("sort").intValue() <= 5).map(i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanLimit() { + insertDocuments(); + Iterator> results = keysOnlyMappedIndex.scan(r -> r.limit(5)).iterator(); + assertThat(results.hasNext(), is(true)); + Page page1 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page2 = results.next(); + assertThat(results.hasNext(), is(true)); + Page page3 = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page1.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.subList(0, 5).stream().map(i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page1.lastEvaluatedKey(), is(getKeyMap(4))); + assertThat(page2.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), is(KEYS_ONLY_DOCUMENTS.subList(5, 10).stream().map(i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page2.lastEvaluatedKey(), is(getKeyMap(9))); + assertThat(page3.items(), is(empty())); + assertThat(page3.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanEmpty() { + Iterator> results = keysOnlyMappedIndex.scan().iterator(); + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items(), is(empty())); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + @Test + public void scanExclusiveStartKey() { + insertDocuments(); + Iterator> results = + keysOnlyMappedIndex.scan(r -> r.exclusiveStartKey(getKeyMap(7))).iterator(); + + assertThat(results.hasNext(), is(true)); + Page page = results.next(); + assertThat(results.hasNext(), is(false)); + assertThat(page.items().stream().map(i -> i.toMap()).collect(Collectors.toList()), + is(KEYS_ONLY_DOCUMENTS.subList(8, 10).stream().map(i -> i.toMap()).collect(Collectors.toList()))); + assertThat(page.lastEvaluatedKey(), is(nullValue())); + } + + private Map getKeyMap(int sort) { + Map result = new HashMap<>(); + result.put("id", stringValue(KEYS_ONLY_DOCUMENTS.get(sort).getString("id"))); + result.put("sort", numberValue(KEYS_ONLY_DOCUMENTS.get(sort).getNumber("sort"))); + result.put("gsi_id", stringValue(KEYS_ONLY_DOCUMENTS.get(sort).getString("gsi_id"))); + result.put("gsi_sort", numberValue(KEYS_ONLY_DOCUMENTS.get(sort).getNumber("gsi_sort"))); + return Collections.unmodifiableMap(result); + } +} diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/models/InnerAttribConverterProvider.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/models/InnerAttribConverterProvider.java index b38cc7554a37..ac28ff64f188 100755 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/models/InnerAttribConverterProvider.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/models/InnerAttribConverterProvider.java @@ -1,9 +1,14 @@ package software.amazon.awssdk.enhanced.dynamodb.functionaltests.models; +import java.util.Map; import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomClassForDocumentAPI; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomClassForDocumentAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.converters.document.CustomIntegerAttributeConverter; +import software.amazon.awssdk.utils.ImmutableMap; /** * InnerAttribConverterProvider to save the InnerAttribConverter on the class. @@ -11,8 +16,13 @@ public class InnerAttribConverterProvider implements AttributeConverterProvider { + private final Map, AttributeConverter> converterCache = ImmutableMap.of( + EnhancedType.of(InnerAttributeRecord.class), new InnerAttribConverter() + ); + + @Override public AttributeConverter converterFor(EnhancedType enhancedType) { - return new InnerAttribConverter(); + return (AttributeConverter) converterCache.get(enhancedType); } } \ No newline at end of file diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProviderTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProviderTest.java index 069ae50a2d4b..46f0b4e5ab5c 100644 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProviderTest.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ChainConverterProviderTest.java @@ -4,7 +4,11 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; +import nl.jqno.equalsverifier.EqualsVerifier; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -12,6 +16,11 @@ import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter; import software.amazon.awssdk.enhanced.dynamodb.AttributeConverterProvider; import software.amazon.awssdk.enhanced.dynamodb.EnhancedType; +import software.amazon.awssdk.enhanced.dynamodb.extensions.WriteModification; +import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter; +import software.amazon.awssdk.enhanced.dynamodb.update.AddAction; +import software.amazon.awssdk.enhanced.dynamodb.update.RemoveAction; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; @RunWith(MockitoJUnitRunner.class) public class ChainConverterProviderTest { @@ -72,4 +81,11 @@ public void resolveMultipleProviderChain_matchFirst() { assertThat(chain.converterFor(EnhancedType.of(String.class))).isSameAs(mockAttributeConverter1); } + @Test + public void equalsHashcode() { + + EqualsVerifier.forClass(ChainConverterProvider.class) + .usingGetClass() + .verify(); + } } \ No newline at end of file diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchemaFlattenTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchemaFlattenTest.java index bdf207c361cc..117dacd66ac4 100644 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchemaFlattenTest.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchemaFlattenTest.java @@ -186,6 +186,13 @@ public void attributeNames() { assertThat(result).containsExactlyInAnyOrder(ITEM_MAP.keySet().toArray(new String[]{})); } + @Test + public void converterForAttribute() { + ITEM_MAP.forEach((key, attributeValue) -> { + assertThat(immutableTableSchema.converterForAttribute(key)).isNotNull(); + }); + } + public static class ImmutableRecord { private final String id; private final String attribute1; @@ -272,4 +279,4 @@ public ImmutableRecord build() { } } } -} \ No newline at end of file +} diff --git a/services-custom/pom.xml b/services-custom/pom.xml index 30e0fc80bae5..6df6361b2214 100644 --- a/services-custom/pom.xml +++ b/services-custom/pom.xml @@ -19,7 +19,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT services-custom AWS Java SDK :: Custom Services diff --git a/services-custom/s3-transfer-manager/pom.xml b/services-custom/s3-transfer-manager/pom.xml index d87b70187bbf..7562672a1aea 100644 --- a/services-custom/s3-transfer-manager/pom.xml +++ b/services-custom/s3-transfer-manager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml s3-transfer-manager diff --git a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java index f8579f477ada..28f054ebd02a 100644 --- a/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java +++ b/services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3IntegrationTestBase.java @@ -30,6 +30,7 @@ import software.amazon.awssdk.services.s3.model.CreateBucketRequest; import software.amazon.awssdk.services.s3.model.DeleteBucketRequest; import software.amazon.awssdk.services.s3.model.DeleteObjectRequest; +import software.amazon.awssdk.services.s3.model.HeadObjectRequest; import software.amazon.awssdk.services.s3.model.ListObjectVersionsRequest; import software.amazon.awssdk.services.s3.model.ListObjectVersionsResponse; import software.amazon.awssdk.services.s3.model.ListObjectsRequest; @@ -141,6 +142,7 @@ protected static void deleteBucketAndAllContents(String bucketName) { } for (S3Object objectSummary : response.contents()) { s3.deleteObject(DeleteObjectRequest.builder().bucket(bucketName).key(objectSummary.key()).build()); + s3.waiter().waitUntilObjectNotExists(HeadObjectRequest.builder().bucket(bucketName).key(objectSummary.key()).build()); } if (response.isTruncated()) { diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/S3TransferManager.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/S3TransferManager.java index a6e1539cb695..5bc253c910f4 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/S3TransferManager.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/S3TransferManager.java @@ -15,7 +15,6 @@ package software.amazon.awssdk.transfer.s3; -import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import java.util.function.Consumer; @@ -614,11 +613,12 @@ default DirectoryDownload downloadDirectory(Consumer - * Under the hood, {@link S3TransferManager} will intelligently use plain {@link CopyObjectRequest}s for smaller objects, or - * multiple parallel {@link UploadPartCopyRequest}s for larger objects. This behavior can be configured via + * Depending on the underlying S3Client, {@link S3TransferManager} may intelligently use plain {@link CopyObjectRequest}s + * for smaller objects, and multiple parallel {@link UploadPartCopyRequest}s for larger objects. If multipart copy is + * supported by the underlying S3Client, this behavior can be configured via * {@link S3CrtAsyncClientBuilder#minimumPartSizeInBytes(Long)}. Note that for multipart copy request, existing metadata - * stored in the source object is NOT copied to the destination object; if required, you can retrieve the metadata - * from the source object and set it explicitly in the {@link CopyObjectRequest.Builder#metadata(Map)}. + * stored in the source object is NOT copied to the destination object; if required, you can retrieve the metadata from the + * source object and set it explicitly in the @link CopyObjectRequest.Builder#metadata(Map)}. * *

* While this API supports {@link TransferListener}s, they will not receive {@code bytesTransferred} callback-updates due to diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/AsyncBufferingSubscriber.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/AsyncBufferingSubscriber.java index f4394331563f..4245ff5591f3 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/AsyncBufferingSubscriber.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/AsyncBufferingSubscriber.java @@ -15,9 +15,7 @@ package software.amazon.awssdk.transfer.s3.internal; -import java.util.Optional; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import org.reactivestreams.Subscriber; @@ -25,8 +23,6 @@ import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.Validate; -import software.amazon.awssdk.utils.async.DemandIgnoringSubscription; -import software.amazon.awssdk.utils.async.StoringSubscriber; /** * An implementation of {@link Subscriber} that execute the provided function for every event and limits the number of concurrent @@ -41,12 +37,9 @@ public class AsyncBufferingSubscriber implements Subscriber { private final Function> consumer; private final int maxConcurrentExecutions; private final AtomicInteger numRequestsInFlight; - private final AtomicBoolean isDelivering = new AtomicBoolean(false); - private volatile boolean isStreamingDone; + private volatile boolean upstreamDone; private Subscription subscription; - private final StoringSubscriber storingSubscriber; - public AsyncBufferingSubscriber(Function> consumer, CompletableFuture returnFuture, int maxConcurrentExecutions) { @@ -54,7 +47,6 @@ public AsyncBufferingSubscriber(Function> consumer, this.consumer = consumer; this.maxConcurrentExecutions = maxConcurrentExecutions; this.numRequestsInFlight = new AtomicInteger(0); - this.storingSubscriber = new StoringSubscriber<>(Integer.MAX_VALUE); } @Override @@ -65,89 +57,41 @@ public void onSubscribe(Subscription subscription) { subscription.cancel(); return; } - storingSubscriber.onSubscribe(new DemandIgnoringSubscription(subscription)); this.subscription = subscription; subscription.request(maxConcurrentExecutions); } @Override public void onNext(T item) { - storingSubscriber.onNext(item); - flushBufferIfNeeded(); - } - - private void flushBufferIfNeeded() { - if (isDelivering.compareAndSet(false, true)) { - try { - Optional> next = storingSubscriber.peek(); - while (numRequestsInFlight.get() < maxConcurrentExecutions) { - if (!next.isPresent()) { - subscription.request(1); - break; - } - - switch (next.get().type()) { - case ON_COMPLETE: - handleCompleteEvent(); - break; - case ON_ERROR: - handleError(next.get().runtimeError()); - break; - case ON_NEXT: - handleOnNext(next.get().value()); - break; - default: - handleError(new IllegalStateException("Unknown stored type: " + next.get().type())); - break; - } - - next = storingSubscriber.peek(); - } - } finally { - isDelivering.set(false); - } - } - } - - private void handleOnNext(T item) { - storingSubscriber.poll(); - - int numberOfRequestInFlight = numRequestsInFlight.incrementAndGet(); - log.debug(() -> "Delivering next item, numRequestInFlight=" + numberOfRequestInFlight); - + numRequestsInFlight.incrementAndGet(); consumer.apply(item).whenComplete((r, t) -> { - numRequestsInFlight.decrementAndGet(); - if (!isStreamingDone) { + checkForCompletion(numRequestsInFlight.decrementAndGet()); + synchronized (this) { subscription.request(1); - } else { - flushBufferIfNeeded(); } }); } - private void handleCompleteEvent() { - if (numRequestsInFlight.get() == 0) { - returnFuture.complete(null); - storingSubscriber.poll(); - } - } - @Override public void onError(Throwable t) { - handleError(t); - storingSubscriber.onError(t); - } - - private void handleError(Throwable t) { + // Need to complete future exceptionally first to prevent + // accidental successful completion by a concurrent checkForCompletion. returnFuture.completeExceptionally(t); - storingSubscriber.poll(); + upstreamDone = true; } @Override public void onComplete() { - isStreamingDone = true; - storingSubscriber.onComplete(); - flushBufferIfNeeded(); + upstreamDone = true; + checkForCompletion(numRequestsInFlight.get()); + } + + private void checkForCompletion(int requestsInFlight) { + if (upstreamDone && requestsInFlight == 0) { + // This could get invoked multiple times, but it doesn't matter + // because future.complete is idempotent. + returnFuture.complete(null); + } } /** diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/DefaultS3TransferManager.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/DefaultS3TransferManager.java index b7bf97c8bcc3..7e4f302ee710 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/DefaultS3TransferManager.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/DefaultS3TransferManager.java @@ -120,12 +120,15 @@ public DefaultS3TransferManager(DefaultBuilder tmBuilder) { if (s3AsyncClient instanceof S3CrtAsyncClient) { s3ClientType = S3ClientType.CRT_BASED; - } else { + } else if (s3AsyncClient.getClass().getName().equals("software.amazon.awssdk.services.s3.DefaultS3AsyncClient")) { s3ClientType = S3ClientType.JAVA_BASED; - log.warn(() -> "The provided S3AsyncClient is not an instance of S3CrtAsyncClient, and thus multipart" + log.warn(() -> "The provided DefaultS3AsyncClient is not an instance of S3CrtAsyncClient, and thus multipart" + " upload/download feature is not enabled and resumable file upload is not supported. To benefit " - + "from maximum throughput," - + " consider using S3AsyncClient.crtBuilder().build() instead."); + + "from maximum throughput, consider using S3AsyncClient.crtBuilder().build() instead."); + } else { + s3ClientType = S3ClientType.OTHER; + log.debug(() -> "The provided S3AsyncClient is not an instance of S3CrtAsyncClient, and thus multipart" + + " upload/download feature may not be enabled and resumable file upload may not be supported."); } } diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/S3ClientType.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/S3ClientType.java index ffade0d5202d..77635a21c9fa 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/S3ClientType.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/S3ClientType.java @@ -25,5 +25,6 @@ @SdkInternalApi public enum S3ClientType { CRT_BASED, - JAVA_BASED + JAVA_BASED, + OTHER } diff --git a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/DownloadDirectoryRequest.java b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/DownloadDirectoryRequest.java index 4d321fc3eb27..5894d22da659 100644 --- a/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/DownloadDirectoryRequest.java +++ b/services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/DownloadDirectoryRequest.java @@ -207,7 +207,6 @@ public interface Builder extends CopyableBuilder request.addTransferListener(LoggingTransferListener.create())) * .build(); * diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/TransferManagerLoggingTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/TransferManagerLoggingTest.java new file mode 100644 index 000000000000..4f2be4d00063 --- /dev/null +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/internal/TransferManagerLoggingTest.java @@ -0,0 +1,75 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.transfer.s3.internal; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.core.LogEvent; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.testutils.LogCaptor; +import software.amazon.awssdk.transfer.s3.S3TransferManager; + +class TransferManagerLoggingTest { + + @Test + void transferManager_withCrtClient_shouldNotLogWarnMessages() { + + try (S3AsyncClient s3Crt = S3AsyncClient.crtBuilder() + .region(Region.US_WEST_2) + .credentialsProvider(() -> AwsBasicCredentials.create("foo", "bar")) + .build(); + LogCaptor logCaptor = LogCaptor.create(Level.WARN); + S3TransferManager tm = S3TransferManager.builder().s3Client(s3Crt).build()) { + List events = logCaptor.loggedEvents(); + assertThat(events).isEmpty(); + } + } + + @Test + void transferManager_withJavaClient_shouldLogWarnMessage() { + + + try (S3AsyncClient s3Crt = S3AsyncClient.builder() + .region(Region.US_WEST_2) + .credentialsProvider(() -> AwsBasicCredentials.create("foo", "bar")) + .build(); + LogCaptor logCaptor = LogCaptor.create(Level.WARN); + S3TransferManager tm = S3TransferManager.builder().s3Client(s3Crt).build()) { + List events = logCaptor.loggedEvents(); + assertLogged(events, Level.WARN, "The provided DefaultS3AsyncClient is not an instance of S3CrtAsyncClient, and " + + "thus multipart upload/download feature is not enabled and resumable file upload" + + " is " + + "not supported. To benefit from maximum throughput, consider using " + + "S3AsyncClient.crtBuilder().build() instead."); + } + } + + private static void assertLogged(List events, org.apache.logging.log4j.Level level, String message) { + assertThat(events).withFailMessage("Expecting events to not be empty").isNotEmpty(); + LogEvent event = events.remove(0); + String msg = event.getMessage().getFormattedMessage(); + assertThat(msg).isEqualTo(message); + assertThat(event.getLevel()).isEqualTo(level); + } +} diff --git a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/progress/LoggingTransferListenerTest.java b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/progress/LoggingTransferListenerTest.java index 2cf236d78e24..996d994dfc50 100644 --- a/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/progress/LoggingTransferListenerTest.java +++ b/services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/progress/LoggingTransferListenerTest.java @@ -24,6 +24,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import software.amazon.awssdk.testutils.LogCaptor; + import software.amazon.awssdk.transfer.s3.model.CompletedObjectTransfer; import software.amazon.awssdk.transfer.s3.model.TransferObjectRequest; import software.amazon.awssdk.transfer.s3.internal.progress.DefaultTransferProgress; diff --git a/services/accessanalyzer/pom.xml b/services/accessanalyzer/pom.xml index 2cc74de836ba..820e9867bdd7 100644 --- a/services/accessanalyzer/pom.xml +++ b/services/accessanalyzer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT accessanalyzer AWS Java SDK :: Services :: AccessAnalyzer diff --git a/services/account/pom.xml b/services/account/pom.xml index d746df93c915..cedab1676200 100644 --- a/services/account/pom.xml +++ b/services/account/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT account AWS Java SDK :: Services :: Account diff --git a/services/account/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/account/src/main/resources/codegen-resources/endpoint-rule-set.json index 7c40ecb18e63..bcb16c007371 100644 --- a/services/account/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/account/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,64 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "isSet", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" + "ref": "Region" + } ] } ], @@ -137,22 +111,13 @@ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -160,48 +125,213 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, { "conditions": [], "endpoint": { - "url": "https://account-fips.{Region}.api.aws", + "url": "https://account.us-east-1.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "account" + "signingName": "account", + "signingRegion": "us-east-1" } ] }, @@ -211,117 +341,216 @@ } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] - } + }, + "aws-cn" ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://account-fips.{Region}.amazonaws.com", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "account" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, { - "ref": "UseDualStack" + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://account.{Region}.api.aws", + "url": "https://account.cn-northwest-1.amazonaws.com.cn", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "account" + "signingName": "account", + "signingRegion": "cn-northwest-1" } ] }, @@ -332,392 +561,265 @@ ] }, { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://account.us-east-1.amazonaws.com", - "properties": { - "authSchemes": [ + "conditions": [ { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "account" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-cn" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" - }, - "supportsFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseFIPS" + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://account-fips.{Region}.api.amazonwebservices.com.cn", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "account" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] } ] - }, - "headers": {} - }, - "type": "endpoint" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" - }, - "supportsFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ], + ] + }, + { + "conditions": [], "type": "tree", "rules": [ { - "conditions": [], + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], "endpoint": { - "url": "https://account-fips.{Region}.amazonaws.com.cn", + "url": "https://account.us-east-1.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "account" + "signingName": "account", + "signingRegion": "us-east-1" } ] }, "headers": {} }, "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "stringEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "Region" }, - "supportsDualStack" + "aws-cn-global" ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "endpoint": { - "url": "https://account.{Region}.api.amazonwebservices.com.cn", + "url": "https://account.cn-northwest-1.amazonaws.com.cn", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "account" + "signingName": "account", + "signingRegion": "cn-northwest-1" } ] }, "headers": {} }, "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://account.cn-northwest-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "account" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://account-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://account-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://account.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -726,134 +828,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://account.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-global" - ] - } - ], - "endpoint": { - "url": "https://account.us-east-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "account" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-cn-global" - ] - } - ], - "endpoint": { - "url": "https://account.cn-northwest-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "account" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://account.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/account/src/main/resources/codegen-resources/endpoint-tests.json b/services/account/src/main/resources/codegen-resources/endpoint-tests.json index a272950b75b1..b1e600ee2323 100644 --- a/services/account/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/account/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,5 +1,88 @@ { "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://account.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://account-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://account.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://account.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, { "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", "expect": { @@ -17,13 +100,52 @@ } }, "params": { - "UseDualStack": false, "Region": "aws-cn-global", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://account-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://account.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { @@ -31,30 +153,147 @@ { "name": "sigv4", "signingName": "account", - "signingRegion": "us-east-1" + "signingRegion": "cn-northwest-1" } ] }, - "url": "https://account.us-east-1.amazonaws.com" + "url": "https://account.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "aws-global", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://account-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://account.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://account.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -64,9 +303,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -76,9 +315,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/account/src/main/resources/codegen-resources/paginators-1.json b/services/account/src/main/resources/codegen-resources/paginators-1.json index 5677bd8e4a2d..cdd3aae8c98f 100644 --- a/services/account/src/main/resources/codegen-resources/paginators-1.json +++ b/services/account/src/main/resources/codegen-resources/paginators-1.json @@ -1,4 +1,9 @@ { "pagination": { + "ListRegions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } } } diff --git a/services/account/src/main/resources/codegen-resources/service-2.json b/services/account/src/main/resources/codegen-resources/service-2.json index ebef9a040985..65ba47afbbcb 100644 --- a/services/account/src/main/resources/codegen-resources/service-2.json +++ b/services/account/src/main/resources/codegen-resources/service-2.json @@ -30,6 +30,40 @@ "documentation":"

Deletes the specified alternate contact from an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

Before you can update the alternate contact information for an Amazon Web Services account that is managed by Organizations, you must first enable integration between Amazon Web Services Account Management and Organizations. For more information, see Enabling trusted access for Amazon Web Services Account Management.

", "idempotent":true }, + "DisableRegion":{ + "name":"DisableRegion", + "http":{ + "method":"POST", + "requestUri":"/disableRegion", + "responseCode":200 + }, + "input":{"shape":"DisableRegionRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Disables (opts-out) a particular Region for an account.

" + }, + "EnableRegion":{ + "name":"EnableRegion", + "http":{ + "method":"POST", + "requestUri":"/enableRegion", + "responseCode":200 + }, + "input":{"shape":"EnableRegionRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Enables (opts-in) a particular Region for an account.

" + }, "GetAlternateContact":{ "name":"GetAlternateContact", "http":{ @@ -66,6 +100,40 @@ ], "documentation":"

Retrieves the primary contact information of an Amazon Web Services account.

For complete details about how to use the primary contact operations, see Update the primary and alternate contact information.

" }, + "GetRegionOptStatus":{ + "name":"GetRegionOptStatus", + "http":{ + "method":"POST", + "requestUri":"/getRegionOptStatus", + "responseCode":200 + }, + "input":{"shape":"GetRegionOptStatusRequest"}, + "output":{"shape":"GetRegionOptStatusResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves the opt-in status of a particular Region.

" + }, + "ListRegions":{ + "name":"ListRegions", + "http":{ + "method":"POST", + "requestUri":"/listRegions", + "responseCode":200 + }, + "input":{"shape":"ListRegionsRequest"}, + "output":{"shape":"ListRegionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all the Regions for a given account and their respective opt-in statuses. Optionally, this list can be filtered by the region-opt-status-contains parameter.

" + }, "PutAlternateContact":{ "name":"PutAlternateContact", "http":{ @@ -171,6 +239,19 @@ "min":1, "sensitive":true }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request could not be processed because of a conflict in the current status of the resource. For example, this happens if you try to enable a Region that is currently being disabled (in a status of DISABLING).

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, "ContactInformation":{ "type":"structure", "required":[ @@ -260,6 +341,20 @@ } } }, + "DisableRegionRequest":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId. It must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

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

Specifies the Region-code for a given Region name (for example, af-south-1). When you disable a Region, Amazon Web Services performs actions to deactivate that Region in your account, such as destroying IAM resources in the Region. This process takes a few minutes for most accounts, but this can take several hours. You cannot enable the Region until the disabling process is fully completed.

" + } + } + }, "DistrictOrCounty":{ "type":"string", "max":50, @@ -268,11 +363,25 @@ }, "EmailAddress":{ "type":"string", - "max":64, + "max":254, "min":1, - "pattern":"^[\\s]*[\\w+=.#!&-]+@[\\w.-]+\\.[\\w]+[\\s]*$", + "pattern":"^[\\s]*[\\w+=.#|!&-]+@[\\w.-]+\\.[\\w]+[\\s]*$", "sensitive":true }, + "EnableRegionRequest":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId. It must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

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

Specifies the Region-code for a given Region name (for example, af-south-1). When you enable a Region, Amazon Web Services performs actions to prepare your account in that Region, such as distributing your IAM resources to the Region. This process takes a few minutes for most accounts, but it can take several hours. You cannot use the Region until this process is complete. Furthermore, you cannot disable the Region until the enabling process is fully completed.

" + } + } + }, "FullName":{ "type":"string", "max":50, @@ -320,6 +429,33 @@ } } }, + "GetRegionOptStatusRequest":{ + "type":"structure", + "required":["RegionName"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId. It must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

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

Specifies the Region-code for a given Region name (for example, af-south-1). This function will return the status of whatever Region you pass into this parameter.

" + } + } + }, + "GetRegionOptStatusResponse":{ + "type":"structure", + "members":{ + "RegionName":{ + "shape":"RegionName", + "documentation":"

The Region code that was passed in.

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

One of the potential statuses a Region can undergo (Enabled, Enabling, Disabled, Disabling, Enabled_By_Default).

" + } + } + }, "InternalServerException":{ "type":"structure", "required":["message"], @@ -332,6 +468,51 @@ "fault":true, "retryable":{"throttling":false} }, + "ListRegionsRequest":{ + "type":"structure", + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId. It must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

" + }, + "MaxResults":{ + "shape":"ListRegionsRequestMaxResultsInteger", + "documentation":"

The total number of items to return in the command’s output. If the total number of items available is more than the value specified, a NextToken is provided in the command’s output. To resume pagination, provide the NextToken value in the starting-token argument of a subsequent command. Do not use the NextToken response element directly outside of the Amazon Web Services CLI. For usage examples, see Pagination in the Amazon Web Services Command Line Interface User Guide.

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

A token used to specify where to start paginating. This is the NextToken from a previously truncated response. For usage examples, see Pagination in the Amazon Web Services Command Line Interface User Guide.

" + }, + "RegionOptStatusContains":{ + "shape":"RegionOptStatusList", + "documentation":"

A list of Region statuses (Enabling, Enabled, Disabling, Disabled, Enabled_by_default) to use to filter the list of Regions for a given account. For example, passing in a value of ENABLING will only return a list of Regions with a Region status of ENABLING.

" + } + } + }, + "ListRegionsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListRegionsRequestNextTokenString":{ + "type":"string", + "max":1000, + "min":0 + }, + "ListRegionsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

If there is more data to be returned, this will be populated. It should be passed into the next-token request parameter of list-regions.

" + }, + "Regions":{ + "shape":"RegionOptList", + "documentation":"

This is a list of Regions for a given account, or if the filtered parameter was used, a list of Regions that match the filter criteria set in the filter parameter.

" + } + } + }, "Name":{ "type":"string", "max":64, @@ -401,6 +582,43 @@ } } }, + "Region":{ + "type":"structure", + "members":{ + "RegionName":{ + "shape":"RegionName", + "documentation":"

The Region code of a given Region (for example, us-east-1).

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

One of potential statuses a Region can undergo (Enabled, Enabling, Disabled, Disabling, Enabled_By_Default).

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

This is a structure that expresses the Region for a given account, consisting of a name and opt-in status.

" + }, + "RegionName":{ + "type":"string", + "max":50, + "min":1 + }, + "RegionOptList":{ + "type":"list", + "member":{"shape":"Region"} + }, + "RegionOptStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "ENABLING", + "DISABLING", + "DISABLED", + "ENABLED_BY_DEFAULT" + ] + }, + "RegionOptStatusList":{ + "type":"list", + "member":{"shape":"RegionOptStatus"} + }, "ResourceNotFoundException":{ "type":"structure", "required":["message"], @@ -414,6 +632,10 @@ }, "exception":true }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, "StateOrRegion":{ "type":"string", "max":50, @@ -445,7 +667,18 @@ "type":"structure", "required":["message"], "members":{ - "message":{"shape":"String"} + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

The field where the invalid entry was detected.

" + }, + "message":{ + "shape":"SensitiveString", + "documentation":"

The message that informs you about what was invalid about the request.

" + }, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason that validation failed.

" + } }, "documentation":"

The operation failed because one of the input parameters was invalid.

", "error":{ @@ -454,6 +687,35 @@ }, "exception":true }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"SensitiveString", + "documentation":"

A message about the validation exception.

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

The field name where the invalid entry was detected.

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

The input failed to meet the constraints specified by the Amazon Web Services service in a specified field.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "invalidRegionOptTarget", + "fieldValidationFailed" + ] + }, "WebsiteUrl":{ "type":"string", "max":256, diff --git a/services/acm/pom.xml b/services/acm/pom.xml index fc57621a4fbf..1a36ca2a1beb 100644 --- a/services/acm/pom.xml +++ b/services/acm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT acm AWS Java SDK :: Services :: AWS Certificate Manager diff --git a/services/acmpca/pom.xml b/services/acmpca/pom.xml index 966164e3d926..c0a75bb9d302 100644 --- a/services/acmpca/pom.xml +++ b/services/acmpca/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT acmpca AWS Java SDK :: Services :: ACM PCA diff --git a/services/alexaforbusiness/pom.xml b/services/alexaforbusiness/pom.xml index b8b760394548..04bc8cb8b996 100644 --- a/services/alexaforbusiness/pom.xml +++ b/services/alexaforbusiness/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 alexaforbusiness diff --git a/services/amp/pom.xml b/services/amp/pom.xml index 460ae28af823..c67a98c789e4 100644 --- a/services/amp/pom.xml +++ b/services/amp/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT amp AWS Java SDK :: Services :: Amp diff --git a/services/amplify/pom.xml b/services/amplify/pom.xml index 12ce364b2356..bc08bb54c1ea 100644 --- a/services/amplify/pom.xml +++ b/services/amplify/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT amplify AWS Java SDK :: Services :: Amplify diff --git a/services/amplifybackend/pom.xml b/services/amplifybackend/pom.xml index 2b5ae2a0565e..89eb8651a78b 100644 --- a/services/amplifybackend/pom.xml +++ b/services/amplifybackend/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT amplifybackend AWS Java SDK :: Services :: Amplify Backend diff --git a/services/amplifyuibuilder/pom.xml b/services/amplifyuibuilder/pom.xml index 925979ec3ba0..f0b9539a9d86 100644 --- a/services/amplifyuibuilder/pom.xml +++ b/services/amplifyuibuilder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT amplifyuibuilder AWS Java SDK :: Services :: Amplify UI Builder diff --git a/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json index 7a0e70428003..25d1543825e6 100644 --- a/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifyuibuilder.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://amplifyuibuilder.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://amplifyuibuilder.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://amplifyuibuilder.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-tests.json b/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-tests.json index 3bf4cde0aba3..5389e0b4f801 100644 --- a/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/amplifyuibuilder/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,41 +1,28 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-south-1.amazonaws.com" + "url": "https://amplifyuibuilder.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.ap-south-1.api.aws" + "url": "https://amplifyuibuilder.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", + "Region": "ap-northeast-2", + "UseDualStack": false, "UseFIPS": false } }, @@ -47,47 +34,34 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.ca-central-1.amazonaws.com" + "url": "https://amplifyuibuilder.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.ca-central-1.api.aws" + "url": "https://amplifyuibuilder.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", + "Region": "ap-southeast-2", + "UseDualStack": false, "UseFIPS": false } }, @@ -99,47 +73,8 @@ } }, "params": { - "UseDualStack": false, "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-central-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", "UseFIPS": false } }, @@ -151,151 +86,8 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.us-west-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", "UseFIPS": false } }, @@ -307,585 +99,383 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-west-3.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", "UseFIPS": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.eu-west-3.amazonaws.com" + "url": "https://amplifyuibuilder.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "eu-west-3", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-west-2.api.aws" + "url": "https://amplifyuibuilder.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-west-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.eu-west-2.amazonaws.com" + "url": "https://amplifyuibuilder.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.eu-west-1.amazonaws.com" + "url": "https://amplifyuibuilder.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.eu-west-1.amazonaws.com" + "url": "https://amplifyuibuilder.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "Region": "eu-west-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-northeast-2.amazonaws.com" + "url": "https://amplifyuibuilder.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.ap-northeast-2.amazonaws.com" + "url": "https://amplifyuibuilder.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "ap-northeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-northeast-1.amazonaws.com" + "url": "https://amplifyuibuilder.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.ap-northeast-1.amazonaws.com" + "url": "https://amplifyuibuilder.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "ap-northeast-1", "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.me-south-1.api.aws" + "url": "https://amplifyuibuilder-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "me-south-1", "UseFIPS": true } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.me-south-1.amazonaws.com" + "url": "https://amplifyuibuilder-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "me-south-1", "UseFIPS": true } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.me-south-1.api.aws" + "url": "https://amplifyuibuilder.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "me-south-1", "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.sa-east-1.api.aws" + "url": "https://amplifyuibuilder-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "sa-east-1", "UseFIPS": true } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.sa-east-1.amazonaws.com" + "url": "https://amplifyuibuilder-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "sa-east-1", "UseFIPS": true } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.sa-east-1.api.aws" + "url": "https://amplifyuibuilder.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "sa-east-1", "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.sa-east-1.amazonaws.com" + "url": "https://amplifyuibuilder.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "sa-east-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-southeast-1.api.aws" + "url": "https://amplifyuibuilder-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-southeast-1.amazonaws.com" + "url": "https://amplifyuibuilder-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.ap-southeast-1.api.aws" + "url": "https://amplifyuibuilder.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.ap-southeast-1.amazonaws.com" + "url": "https://amplifyuibuilder.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.ap-southeast-2.amazonaws.com" + "url": "https://amplifyuibuilder-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.ap-southeast-2.amazonaws.com" + "url": "https://amplifyuibuilder.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.us-east-1.amazonaws.com" + "url": "https://amplifyuibuilder-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder-fips.us-east-2.amazonaws.com" + "url": "https://amplifyuibuilder.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://amplifyuibuilder.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://amplifyuibuilder.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -893,7 +483,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -904,8 +493,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -916,11 +505,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json b/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json index 8789efbdc431..43019cf40016 100644 --- a/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json +++ b/services/amplifyuibuilder/src/main/resources/codegen-resources/service-2.json @@ -293,7 +293,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Stores the metadata information about a feature on a form or view.

" + "documentation":"

Stores the metadata information about a feature on a form.

" }, "RefreshToken":{ "name":"RefreshToken", @@ -365,41 +365,41 @@ "ActionParameters":{ "type":"structure", "members":{ + "type":{ + "shape":"ComponentProperty", + "documentation":"

The type of navigation action. Valid values are url and anchor. This value is required for a navigation action.

" + }, + "url":{ + "shape":"ComponentProperty", + "documentation":"

The URL to the location to open. Specify this value for a navigation action.

" + }, "anchor":{ "shape":"ComponentProperty", "documentation":"

The HTML anchor link to the location to open. Specify this value for a navigation action.

" }, - "fields":{ - "shape":"ComponentProperties", - "documentation":"

A dictionary of key-value pairs mapping Amplify Studio properties to fields in a data model. Use when the action performs an operation on an Amplify DataStore model.

" + "target":{ + "shape":"ComponentProperty", + "documentation":"

The element within the same component to modify when the action occurs.

" }, "global":{ "shape":"ComponentProperty", "documentation":"

Specifies whether the user should be signed out globally. Specify this value for an auth sign out action.

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

The name of the data model. Use when the action performs an operation on an Amplify DataStore model.

" + }, "id":{ "shape":"ComponentProperty", "documentation":"

The unique ID of the component that the ActionParameters apply to.

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

The name of the data model. Use when the action performs an operation on an Amplify DataStore model.

" + "fields":{ + "shape":"ComponentProperties", + "documentation":"

A dictionary of key-value pairs mapping Amplify Studio properties to fields in a data model. Use when the action performs an operation on an Amplify DataStore model.

" }, "state":{ "shape":"MutationActionSetStateParameter", "documentation":"

A key-value pair that specifies the state property name and its initial value.

" - }, - "target":{ - "shape":"ComponentProperty", - "documentation":"

The element within the same component to modify when the action occurs.

" - }, - "type":{ - "shape":"ComponentProperty", - "documentation":"

The type of navigation action. Valid values are url and anchor. This value is required for a navigation action.

" - }, - "url":{ - "shape":"ComponentProperty", - "documentation":"

The URL to the location to open. Specify this value for a navigation action.

" } }, "documentation":"

Represents the event action configuration for an element of a Component or ComponentChild. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components. ActionParameters defines the action that is performed when an event occurs on the component.

" @@ -412,84 +412,84 @@ "type":"structure", "required":[ "appId", - "bindingProperties", - "componentType", - "createdAt", "environmentName", "id", "name", - "overrides", + "componentType", "properties", - "variants" + "variants", + "overrides", + "bindingProperties", + "createdAt" ], "members":{ "appId":{ "shape":"String", "documentation":"

The unique ID of the Amplify app associated with the component.

" }, - "bindingProperties":{ - "shape":"ComponentBindingProperties", - "documentation":"

The information to connect a component's properties to data at runtime. You can't specify tags as a valid property for bindingProperties.

" - }, - "children":{ - "shape":"ComponentChildList", - "documentation":"

A list of the component's ComponentChild instances.

" - }, - "collectionProperties":{ - "shape":"ComponentCollectionProperties", - "documentation":"

The data binding configuration for the component's properties. Use this for a collection component. You can't specify tags as a valid property for collectionProperties.

" - }, - "componentType":{ - "shape":"ComponentType", - "documentation":"

The type of the component. This can be an Amplify custom UI component or another custom component.

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

The time that the component was created.

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

The name of the backend environment that is a part of the Amplify app.

" }, - "events":{ - "shape":"ComponentEvents", - "documentation":"

Describes the events that can be raised on the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

" + "sourceId":{ + "shape":"String", + "documentation":"

The unique ID of the component in its original source system, such as Figma.

" }, "id":{ "shape":"Uuid", "documentation":"

The unique ID of the component.

" }, - "modifiedAt":{ - "shape":"SyntheticTimestamp_date_time", - "documentation":"

The time that the component was modified.

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

The name of the component.

" }, - "overrides":{ - "shape":"ComponentOverrides", - "documentation":"

Describes the component's properties that can be overriden in a customized instance of the component. You can't specify tags as a valid property for overrides.

" + "componentType":{ + "shape":"ComponentType", + "documentation":"

The type of the component. This can be an Amplify custom UI component or another custom component.

" }, "properties":{ "shape":"ComponentProperties", "documentation":"

Describes the component's properties. You can't specify tags as a valid property for properties.

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

The schema version of the component when it was imported.

" + "children":{ + "shape":"ComponentChildList", + "documentation":"

A list of the component's ComponentChild instances.

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

The unique ID of the component in its original source system, such as Figma.

" + "variants":{ + "shape":"ComponentVariants", + "documentation":"

A list of the component's variants. A variant is a unique style configuration of a main component.

" + }, + "overrides":{ + "shape":"ComponentOverrides", + "documentation":"

Describes the component's properties that can be overriden in a customized instance of the component. You can't specify tags as a valid property for overrides.

" + }, + "bindingProperties":{ + "shape":"ComponentBindingProperties", + "documentation":"

The information to connect a component's properties to data at runtime. You can't specify tags as a valid property for bindingProperties.

" + }, + "collectionProperties":{ + "shape":"ComponentCollectionProperties", + "documentation":"

The data binding configuration for the component's properties. Use this for a collection component. You can't specify tags as a valid property for collectionProperties.

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

The time that the component was created.

" + }, + "modifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time that the component was modified.

" }, "tags":{ "shape":"Tags", "documentation":"

One or more key-value pairs to use when tagging the component.

" }, - "variants":{ - "shape":"ComponentVariants", - "documentation":"

A list of the component's variants. A variant is a unique style configuration of a main component.

" + "events":{ + "shape":"ComponentEvents", + "documentation":"

Describes the events that can be raised on the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

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

The schema version of the component when it was imported.

" } }, "documentation":"

Contains the configuration settings for a user interface (UI) element for an Amplify app. A component is configured as a primary, stand-alone UI element. Use ComponentChild to configure an instance of a Component. A ComponentChild instance inherits the configuration of the main Component.

" @@ -502,6 +502,10 @@ "ComponentBindingPropertiesValue":{ "type":"structure", "members":{ + "type":{ + "shape":"String", + "documentation":"

The property type.

" + }, "bindingProperties":{ "shape":"ComponentBindingPropertiesValueProperties", "documentation":"

Describes the properties to customize with data at runtime.

" @@ -509,10 +513,6 @@ "defaultValue":{ "shape":"String", "documentation":"

The default value of the property.

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

The property type.

" } }, "documentation":"

Represents the data binding configuration for a component at runtime. You can use ComponentBindingPropertiesValue to add exposed properties to a component to allow different values to be entered when a component is reused in different places in an app.

" @@ -520,37 +520,37 @@ "ComponentBindingPropertiesValueProperties":{ "type":"structure", "members":{ - "bucket":{ - "shape":"String", - "documentation":"

An Amazon S3 bucket.

" - }, - "defaultValue":{ + "model":{ "shape":"String", - "documentation":"

The default value to assign to the property.

" + "documentation":"

An Amplify DataStore model.

" }, "field":{ "shape":"String", "documentation":"

The field to bind the data to.

" }, + "predicates":{ + "shape":"PredicateList", + "documentation":"

A list of predicates for binding a component's properties to data.

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

An authenticated user attribute.

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

An Amazon S3 bucket.

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

The storage key for an Amazon S3 bucket.

" }, - "model":{ + "defaultValue":{ "shape":"String", - "documentation":"

An Amplify DataStore model.

" - }, - "predicates":{ - "shape":"PredicateList", - "documentation":"

A list of predicates for binding a component's properties to data.

" + "documentation":"

The default value to assign to the property.

" }, "slotName":{ "shape":"String", "documentation":"

The name of a component slot.

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

An authenticated user attribute.

" } }, "documentation":"

Represents the data binding configuration for a specific property using data stored in Amazon Web Services. For Amazon Web Services connected properties, you can bind a property to data stored in an Amazon S3 bucket, an Amplify DataStore model or an authenticated user attribute.

" @@ -563,18 +563,10 @@ "properties" ], "members":{ - "children":{ - "shape":"ComponentChildList", - "documentation":"

The list of ComponentChild instances for this component.

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

The type of the child component.

" }, - "events":{ - "shape":"ComponentEvents", - "documentation":"

Describes the events that can be raised on the child component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

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

The name of the child component.

" @@ -583,6 +575,14 @@ "shape":"ComponentProperties", "documentation":"

Describes the properties of the child component. You can't specify tags as a valid property for properties.

" }, + "children":{ + "shape":"ComponentChildList", + "documentation":"

The list of ComponentChild instances for this component.

" + }, + "events":{ + "shape":"ComponentEvents", + "documentation":"

Describes the events that can be raised on the child component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

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

The unique ID of the child component in its original source system, such as Figma.

" @@ -602,33 +602,33 @@ "ComponentConditionProperty":{ "type":"structure", "members":{ - "else":{ - "shape":"ComponentProperty", - "documentation":"

The value to assign to the property if the condition is not met.

" + "property":{ + "shape":"String", + "documentation":"

The name of the conditional property.

" }, "field":{ "shape":"String", "documentation":"

The name of a field. Specify this when the property is a data model.

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

The value of the property to evaluate.

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

The type of the property to evaluate.

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

The operator to use to perform the evaluation, such as eq to represent equals.

" }, - "property":{ + "operand":{ "shape":"String", - "documentation":"

The name of the conditional property.

" + "documentation":"

The value of the property to evaluate.

" }, "then":{ "shape":"ComponentProperty", "documentation":"

The value to assign to the property if the condition is met.

" + }, + "else":{ + "shape":"ComponentProperty", + "documentation":"

The value to assign to the property if the condition is not met.

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

The type of the property to evaluate.

" } }, "documentation":"

Represents a conditional expression to set a component property. Use ComponentConditionProperty to set a property to different values conditionally, based on the value of another property.

" @@ -637,21 +637,21 @@ "type":"structure", "required":["model"], "members":{ - "identifiers":{ - "shape":"IdentifierList", - "documentation":"

A list of IDs to use to bind data to a component. Use this property to bind specifically chosen data, rather than data retrieved from a query.

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

The name of the data model to use to bind data to a component.

" }, + "sort":{ + "shape":"SortPropertyList", + "documentation":"

Describes how to sort the component's properties.

" + }, "predicate":{ "shape":"Predicate", "documentation":"

Represents the conditional logic to use when binding data to a component. Use this property to retrieve only a subset of the data in a collection.

" }, - "sort":{ - "shape":"SortPropertyList", - "documentation":"

Describes how to sort the component's properties.

" + "identifiers":{ + "shape":"IdentifierList", + "documentation":"

A list of IDs to use to bind data to a component. Use this property to bind specifically chosen data, rather than data retrieved from a query.

" } }, "documentation":"

Describes the configuration for binding a component's properties to data.

" @@ -663,13 +663,13 @@ "shape":"String", "documentation":"

The action to perform when a specific event is raised.

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

Binds an event to an action on a component. When you specify a bindingEvent, the event is called when the action is performed.

" - }, "parameters":{ "shape":"ActionParameters", "documentation":"

Describes information about the action.

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

Binds an event to an action on a component. When you specify a bindingEvent, the event is called when the action is performed.

" } }, "documentation":"

Describes the configuration of an event. You can bind an event and a corresponding action to a Component or a ComponentChild. A button click is an example of an event.

" @@ -706,21 +706,37 @@ "ComponentProperty":{ "type":"structure", "members":{ + "value":{ + "shape":"String", + "documentation":"

The value to assign to the component property.

" + }, "bindingProperties":{ "shape":"ComponentPropertyBindingProperties", "documentation":"

The information to bind the component property to data at runtime.

" }, + "collectionBindingProperties":{ + "shape":"ComponentPropertyBindingProperties", + "documentation":"

The information to bind the component property to data at runtime. Use this for collection components.

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

The default value to assign to the component property.

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

The data model to use to assign a value to the component property.

" + }, "bindings":{ "shape":"FormBindings", "documentation":"

The information to bind the component property to form data.

" }, - "collectionBindingProperties":{ - "shape":"ComponentPropertyBindingProperties", - "documentation":"

The information to bind the component property to data at runtime. Use this for collection components.

" + "event":{ + "shape":"String", + "documentation":"

An event that occurs in your app. Use this for workflow data binding.

" }, - "componentName":{ + "userAttribute":{ "shape":"String", - "documentation":"

The name of the component that is affected by an event.

" + "documentation":"

An authenticated user attribute to use to assign a value to the component property.

" }, "concat":{ "shape":"ComponentPropertyList", @@ -734,37 +750,21 @@ "shape":"Boolean", "documentation":"

Specifies whether the user configured the property in Amplify Studio after importing it.

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

The default value to assign to the component property.

" - }, - "event":{ + "type":{ "shape":"String", - "documentation":"

An event that occurs in your app. Use this for workflow data binding.

" + "documentation":"

The component type.

" }, "importedValue":{ "shape":"String", "documentation":"

The default value assigned to the property when the component is imported into an app.

" }, - "model":{ + "componentName":{ "shape":"String", - "documentation":"

The data model to use to assign a value to the component property.

" + "documentation":"

The name of the component that is affected by an event.

" }, "property":{ "shape":"String", "documentation":"

The name of the component's property that is affected by an event.

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

The component type.

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

An authenticated user attribute to use to assign a value to the component property.

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

The value to assign to the component property.

" } }, "documentation":"

Describes the configuration for all of a component's properties. Use ComponentProperty to specify the values to render or bind by default.

" @@ -773,13 +773,13 @@ "type":"structure", "required":["property"], "members":{ - "field":{ - "shape":"String", - "documentation":"

The data field to bind the property to.

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

The component property to bind to the data field.

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

The data field to bind the property to.

" } }, "documentation":"

Associates a component property to a binding property. This enables exposed properties on the top level component to propagate data to the component's property values.

" @@ -792,20 +792,16 @@ "type":"structure", "required":[ "appId", - "componentType", "environmentName", "id", - "name" + "name", + "componentType" ], "members":{ "appId":{ "shape":"String", "documentation":"

The unique ID of the Amplify app associated with the component.

" }, - "componentType":{ - "shape":"ComponentType", - "documentation":"

The component type.

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

The name of the backend environment that is a part of the Amplify app.

" @@ -817,6 +813,10 @@ "name":{ "shape":"ComponentName", "documentation":"

The name of the component.

" + }, + "componentType":{ + "shape":"ComponentType", + "documentation":"

The component type.

" } }, "documentation":"

Contains a summary of a component. This is a read-only data type that is returned by ListComponents.

" @@ -833,13 +833,13 @@ "ComponentVariant":{ "type":"structure", "members":{ - "overrides":{ - "shape":"ComponentOverrides", - "documentation":"

The properties of the component variant that can be overriden when customizing an instance of the component. You can't specify tags as a valid property for overrides.

" - }, "variantValues":{ "shape":"ComponentVariantValues", "documentation":"

The combination of variants that comprise this variant. You can't specify tags as a valid property for variantValues.

" + }, + "overrides":{ + "shape":"ComponentOverrides", + "documentation":"

The properties of the component variant that can be overriden when customizing an instance of the component. You can't specify tags as a valid property for overrides.

" } }, "documentation":"

Describes the style configuration of a unique variation of a main component.

" @@ -856,61 +856,61 @@ "CreateComponentData":{ "type":"structure", "required":[ - "bindingProperties", - "componentType", "name", - "overrides", + "componentType", "properties", - "variants" + "variants", + "overrides", + "bindingProperties" ], "members":{ - "bindingProperties":{ - "shape":"ComponentBindingProperties", - "documentation":"

The data binding information for the component's properties.

" - }, - "children":{ - "shape":"ComponentChildList", - "documentation":"

A list of child components that are instances of the main component.

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

The name of the component

" }, - "collectionProperties":{ - "shape":"ComponentCollectionProperties", - "documentation":"

The data binding configuration for customizing a component's properties. Use this for a collection component.

" + "sourceId":{ + "shape":"String", + "documentation":"

The unique ID of the component in its original source system, such as Figma.

" }, "componentType":{ "shape":"ComponentType", "documentation":"

The component type. This can be an Amplify custom UI component or another custom component.

" }, - "events":{ - "shape":"ComponentEvents", - "documentation":"

The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

" + "properties":{ + "shape":"ComponentProperties", + "documentation":"

Describes the component's properties.

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

The name of the component

" + "children":{ + "shape":"ComponentChildList", + "documentation":"

A list of child components that are instances of the main component.

" + }, + "variants":{ + "shape":"ComponentVariants", + "documentation":"

A list of the unique variants of this component.

" }, "overrides":{ "shape":"ComponentOverrides", "documentation":"

Describes the component properties that can be overriden to customize an instance of the component.

" }, - "properties":{ - "shape":"ComponentProperties", - "documentation":"

Describes the component's properties.

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

The schema version of the component when it was imported.

" + "bindingProperties":{ + "shape":"ComponentBindingProperties", + "documentation":"

The data binding information for the component's properties.

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

The unique ID of the component in its original source system, such as Figma.

" + "collectionProperties":{ + "shape":"ComponentCollectionProperties", + "documentation":"

The data binding configuration for customizing a component's properties. Use this for a collection component.

" }, "tags":{ "shape":"Tags", "documentation":"

One or more key-value pairs to use when tagging the component data.

" }, - "variants":{ - "shape":"ComponentVariants", - "documentation":"

A list of the unique variants of this component.

" + "events":{ + "shape":"ComponentEvents", + "documentation":"

The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

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

The schema version of the component when it was imported.

" } }, "documentation":"

Represents all of the information that is required to create a component.

" @@ -919,8 +919,8 @@ "type":"structure", "required":[ "appId", - "componentToCreate", - "environmentName" + "environmentName", + "componentToCreate" ], "members":{ "appId":{ @@ -929,6 +929,12 @@ "location":"uri", "locationName":"appId" }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, "clientToken":{ "shape":"String", "documentation":"

The unique client token.

", @@ -939,12 +945,6 @@ "componentToCreate":{ "shape":"CreateComponentData", "documentation":"

Represents the configuration of the component to create.

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

The name of the backend environment that is a part of the Amplify app.

", - "location":"uri", - "locationName":"environmentName" } }, "payload":"componentToCreate" @@ -962,50 +962,54 @@ "CreateFormData":{ "type":"structure", "required":[ + "name", "dataType", - "fields", "formActionType", - "name", - "schemaVersion", + "fields", + "style", "sectionalElements", - "style" + "schemaVersion" ], "members":{ - "cta":{ - "shape":"FormCTA", - "documentation":"

The FormCTA object that stores the call to action configuration for the form.

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

The name of the form.

" }, "dataType":{ "shape":"FormDataTypeConfig", "documentation":"

The type of data source to use to create the form.

" }, - "fields":{ - "shape":"FieldsMap", - "documentation":"

The configuration information for the form's fields.

" - }, "formActionType":{ "shape":"FormActionType", "documentation":"

Specifies whether to perform a create or update action on the form.

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

The name of the form.

" + "fields":{ + "shape":"FieldsMap", + "documentation":"

The configuration information for the form's fields.

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

The schema version of the form.

" + "style":{ + "shape":"FormStyle", + "documentation":"

The configuration for the form's style.

" }, "sectionalElements":{ "shape":"SectionalElementMap", "documentation":"

The configuration information for the visual helper elements for the form. These elements are not associated with any data.

" }, - "style":{ - "shape":"FormStyle", - "documentation":"

The configuration for the form's style.

" + "schemaVersion":{ + "shape":"String", + "documentation":"

The schema version of the form.

" + }, + "cta":{ + "shape":"FormCTA", + "documentation":"

The FormCTA object that stores the call to action configuration for the form.

" }, "tags":{ "shape":"Tags", "documentation":"

One or more key-value pairs to use when tagging the form data.

" + }, + "labelDecorator":{ + "shape":"LabelDecorator", + "documentation":"

Specifies an icon or decoration to display on the form.

" } }, "documentation":"

Represents all of the information that is required to create a form.

" @@ -1024,6 +1028,12 @@ "location":"uri", "locationName":"appId" }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, "clientToken":{ "shape":"String", "documentation":"

The unique client token.

", @@ -1031,12 +1041,6 @@ "location":"querystring", "locationName":"clientToken" }, - "environmentName":{ - "shape":"String", - "documentation":"

The name of the backend environment that is a part of the Amplify app.

", - "location":"uri", - "locationName":"environmentName" - }, "formToCreate":{ "shape":"CreateFormData", "documentation":"

Represents the configuration of the form to create.

" @@ -1065,6 +1069,10 @@ "shape":"ThemeName", "documentation":"

The name of the theme.

" }, + "values":{ + "shape":"ThemeValuesList", + "documentation":"

A list of key-value pairs that defines the properties of the theme.

" + }, "overrides":{ "shape":"ThemeValuesList", "documentation":"

Describes the properties that can be overriden to customize an instance of the theme.

" @@ -1072,10 +1080,6 @@ "tags":{ "shape":"Tags", "documentation":"

One or more key-value pairs to use when tagging the theme data.

" - }, - "values":{ - "shape":"ThemeValuesList", - "documentation":"

A list of key-value pairs that defines the properties of the theme.

" } }, "documentation":"

Represents all of the information that is required to create a theme.

" @@ -1094,6 +1098,12 @@ "location":"uri", "locationName":"appId" }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, "clientToken":{ "shape":"String", "documentation":"

The unique client token.

", @@ -1101,12 +1111,6 @@ "location":"querystring", "locationName":"clientToken" }, - "environmentName":{ - "shape":"String", - "documentation":"

The name of the backend environment that is a part of the Amplify app.

", - "location":"uri", - "locationName":"environmentName" - }, "themeToCreate":{ "shape":"CreateThemeData", "documentation":"

Represents the configuration of the theme to create.

" @@ -1242,6 +1246,10 @@ "redirectUri":{ "shape":"String", "documentation":"

The location of the application that will receive the access code.

" + }, + "clientId":{ + "shape":"SensitiveString", + "documentation":"

The ID of the client to request the token from.

" } }, "documentation":"

Describes the configuration of a request to exchange an access code for a token.

" @@ -1399,14 +1407,6 @@ "FieldConfig":{ "type":"structure", "members":{ - "excluded":{ - "shape":"Boolean", - "documentation":"

Specifies whether to hide a field.

" - }, - "inputType":{ - "shape":"FieldInputConfig", - "documentation":"

Describes the configuration for the default input value to display for a field.

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

The label for the field.

" @@ -1415,6 +1415,14 @@ "shape":"FieldPosition", "documentation":"

Specifies the field position.

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

Specifies whether to hide a field.

" + }, + "inputType":{ + "shape":"FieldInputConfig", + "documentation":"

Describes the configuration for the default input value to display for a field.

" + }, "validations":{ "shape":"ValidationsList", "documentation":"

The validations to perform on the value in the field.

" @@ -1426,13 +1434,21 @@ "type":"structure", "required":["type"], "members":{ - "defaultChecked":{ + "type":{ + "shape":"String", + "documentation":"

The input type for the field.

" + }, + "required":{ "shape":"Boolean", - "documentation":"

Specifies whether a field has a default value.

" + "documentation":"

Specifies a field that requires input.

" }, - "defaultCountryCode":{ + "readOnly":{ + "shape":"Boolean", + "documentation":"

Specifies a read only field.

" + }, + "placeholder":{ "shape":"String", - "documentation":"

The default country code for a phone number.

" + "documentation":"

The text to display as a placeholder for the field.

" }, "defaultValue":{ "shape":"String", @@ -1442,49 +1458,45 @@ "shape":"String", "documentation":"

The text to display to describe the field.

" }, - "isArray":{ + "defaultChecked":{ "shape":"Boolean", - "documentation":"

Specifies whether to render the field as an array. This property is ignored if the dataSourceType for the form is a Data Store.

" + "documentation":"

Specifies whether a field has a default value.

" }, - "maxValue":{ - "shape":"Float", - "documentation":"

The maximum value to display for the field.

" + "defaultCountryCode":{ + "shape":"String", + "documentation":"

The default country code for a phone number.

" }, - "minValue":{ - "shape":"Float", - "documentation":"

The minimum value to display for the field.

" + "valueMappings":{ + "shape":"ValueMappings", + "documentation":"

The information to use to customize the input fields with data at runtime.

" }, "name":{ "shape":"String", "documentation":"

The name of the field.

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

The text to display as a placeholder for the field.

" - }, - "readOnly":{ - "shape":"Boolean", - "documentation":"

Specifies a read only field.

" + "minValue":{ + "shape":"Float", + "documentation":"

The minimum value to display for the field.

" }, - "required":{ - "shape":"Boolean", - "documentation":"

Specifies a field that requires input.

" + "maxValue":{ + "shape":"Float", + "documentation":"

The maximum value to display for the field.

" }, "step":{ "shape":"Float", "documentation":"

The stepping increment for a numeric value in a field.

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

The input type for the field.

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

The value for the field.

" }, - "valueMappings":{ - "shape":"ValueMappings", - "documentation":"

The information to use to customize the input fields with data at runtime.

" + "isArray":{ + "shape":"Boolean", + "documentation":"

Specifies whether to render the field as an array. This property is ignored if the dataSourceType for the form is a Data Store.

" + }, + "fileUploaderConfig":{ + "shape":"FileUploaderFieldConfig", + "documentation":"

The configuration for the file uploader field.

" } }, "documentation":"

Describes the configuration for the default input values to display for a field.

" @@ -1492,10 +1504,6 @@ "FieldPosition":{ "type":"structure", "members":{ - "below":{ - "shape":"String", - "documentation":"

The field position is below the field specified by the string.

" - }, "fixed":{ "shape":"FixedPosition", "documentation":"

The field position is fixed and doesn't change in relation to other fields.

" @@ -1503,6 +1511,10 @@ "rightOf":{ "shape":"String", "documentation":"

The field position is to the right of the field specified by the string.

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

The field position is below the field specified by the string.

" } }, "documentation":"

Describes the field position.

", @@ -1512,17 +1524,17 @@ "type":"structure", "required":["type"], "members":{ - "numValues":{ - "shape":"NumValues", - "documentation":"

The validation to perform on a number value.

" + "type":{ + "shape":"String", + "documentation":"

The validation to perform on an object type.

" }, "strValues":{ "shape":"StrValues", "documentation":"

The validation to perform on a string value.

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

The validation to perform on an object type.

" + "numValues":{ + "shape":"NumValues", + "documentation":"

The validation to perform on a number value.

" }, "validationMessage":{ "shape":"String", @@ -1536,6 +1548,40 @@ "key":{"shape":"String"}, "value":{"shape":"FieldConfig"} }, + "FileUploaderFieldConfig":{ + "type":"structure", + "required":[ + "accessLevel", + "acceptedFileTypes" + ], + "members":{ + "accessLevel":{ + "shape":"StorageAccessLevel", + "documentation":"

The access level to assign to the uploaded files in the Amazon S3 bucket where they are stored. The valid values for this property are private, protected, or public. For detailed information about the permissions associated with each access level, see File access levels in the Amplify documentation.

" + }, + "acceptedFileTypes":{ + "shape":"StrValues", + "documentation":"

The file types that are allowed to be uploaded by the file uploader. Provide this information in an array of strings specifying the valid file extensions.

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

Specifies whether to display or hide the image preview after selecting a file for upload. The default value is true to display the image preview.

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

Allows the file upload operation to be paused and resumed. The default value is false.

When isResumable is set to true, the file uploader uses a multipart upload to break the files into chunks before upload. The progress of the upload isn't continuous, because the file uploader uploads a chunk at a time.

" + }, + "maxFileCount":{ + "shape":"Integer", + "documentation":"

Specifies the maximum number of files that can be selected to upload. The default value is an unlimited number of files.

" + }, + "maxSize":{ + "shape":"Integer", + "documentation":"

The maximum file size in bytes that the file uploader will accept. The default value is an unlimited file size.

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

Describes the configuration for the file uploader field.

" + }, "FixedPosition":{ "type":"string", "enum":["first"] @@ -1548,41 +1594,25 @@ "type":"structure", "required":[ "appId", - "dataType", "environmentName", - "fields", - "formActionType", "id", "name", - "schemaVersion", + "formActionType", + "style", + "dataType", + "fields", "sectionalElements", - "style" + "schemaVersion" ], "members":{ "appId":{ "shape":"String", "documentation":"

The unique ID of the Amplify app associated with the form.

" }, - "cta":{ - "shape":"FormCTA", - "documentation":"

Stores the call to action configuration for the form.

" - }, - "dataType":{ - "shape":"FormDataTypeConfig", - "documentation":"

The type of data source to use to create the form.

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

The name of the backend environment that is a part of the Amplify app.

" }, - "fields":{ - "shape":"FieldsMap", - "documentation":"

Stores the information about the form's fields.

" - }, - "formActionType":{ - "shape":"FormActionType", - "documentation":"

The operation to perform on the specified form.

" - }, "id":{ "shape":"Uuid", "documentation":"

The unique ID of the form.

" @@ -1591,21 +1621,41 @@ "shape":"FormName", "documentation":"

The name of the form.

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

The schema version of the form when it was imported.

" + "formActionType":{ + "shape":"FormActionType", + "documentation":"

The operation to perform on the specified form.

" + }, + "style":{ + "shape":"FormStyle", + "documentation":"

Stores the configuration for the form's style.

" + }, + "dataType":{ + "shape":"FormDataTypeConfig", + "documentation":"

The type of data source to use to create the form.

" + }, + "fields":{ + "shape":"FieldsMap", + "documentation":"

Stores the information about the form's fields.

" }, "sectionalElements":{ "shape":"SectionalElementMap", "documentation":"

Stores the visual helper elements for the form that are not associated with any data.

" }, - "style":{ - "shape":"FormStyle", - "documentation":"

Stores the configuration for the form's style.

" + "schemaVersion":{ + "shape":"String", + "documentation":"

The schema version of the form when it was imported.

" }, "tags":{ "shape":"Tags", "documentation":"

One or more key-value pairs to use when tagging the form.

" + }, + "cta":{ + "shape":"FormCTA", + "documentation":"

Stores the call to action configuration for the form.

" + }, + "labelDecorator":{ + "shape":"LabelDecorator", + "documentation":"

Specifies an icon or decoration to display on the form.

" } }, "documentation":"

Contains the configuration settings for a Form user interface (UI) element for an Amplify app. A form is a component you can add to your project by specifying a data source as the default configuration for the form.

" @@ -1643,14 +1693,14 @@ "FormButton":{ "type":"structure", "members":{ - "children":{ - "shape":"String", - "documentation":"

Describes the button's properties.

" - }, "excluded":{ "shape":"Boolean", "documentation":"

Specifies whether the button is visible on the form.

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

Describes the button's properties.

" + }, "position":{ "shape":"FieldPosition", "documentation":"

The position of the button.

" @@ -1669,17 +1719,17 @@ "FormCTA":{ "type":"structure", "members":{ - "cancel":{ - "shape":"FormButton", - "documentation":"

Displays a cancel button.

" + "position":{ + "shape":"FormButtonsPosition", + "documentation":"

The position of the button.

" }, "clear":{ "shape":"FormButton", "documentation":"

Displays a clear button.

" }, - "position":{ - "shape":"FormButtonsPosition", - "documentation":"

The position of the button.

" + "cancel":{ + "shape":"FormButton", + "documentation":"

Displays a cancel button.

" }, "submit":{ "shape":"FormButton", @@ -1713,16 +1763,72 @@ }, "documentation":"

Describes the data type configuration for the data source associated with a form.

" }, + "FormInputBindingProperties":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"FormInputBindingPropertiesValue"} + }, + "FormInputBindingPropertiesValue":{ + "type":"structure", + "members":{ + "type":{ + "shape":"String", + "documentation":"

The property type.

" + }, + "bindingProperties":{ + "shape":"FormInputBindingPropertiesValueProperties", + "documentation":"

Describes the properties to customize with data at runtime.

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

Represents the data binding configuration for a form's input fields at runtime.You can use FormInputBindingPropertiesValue to add exposed properties to a form to allow different values to be entered when a form is reused in different places in an app.

" + }, + "FormInputBindingPropertiesValueProperties":{ + "type":"structure", + "members":{ + "model":{ + "shape":"String", + "documentation":"

An Amplify DataStore model.

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

Represents the data binding configuration for a specific property using data stored in Amazon Web Services. For Amazon Web Services connected properties, you can bind a property to data stored in an Amplify DataStore model.

" + }, "FormInputValueProperty":{ "type":"structure", "members":{ "value":{ "shape":"String", "documentation":"

The value to assign to the input field.

" + }, + "bindingProperties":{ + "shape":"FormInputValuePropertyBindingProperties", + "documentation":"

The information to bind fields to data at runtime.

" + }, + "concat":{ + "shape":"FormInputValuePropertyList", + "documentation":"

A list of form properties to concatenate to create the value to assign to this field property.

" } }, "documentation":"

Describes the configuration for an input field on a form. Use FormInputValueProperty to specify the values to render or bind by default.

" }, + "FormInputValuePropertyBindingProperties":{ + "type":"structure", + "required":["property"], + "members":{ + "property":{ + "shape":"String", + "documentation":"

The form property to bind to the data field.

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

The data field to bind the property to.

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

Associates a form property to a binding property. This enables exposed properties on the top level form to propagate data to the form's property values.

" + }, + "FormInputValuePropertyList":{ + "type":"list", + "member":{"shape":"FormInputValueProperty"} + }, "FormList":{ "type":"list", "member":{"shape":"Form"} @@ -1739,13 +1845,13 @@ "shape":"FormStyleConfig", "documentation":"

The spacing for the horizontal gap.

" }, - "outerPadding":{ - "shape":"FormStyleConfig", - "documentation":"

The size of the outer padding for the form.

" - }, "verticalGap":{ "shape":"FormStyleConfig", "documentation":"

The spacing for the vertical gap.

" + }, + "outerPadding":{ + "shape":"FormStyleConfig", + "documentation":"

The size of the outer padding for the form.

" } }, "documentation":"

Describes the configuration for the form's style.

" @@ -1982,6 +2088,14 @@ }, "exception":true }, + "LabelDecorator":{ + "type":"string", + "enum":[ + "required", + "optional", + "none" + ] + }, "ListComponentsLimit":{ "type":"integer", "max":100, @@ -2006,17 +2120,17 @@ "location":"uri", "locationName":"environmentName" }, - "maxResults":{ - "shape":"ListComponentsLimit", - "documentation":"

The maximum number of components to retrieve.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"String", "documentation":"

The token to request the next page of results.

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

The maximum number of components to retrieve.

", + "location":"querystring", + "locationName":"maxResults" } } }, @@ -2058,17 +2172,17 @@ "location":"uri", "locationName":"environmentName" }, - "maxResults":{ - "shape":"ListFormsLimit", - "documentation":"

The maximum number of forms to retrieve.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"String", "documentation":"

The token to request the next page of results.

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

The maximum number of forms to retrieve.

", + "location":"querystring", + "locationName":"maxResults" } } }, @@ -2110,17 +2224,17 @@ "location":"uri", "locationName":"environmentName" }, - "maxResults":{ - "shape":"ListThemesLimit", - "documentation":"

The maximum number of theme results to return in the response.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"String", "documentation":"

The token to request the next page of results.

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

The maximum number of theme results to return in the response.

", + "location":"querystring", + "locationName":"maxResults" } } }, @@ -2165,9 +2279,17 @@ "type":"list", "member":{"shape":"Integer"} }, + "OperandType":{ + "type":"string", + "pattern":"boolean|string|number" + }, "Predicate":{ "type":"structure", "members":{ + "or":{ + "shape":"PredicateList", + "documentation":"

A list of predicates to combine logically.

" + }, "and":{ "shape":"PredicateList", "documentation":"

A list of predicates to combine logically.

" @@ -2176,17 +2298,17 @@ "shape":"String", "documentation":"

The field to query.

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

The value to use when performing the evaluation.

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

The operator to use to perform the evaluation.

" }, - "or":{ - "shape":"PredicateList", - "documentation":"

A list of predicates to combine logically.

" + "operand":{ + "shape":"String", + "documentation":"

The value to use when performing the evaluation.

" + }, + "operandType":{ + "shape":"OperandType", + "documentation":"

The type of value to use when performing the evaluation.

" } }, "documentation":"

Stores information for generating Amplify DataStore queries. Use a Predicate to retrieve a subset of the data in a collection.

" @@ -2204,15 +2326,15 @@ "documentation":"

The new information to store.

" } }, - "documentation":"

Stores the metadata information about a feature on a form or view.

" + "documentation":"

Stores the metadata information about a feature on a form.

" }, "PutMetadataFlagRequest":{ "type":"structure", "required":[ "appId", - "body", "environmentName", - "featureName" + "featureName", + "body" ], "members":{ "appId":{ @@ -2221,10 +2343,6 @@ "location":"uri", "locationName":"appId" }, - "body":{ - "shape":"PutMetadataFlagBody", - "documentation":"

The metadata information to store.

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

The name of the backend environment that is part of the Amplify app.

", @@ -2236,6 +2354,10 @@ "documentation":"

The name of the feature associated with the metadata.

", "location":"uri", "locationName":"featureName" + }, + "body":{ + "shape":"PutMetadataFlagBody", + "documentation":"

The metadata information to store.

" } }, "payload":"body" @@ -2267,6 +2389,10 @@ "token":{ "shape":"SensitiveString", "documentation":"

The token to use to refresh a previously issued access token that might have expired.

" + }, + "clientId":{ + "shape":"SensitiveString", + "documentation":"

The ID of the client to request the token from.

" } }, "documentation":"

Describes a refresh token.

" @@ -2316,13 +2442,9 @@ "type":"structure", "required":["type"], "members":{ - "level":{ - "shape":"Integer", - "documentation":"

Specifies the size of the font for a Heading sectional element. Valid values are 1 | 2 | 3 | 4 | 5 | 6.

" - }, - "orientation":{ + "type":{ "shape":"String", - "documentation":"

Specifies the orientation for a Divider sectional element. Valid values are horizontal or vertical.

" + "documentation":"

The type of sectional element. Valid values are Heading, Text, and Divider.

" }, "position":{ "shape":"FieldPosition", @@ -2332,9 +2454,17 @@ "shape":"String", "documentation":"

The text for a Text sectional element.

" }, - "type":{ + "level":{ + "shape":"Integer", + "documentation":"

Specifies the size of the font for a Heading sectional element. Valid values are 1 | 2 | 3 | 4 | 5 | 6.

" + }, + "orientation":{ "shape":"String", - "documentation":"

The type of sectional element. Valid values are Heading, Text, and Divider.

" + "documentation":"

Specifies the orientation for a Divider sectional element. Valid values are horizontal or vertical.

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

Excludes a sectional element that was generated by default for a specified data model.

" } }, "documentation":"

Stores the configuration information for a visual helper element for a form. A sectional element can be a header, a text block, or a divider. These elements are static and not associated with any data.

" @@ -2370,17 +2500,17 @@ "SortProperty":{ "type":"structure", "required":[ - "direction", - "field" + "field", + "direction" ], "members":{ - "direction":{ - "shape":"SortDirection", - "documentation":"

The direction of the sort, either ascending or descending.

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

The field to perform the sort on.

" + }, + "direction":{ + "shape":"SortDirection", + "documentation":"

The direction of the sort, either ascending or descending.

" } }, "documentation":"

Describes how to sort the data that you bind to a component.

" @@ -2389,6 +2519,14 @@ "type":"list", "member":{"shape":"SortProperty"} }, + "StorageAccessLevel":{ + "type":"string", + "enum":[ + "public", + "protected", + "private" + ] + }, "StrValues":{ "type":"list", "member":{"shape":"String"} @@ -2402,7 +2540,7 @@ "type":"string", "max":128, "min":1, - "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + "pattern":"(?!aws:)[a-zA-Z+-=._:/]+" }, "TagValue":{ "type":"string", @@ -2418,10 +2556,10 @@ "type":"structure", "required":[ "appId", - "createdAt", "environmentName", "id", "name", + "createdAt", "values" ], "members":{ @@ -2429,10 +2567,6 @@ "shape":"String", "documentation":"

The unique ID for the Amplify app associated with the theme.

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

The time that the theme was created.

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

The name of the backend environment that is a part of the Amplify app.

" @@ -2441,13 +2575,21 @@ "shape":"Uuid", "documentation":"

The ID for the theme.

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

The name of the theme.

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

The time that the theme was created.

" + }, "modifiedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The time that the theme was modified.

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

The name of the theme.

" + "values":{ + "shape":"ThemeValuesList", + "documentation":"

A list of key-value pairs that defines the properties of the theme.

" }, "overrides":{ "shape":"ThemeValuesList", @@ -2456,10 +2598,6 @@ "tags":{ "shape":"Tags", "documentation":"

One or more key-value pairs to use when tagging the theme.

" - }, - "values":{ - "shape":"ThemeValuesList", - "documentation":"

A list of key-value pairs that defines the properties of the theme.

" } }, "documentation":"

A theme is a collection of style settings that apply globally to the components associated with an Amplify application.

" @@ -2508,13 +2646,13 @@ "ThemeValue":{ "type":"structure", "members":{ - "children":{ - "shape":"ThemeValuesList", - "documentation":"

A list of key-value pairs that define the theme's properties.

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

The value of a theme property.

" + }, + "children":{ + "shape":"ThemeValuesList", + "documentation":"

A list of key-value pairs that define the theme's properties.

" } }, "documentation":"

Describes the configuration of a theme's properties.

" @@ -2556,53 +2694,53 @@ "UpdateComponentData":{ "type":"structure", "members":{ - "bindingProperties":{ - "shape":"ComponentBindingProperties", - "documentation":"

The data binding information for the component's properties.

" + "id":{ + "shape":"Uuid", + "documentation":"

The unique ID of the component to update.

" }, - "children":{ - "shape":"ComponentChildList", - "documentation":"

The components that are instances of the main component.

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

The name of the component to update.

" }, - "collectionProperties":{ - "shape":"ComponentCollectionProperties", - "documentation":"

The configuration for binding a component's properties to a data model. Use this for a collection component.

" + "sourceId":{ + "shape":"String", + "documentation":"

The unique ID of the component in its original source system, such as Figma.

" }, "componentType":{ "shape":"ComponentType", "documentation":"

The type of the component. This can be an Amplify custom UI component or another custom component.

" }, - "events":{ - "shape":"ComponentEvents", - "documentation":"

The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

" + "properties":{ + "shape":"ComponentProperties", + "documentation":"

Describes the component's properties.

" }, - "id":{ - "shape":"Uuid", - "documentation":"

The unique ID of the component to update.

" + "children":{ + "shape":"ComponentChildList", + "documentation":"

The components that are instances of the main component.

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

The name of the component to update.

" + "variants":{ + "shape":"ComponentVariants", + "documentation":"

A list of the unique variants of the main component being updated.

" }, "overrides":{ "shape":"ComponentOverrides", "documentation":"

Describes the properties that can be overriden to customize the component.

" }, - "properties":{ - "shape":"ComponentProperties", - "documentation":"

Describes the component's properties.

" + "bindingProperties":{ + "shape":"ComponentBindingProperties", + "documentation":"

The data binding information for the component's properties.

" + }, + "collectionProperties":{ + "shape":"ComponentCollectionProperties", + "documentation":"

The configuration for binding a component's properties to a data model. Use this for a collection component.

" + }, + "events":{ + "shape":"ComponentEvents", + "documentation":"

The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

" }, "schemaVersion":{ "shape":"String", "documentation":"

The schema version of the component when it was imported.

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

The unique ID of the component in its original source system, such as Figma.

" - }, - "variants":{ - "shape":"ComponentVariants", - "documentation":"

A list of the unique variants of the main component being updated.

" } }, "documentation":"

Updates and saves all of the information about a component, based on component ID.

" @@ -2622,13 +2760,6 @@ "location":"uri", "locationName":"appId" }, - "clientToken":{ - "shape":"String", - "documentation":"

The unique client token.

", - "idempotencyToken":true, - "location":"querystring", - "locationName":"clientToken" - }, "environmentName":{ "shape":"String", "documentation":"

The name of the backend environment that is part of the Amplify app.

", @@ -2641,6 +2772,13 @@ "location":"uri", "locationName":"id" }, + "clientToken":{ + "shape":"String", + "documentation":"

The unique client token.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, "updatedComponent":{ "shape":"UpdateComponentData", "documentation":"

The configuration of the updated component.

" @@ -2661,37 +2799,41 @@ "UpdateFormData":{ "type":"structure", "members":{ - "cta":{ - "shape":"FormCTA", - "documentation":"

The FormCTA object that stores the call to action configuration for the form.

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

The name of the form.

" }, "dataType":{ "shape":"FormDataTypeConfig", "documentation":"

The type of data source to use to create the form.

" }, + "formActionType":{ + "shape":"FormActionType", + "documentation":"

Specifies whether to perform a create or update action on the form.

" + }, "fields":{ "shape":"FieldsMap", "documentation":"

The configuration information for the form's fields.

" }, - "formActionType":{ - "shape":"FormActionType", - "documentation":"

Specifies whether to perform a create or update action on the form.

" + "style":{ + "shape":"FormStyle", + "documentation":"

The configuration for the form's style.

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

The name of the form.

" + "sectionalElements":{ + "shape":"SectionalElementMap", + "documentation":"

The configuration information for the visual helper elements for the form. These elements are not associated with any data.

" }, "schemaVersion":{ "shape":"String", "documentation":"

The schema version of the form.

" }, - "sectionalElements":{ - "shape":"SectionalElementMap", - "documentation":"

The configuration information for the visual helper elements for the form. These elements are not associated with any data.

" + "cta":{ + "shape":"FormCTA", + "documentation":"

The FormCTA object that stores the call to action configuration for the form.

" }, - "style":{ - "shape":"FormStyle", - "documentation":"

The configuration for the form's style.

" + "labelDecorator":{ + "shape":"LabelDecorator", + "documentation":"

Specifies an icon or decoration to display on the form.

" } }, "documentation":"

Updates and saves all of the information about a form, based on form ID.

" @@ -2711,13 +2853,6 @@ "location":"uri", "locationName":"appId" }, - "clientToken":{ - "shape":"String", - "documentation":"

The unique client token.

", - "idempotencyToken":true, - "location":"querystring", - "locationName":"clientToken" - }, "environmentName":{ "shape":"String", "documentation":"

The name of the backend environment that is part of the Amplify app.

", @@ -2730,6 +2865,13 @@ "location":"uri", "locationName":"id" }, + "clientToken":{ + "shape":"String", + "documentation":"

The unique client token.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, "updatedForm":{ "shape":"UpdateFormData", "documentation":"

The request accepts the following data in JSON format.

" @@ -2759,13 +2901,13 @@ "shape":"ThemeName", "documentation":"

The name of the theme to update.

" }, - "overrides":{ - "shape":"ThemeValuesList", - "documentation":"

Describes the properties that can be overriden to customize the theme.

" - }, "values":{ "shape":"ThemeValuesList", "documentation":"

A list of key-value pairs that define the theme's properties.

" + }, + "overrides":{ + "shape":"ThemeValuesList", + "documentation":"

Describes the properties that can be overriden to customize the theme.

" } }, "documentation":"

Saves the data binding information for a theme.

" @@ -2785,13 +2927,6 @@ "location":"uri", "locationName":"appId" }, - "clientToken":{ - "shape":"String", - "documentation":"

The unique client token.

", - "idempotencyToken":true, - "location":"querystring", - "locationName":"clientToken" - }, "environmentName":{ "shape":"String", "documentation":"

The name of the backend environment that is part of the Amplify app.

", @@ -2804,6 +2939,13 @@ "location":"uri", "locationName":"id" }, + "clientToken":{ + "shape":"String", + "documentation":"

The unique client token.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, "updatedTheme":{ "shape":"UpdateThemeData", "documentation":"

The configuration of the updated theme.

" @@ -2852,6 +2994,10 @@ "values":{ "shape":"ValueMappingList", "documentation":"

The value and display value pairs.

" + }, + "bindingProperties":{ + "shape":"FormInputBindingProperties", + "documentation":"

The information to bind fields to data at runtime.

" } }, "documentation":"

Represents the data binding configuration for a value map.

" diff --git a/services/amplifyuibuilder/src/main/resources/codegen-resources/waiters-2.json b/services/amplifyuibuilder/src/main/resources/codegen-resources/waiters-2.json new file mode 100644 index 000000000000..13f60ee66be6 --- /dev/null +++ b/services/amplifyuibuilder/src/main/resources/codegen-resources/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/services/apigateway/pom.xml b/services/apigateway/pom.xml index 5c16c2738d87..9a716eabb794 100644 --- a/services/apigateway/pom.xml +++ b/services/apigateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT apigateway AWS Java SDK :: Services :: Amazon API Gateway diff --git a/services/apigatewaymanagementapi/pom.xml b/services/apigatewaymanagementapi/pom.xml index 770d66ce0869..00b2ebfb2ff2 100644 --- a/services/apigatewaymanagementapi/pom.xml +++ b/services/apigatewaymanagementapi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT apigatewaymanagementapi AWS Java SDK :: Services :: ApiGatewayManagementApi diff --git a/services/apigatewayv2/pom.xml b/services/apigatewayv2/pom.xml index e6e4e3d8d1f2..03ee942e1201 100644 --- a/services/apigatewayv2/pom.xml +++ b/services/apigatewayv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT apigatewayv2 AWS Java SDK :: Services :: ApiGatewayV2 diff --git a/services/appconfig/pom.xml b/services/appconfig/pom.xml index fac700eb8702..bcc4555399f6 100644 --- a/services/appconfig/pom.xml +++ b/services/appconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT appconfig AWS Java SDK :: Services :: AppConfig diff --git a/services/appconfig/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/appconfig/src/main/resources/codegen-resources/endpoint-rule-set.json index ab7ffea47e01..a77bfa88091b 100644 --- a/services/appconfig/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/appconfig/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,212 +111,276 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfig-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://appconfig-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "us-gov-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://appconfig.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://appconfig.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://appconfig.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "us-gov-west-1" + { + "conditions": [], + "endpoint": { + "url": "https://appconfig-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://appconfig.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, { "conditions": [], - "endpoint": { - "url": "https://appconfig-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfig.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://appconfig.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfig.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://appconfig.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/appconfig/src/main/resources/codegen-resources/endpoint-tests.json b/services/appconfig/src/main/resources/codegen-resources/endpoint-tests.json index 35659c4dd3c4..513cab3cb6cf 100644 --- a/services/appconfig/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/appconfig/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1182 +1,16 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfig.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-east-1.amazonaws.com" + "url": "https://appconfig.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" + "UseFIPS": false } }, { @@ -1187,536 +21,503 @@ } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://appconfig.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.cn-north-1.amazonaws.com.cn" + "url": "https://appconfig.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://appconfig.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.cn-north-1.amazonaws.com.cn" + "url": "https://appconfig.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.us-gov-west-1.api.aws" + "url": "https://appconfig.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.us-gov-west-1.amazonaws.com" + "url": "https://appconfig.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.us-gov-west-1.api.aws" + "url": "https://appconfig.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.us-gov-west-1.amazonaws.com" + "url": "https://appconfig.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-1.api.aws" + "url": "https://appconfig.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-1.amazonaws.com" + "url": "https://appconfig.eu-north-1.amazonaws.com" } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.ap-southeast-1.api.aws" + "url": "https://appconfig.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.ap-southeast-1.amazonaws.com" + "url": "https://appconfig.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-2.api.aws" + "url": "https://appconfig.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-2.amazonaws.com" + "url": "https://appconfig.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.ap-southeast-2.api.aws" + "url": "https://appconfig.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.ap-southeast-2.amazonaws.com" + "url": "https://appconfig.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://appconfig.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.us-iso-east-1.c2s.ic.gov" + "url": "https://appconfig.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-3.api.aws" + "url": "https://appconfig.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-3.amazonaws.com" + "url": "https://appconfig.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-3" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfig.ap-southeast-3.api.aws" + "url": "https://appconfig-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.ap-southeast-3.amazonaws.com" + "url": "https://appconfig-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-4.api.aws" + "url": "https://appconfig.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-4" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.ap-southeast-4.amazonaws.com" + "url": "https://appconfig.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-4" - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfig.ap-southeast-4.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-4" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.ap-southeast-4.amazonaws.com" + "url": "https://appconfig.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-4" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.us-east-1.api.aws" + "url": "https://appconfig-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.us-east-1.amazonaws.com" + "url": "https://appconfig-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfig.us-east-1.api.aws" + "url": "https://appconfig.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.us-east-1.amazonaws.com" + "url": "https://appconfig.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.us-east-2.api.aws" + "url": "https://appconfig.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.us-east-2.amazonaws.com" + "url": "https://appconfig.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.us-east-2.api.aws" + "url": "https://appconfig.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfig.us-east-2.amazonaws.com" + "url": "https://appconfig-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://appconfig.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://appconfig.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://appconfig.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfig.cn-northwest-1.amazonaws.com.cn" + "url": "https://appconfig-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-northwest-1" + "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://appconfig.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -1727,37 +528,27 @@ } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-isob-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://appconfig.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1766,7 +557,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1776,9 +566,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1788,9 +578,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/appconfig/src/main/resources/codegen-resources/service-2.json b/services/appconfig/src/main/resources/codegen-resources/service-2.json index 125f1ac3e952..d37d8fd77dd8 100644 --- a/services/appconfig/src/main/resources/codegen-resources/service-2.json +++ b/services/appconfig/src/main/resources/codegen-resources/service-2.json @@ -1249,6 +1249,12 @@ "box":true, "location":"header", "locationName":"Latest-Version-Number" + }, + "VersionLabel":{ + "shape":"VersionLabel", + "documentation":"

An optional, user-defined label for the AppConfig hosted configuration version. This value must contain at least one non-numeric character. For example, \"v2.2.0\".

", + "location":"header", + "locationName":"VersionLabel" } }, "payload":"Content" @@ -2088,6 +2094,12 @@ "documentation":"

A standard MIME type describing the format of the configuration content. For more information, see Content-Type.

", "location":"header", "locationName":"Content-Type" + }, + "VersionLabel":{ + "shape":"VersionLabel", + "documentation":"

A user-defined label for an AppConfig hosted configuration version.

", + "location":"header", + "locationName":"VersionLabel" } }, "payload":"Content" @@ -2114,6 +2126,10 @@ "ContentType":{ "shape":"StringWithLengthBetween1And255", "documentation":"

A standard MIME type describing the format of the configuration content. For more information, see Content-Type.

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

A user-defined label for an AppConfig hosted configuration version.

" } }, "documentation":"

Information about the configuration.

" @@ -2407,6 +2423,12 @@ "documentation":"

A token to start the list. Use this token to get the next set of results.

", "location":"querystring", "locationName":"next_token" + }, + "VersionLabel":{ + "shape":"QueryName", + "documentation":"

An optional filter that can be used to specify the version label of an AppConfig hosted configuration version. This parameter supports filtering by prefix using a wildcard, for example \"v2*\". If you don't specify an asterisk at the end of the value, only an exact match is returned.

", + "location":"querystring", + "locationName":"version_label" } } }, @@ -2591,7 +2613,7 @@ }, "ConfigurationVersion":{ "shape":"Version", - "documentation":"

The configuration version to deploy.

" + "documentation":"

The configuration version to deploy. If deploying an AppConfig hosted configuration version, you can specify either the version number or version label.

" }, "Description":{ "shape":"Description", @@ -2973,6 +2995,12 @@ "type":"string", "max":1024, "min":1 + }, + "VersionLabel":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*[^0-9].*" } }, "documentation":"

Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage, and quickly deploy application configurations. AppConfig supports controlled deployments to applications of any size and includes built-in validation checks and monitoring. You can use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers, mobile applications, or IoT devices.

To prevent errors when deploying application configurations, especially for production systems where a simple typo could cause an unexpected outage, AppConfig includes validators. A validator provides a syntactic or semantic check to ensure that the configuration you want to deploy works as intended. To validate your application configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid.

During a configuration deployment, AppConfig monitors the application to ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can configure a deployment strategy for each application or environment that includes deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back to the previous version.

AppConfig supports multiple use cases. Here are some examples:

  • Feature flags: Use AppConfig to turn on new features that require a timely deployment, such as a product launch or announcement.

  • Application tuning: Use AppConfig to carefully introduce changes to your application that can only be tested with production traffic.

  • Allow list: Use AppConfig to allow premium subscribers to access paid content.

  • Operational issues: Use AppConfig to reduce stress on your application when a dependency or other external factor impacts the system.

This reference is intended to be used with the AppConfig User Guide.

" diff --git a/services/appconfigdata/pom.xml b/services/appconfigdata/pom.xml index ad99c747e3e5..a01067b3f381 100644 --- a/services/appconfigdata/pom.xml +++ b/services/appconfigdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT appconfigdata AWS Java SDK :: Services :: App Config Data diff --git a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json index 27bede53fc5e..2a486b706d65 100644 --- a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://appconfigdata.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://appconfigdata.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://appconfigdata.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json index fa869c591f75..538a6cf8257a 100644 --- a/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/appconfigdata/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1337 +1,80 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appconfigdata-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.us-gov-west-1.amazonaws.com" + "url": "https://appconfigdata.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.us-gov-west-1.api.aws" + "url": "https://appconfigdata.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", + "Region": "ap-east-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.us-gov-west-1.amazonaws.com" + "url": "https://appconfigdata.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "us-gov-west-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-1.api.aws" + "url": "https://appconfigdata.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-1.amazonaws.com" + "url": "https://appconfigdata.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.ap-southeast-1.api.aws" + "url": "https://appconfigdata.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", + "Region": "ap-south-1", + "UseDualStack": false, "UseFIPS": false } }, @@ -1343,212 +86,190 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-southeast-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-2.api.aws" + "url": "https://appconfigdata.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "ap-southeast-2", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-2.amazonaws.com" + "url": "https://appconfigdata.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.ap-southeast-2.api.aws" + "url": "https://appconfigdata.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", + "Region": "eu-central-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.ap-southeast-2.amazonaws.com" + "url": "https://appconfigdata.eu-north-1.amazonaws.com" } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://appconfigdata.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.us-iso-east-1.c2s.ic.gov" + "url": "https://appconfigdata.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "us-iso-east-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-3.api.aws" + "url": "https://appconfigdata.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-3.amazonaws.com" + "url": "https://appconfigdata.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.ap-southeast-3.api.aws" + "url": "https://appconfigdata.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", + "Region": "me-south-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.ap-southeast-3.amazonaws.com" + "url": "https://appconfigdata.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "Region": "ap-southeast-3", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-4.api.aws" + "url": "https://appconfigdata.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": true + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.ap-southeast-4.amazonaws.com" + "url": "https://appconfigdata.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.ap-southeast-4.api.aws" + "url": "https://appconfigdata.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-4", + "Region": "us-west-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.ap-southeast-4.amazonaws.com" + "url": "https://appconfigdata.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "ap-southeast-4", "UseFIPS": false } }, @@ -1560,8 +281,8 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": true } }, @@ -1573,8 +294,8 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true } }, @@ -1586,139 +307,180 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.us-east-1.amazonaws.com" + "url": "https://appconfigdata.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.us-east-2.api.aws" + "url": "https://appconfigdata-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-2", "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.us-east-2.amazonaws.com" + "url": "https://appconfigdata-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfigdata.us-east-2.api.aws" + "url": "https://appconfigdata.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.us-east-2.amazonaws.com" + "url": "https://appconfigdata.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://appconfigdata-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "cn-northwest-1", "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://appconfigdata-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appconfigdata.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://appconfigdata.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "cn-northwest-1", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.cn-northwest-1.amazonaws.com.cn" + "url": "https://appconfigdata.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://appconfigdata-fips.us-iso-east-1.c2s.ic.gov" + } }, "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", + "Region": "us-iso-east-1", + "UseDualStack": false, "UseFIPS": true } }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, { "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { @@ -1727,37 +489,40 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://appconfigdata.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://appconfigdata.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1765,7 +530,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -1776,8 +540,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -1788,8 +552,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/appconfigdata/src/main/resources/codegen-resources/service-2.json b/services/appconfigdata/src/main/resources/codegen-resources/service-2.json index 8aea92c8a2f6..0c3a5c496bff 100644 --- a/services/appconfigdata/src/main/resources/codegen-resources/service-2.json +++ b/services/appconfigdata/src/main/resources/codegen-resources/service-2.json @@ -27,7 +27,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerException"} ], - "documentation":"

Retrieves the latest deployed configuration. This API may return empty configuration data if the client already has the latest version. For more information about this API action and to view example CLI commands that show how to use it with the StartConfigurationSession API action, see Receiving the configuration in the AppConfig User Guide.

Note the following important information.

  • Each configuration token is only valid for one call to GetLatestConfiguration. The GetLatestConfiguration response includes a NextPollConfigurationToken that should always replace the token used for the just-completed call in preparation for the next one.

  • GetLatestConfiguration is a priced call. For more information, see Pricing.

" + "documentation":"

Retrieves the latest deployed configuration. This API may return empty configuration data if the client already has the latest version. For more information about this API action and to view example CLI commands that show how to use it with the StartConfigurationSession API action, see Retrieving the configuration in the AppConfig User Guide.

Note the following important information.

  • Each configuration token is only valid for one call to GetLatestConfiguration. The GetLatestConfiguration response includes a NextPollConfigurationToken that should always replace the token used for the just-completed call in preparation for the next one.

  • GetLatestConfiguration is a priced call. For more information, see Pricing.

" }, "StartConfigurationSession":{ "name":"StartConfigurationSession", @@ -44,7 +44,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerException"} ], - "documentation":"

Starts a configuration session used to retrieve a deployed configuration. For more information about this API action and to view example CLI commands that show how to use it with the GetLatestConfiguration API action, see Receiving the configuration in the AppConfig User Guide.

" + "documentation":"

Starts a configuration session used to retrieve a deployed configuration. For more information about this API action and to view example CLI commands that show how to use it with the GetLatestConfiguration API action, see Retrieving the configuration in the AppConfig User Guide.

" } }, "shapes":{ @@ -89,7 +89,7 @@ "members":{ "ConfigurationToken":{ "shape":"Token", - "documentation":"

Token describing the current state of the configuration session. To obtain a token, first call the StartConfigurationSession API. Note that every call to GetLatestConfiguration will return a new ConfigurationToken (NextPollConfigurationToken in the response) and MUST be provided to subsequent GetLatestConfiguration API calls.

", + "documentation":"

Token describing the current state of the configuration session. To obtain a token, first call the StartConfigurationSession API. Note that every call to GetLatestConfiguration will return a new ConfigurationToken (NextPollConfigurationToken in the response) and must be provided to subsequent GetLatestConfiguration API calls.

This token should only be used once. To support long poll use cases, the token is valid for up to 24 hours. If a GetLatestConfiguration call uses an expired token, the system returns BadRequestException.

", "location":"querystring", "locationName":"configuration_token" } @@ -100,7 +100,7 @@ "members":{ "NextPollConfigurationToken":{ "shape":"Token", - "documentation":"

The latest token describing the current state of the configuration session. This MUST be provided to the next call to GetLatestConfiguration.

", + "documentation":"

The latest token describing the current state of the configuration session. This must be provided to the next call to GetLatestConfiguration.

This token should only be used once. To support long poll use cases, the token is valid for up to 24 hours. If a GetLatestConfiguration call uses an expired token, the system returns BadRequestException.

", "location":"header", "locationName":"Next-Poll-Configuration-Token" }, @@ -117,15 +117,21 @@ "locationName":"Content-Type" }, "Configuration":{ - "shape":"SyntheticGetLatestConfigurationResponseBlob", + "shape":"SensitiveBlob", "documentation":"

The data of the configuration. This may be empty if the client already has the latest version of configuration.

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

The user-defined label for the AppConfig hosted configuration version. This attribute doesn't apply if the configuration is not from an AppConfig hosted configuration version. If the client already has the latest version of the configuration data, this value is empty.

", + "location":"header", + "locationName":"Version-Label" } }, "payload":"Configuration" }, "Identifier":{ "type":"string", - "max":64, + "max":128, "min":1 }, "Integer":{"type":"integer"}, @@ -198,6 +204,10 @@ "Configuration" ] }, + "SensitiveBlob":{ + "type":"blob", + "sensitive":true + }, "StartConfigurationSessionRequest":{ "type":"structure", "required":[ @@ -220,7 +230,7 @@ }, "RequiredMinimumPollIntervalInSeconds":{ "shape":"OptionalPollSeconds", - "documentation":"

Sets a constraint on a session. If you specify a value of, for example, 60 seconds, then the client that established the session can't call GetLatestConfiguration more frequently then every 60 seconds.

" + "documentation":"

Sets a constraint on a session. If you specify a value of, for example, 60 seconds, then the client that established the session can't call GetLatestConfiguration more frequently than every 60 seconds.

" } } }, @@ -229,7 +239,7 @@ "members":{ "InitialConfigurationToken":{ "shape":"Token", - "documentation":"

Token encapsulating state about the configuration session. Provide this token to the GetLatestConfiguration API to retrieve configuration data.

This token should only be used once in your first call to GetLatestConfiguration. You MUST use the new token in the GetLatestConfiguration response (NextPollConfigurationToken) in each subsequent call to GetLatestConfiguration.

" + "documentation":"

Token encapsulating state about the configuration session. Provide this token to the GetLatestConfiguration API to retrieve configuration data.

This token should only be used once in your first call to GetLatestConfiguration. You must use the new token in the GetLatestConfiguration response (NextPollConfigurationToken) in each subsequent call to GetLatestConfiguration.

The InitialConfigurationToken and NextPollConfigurationToken should only be used once. To support long poll use cases, the tokens are valid for up to 24 hours. If a GetLatestConfiguration call uses an expired token, the system returns BadRequestException.

" } } }, @@ -239,10 +249,6 @@ "key":{"shape":"String"}, "value":{"shape":"String"} }, - "SyntheticGetLatestConfigurationResponseBlob":{ - "type":"blob", - "sensitive":true - }, "ThrottlingException":{ "type":"structure", "members":{ @@ -260,5 +266,5 @@ "pattern":"\\S{1,8192}" } }, - "documentation":"

AppConfig Data provides the data plane APIs your application uses to retrieve configuration data. Here's how it works:

Your application retrieves configuration data by first establishing a configuration session using the AppConfig Data StartConfigurationSession API action. Your session's client then makes periodic calls to GetLatestConfiguration to check for and retrieve the latest data available.

When calling StartConfigurationSession, your code sends the following information:

  • Identifiers (ID or name) of an AppConfig application, environment, and configuration profile that the session tracks.

  • (Optional) The minimum amount of time the session's client must wait between calls to GetLatestConfiguration.

In response, AppConfig provides an InitialConfigurationToken to be given to the session's client and used the first time it calls GetLatestConfiguration for that session.

When calling GetLatestConfiguration, your client code sends the most recent ConfigurationToken value it has and receives in response:

  • NextPollConfigurationToken: the ConfigurationToken value to use on the next call to GetLatestConfiguration.

  • NextPollIntervalInSeconds: the duration the client should wait before making its next call to GetLatestConfiguration. This duration may vary over the course of the session, so it should be used instead of the value sent on the StartConfigurationSession call.

  • The configuration: the latest data intended for the session. This may be empty if the client already has the latest version of the configuration.

For more information and to view example CLI commands that show how to retrieve a configuration using the AppConfig Data StartConfigurationSession and GetLatestConfiguration API actions, see Receiving the configuration in the AppConfig User Guide.

" + "documentation":"

AppConfig Data provides the data plane APIs your application uses to retrieve configuration data. Here's how it works:

Your application retrieves configuration data by first establishing a configuration session using the AppConfig Data StartConfigurationSession API action. Your session's client then makes periodic calls to GetLatestConfiguration to check for and retrieve the latest data available.

When calling StartConfigurationSession, your code sends the following information:

  • Identifiers (ID or name) of an AppConfig application, environment, and configuration profile that the session tracks.

  • (Optional) The minimum amount of time the session's client must wait between calls to GetLatestConfiguration.

In response, AppConfig provides an InitialConfigurationToken to be given to the session's client and used the first time it calls GetLatestConfiguration for that session.

This token should only be used once in your first call to GetLatestConfiguration. You must use the new token in the GetLatestConfiguration response (NextPollConfigurationToken) in each subsequent call to GetLatestConfiguration.

When calling GetLatestConfiguration, your client code sends the most recent ConfigurationToken value it has and receives in response:

  • NextPollConfigurationToken: the ConfigurationToken value to use on the next call to GetLatestConfiguration.

  • NextPollIntervalInSeconds: the duration the client should wait before making its next call to GetLatestConfiguration. This duration may vary over the course of the session, so it should be used instead of the value sent on the StartConfigurationSession call.

  • The configuration: the latest data intended for the session. This may be empty if the client already has the latest version of the configuration.

The InitialConfigurationToken and NextPollConfigurationToken should only be used once. To support long poll use cases, the tokens are valid for up to 24 hours. If a GetLatestConfiguration call uses an expired token, the system returns BadRequestException.

For more information and to view example CLI commands that show how to retrieve a configuration using the AppConfig Data StartConfigurationSession and GetLatestConfiguration API actions, see Retrieving the configuration in the AppConfig User Guide.

" } diff --git a/services/appflow/pom.xml b/services/appflow/pom.xml index 87242dfed482..3278d9504439 100644 --- a/services/appflow/pom.xml +++ b/services/appflow/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT appflow AWS Java SDK :: Services :: Appflow diff --git a/services/appflow/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/appflow/src/main/resources/codegen-resources/endpoint-rule-set.json index 01706fd67967..02056ce3eb54 100644 --- a/services/appflow/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/appflow/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appflow-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://appflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appflow.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://appflow-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://appflow.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://appflow.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://appflow.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/appflow/src/main/resources/codegen-resources/endpoint-tests.json b/services/appflow/src/main/resources/codegen-resources/endpoint-tests.json index 45e1b7d9c2e6..f502b5b25a35 100644 --- a/services/appflow/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/appflow/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,42 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-south-1.api.aws" + "url": "https://appflow.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-south-1.amazonaws.com" + "url": "https://appflow.ap-northeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.ap-south-1.api.aws" + "url": "https://appflow.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-south-1" + "Region": "ap-northeast-2" } }, { @@ -53,42 +53,29 @@ } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ca-central-1.amazonaws.com" + "url": "https://appflow.ap-southeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.ca-central-1.api.aws" + "url": "https://appflow.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "UseDualStack": false, "UseFIPS": false, - "Region": "ca-central-1" + "Region": "ap-southeast-2" } }, { @@ -104,45 +91,6 @@ "Region": "ca-central-1" } }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, { "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { @@ -157,198 +105,29 @@ } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.af-south-1.amazonaws.com" + "url": "https://appflow.eu-west-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" + "Region": "eu-west-1" } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.eu-west-3.amazonaws.com" + "url": "https://appflow.eu-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-3" + "Region": "eu-west-2" } }, { @@ -365,475 +144,281 @@ } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.eu-west-2.amazonaws.com" + "url": "https://appflow.sa-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "sa-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.eu-west-1.amazonaws.com" + "url": "https://appflow.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-1" + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.eu-west-1.amazonaws.com" + "url": "https://appflow.us-east-2.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" + "Region": "us-east-2" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-northeast-2.amazonaws.com" + "url": "https://appflow.us-west-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-2" + "Region": "us-west-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.ap-northeast-2.amazonaws.com" + "url": "https://appflow.us-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-2" + "Region": "us-west-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-northeast-1.api.aws" + "url": "https://appflow-fips.us-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-northeast-1.amazonaws.com" + "url": "https://appflow-fips.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appflow.ap-northeast-1.api.aws" + "url": "https://appflow.us-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appflow-fips.sa-east-1.api.aws" + "url": "https://appflow-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, "UseFIPS": true, - "Region": "sa-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.sa-east-1.amazonaws.com" + "url": "https://appflow-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "sa-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appflow.sa-east-1.api.aws" + "url": "https://appflow.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, "UseFIPS": false, - "Region": "sa-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.sa-east-1.amazonaws.com" + "url": "https://appflow.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "sa-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-southeast-1.api.aws" + "url": "https://appflow-fips.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-southeast-1.amazonaws.com" + "url": "https://appflow-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://appflow.ap-southeast-1.api.aws" + "url": "https://appflow.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.ap-southeast-1.amazonaws.com" + "url": "https://appflow.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.ap-southeast-2.amazonaws.com" + "url": "https://appflow-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow.ap-southeast-2.amazonaws.com" + "url": "https://appflow.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.us-east-1.amazonaws.com" + "url": "https://appflow-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://appflow.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://appflow-fips.us-east-2.amazonaws.com" + "url": "https://appflow.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://appflow.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://appflow.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -842,7 +427,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, diff --git a/services/appflow/src/main/resources/codegen-resources/service-2.json b/services/appflow/src/main/resources/codegen-resources/service-2.json index 6aeb042b2ce2..5d63ad05ab71 100644 --- a/services/appflow/src/main/resources/codegen-resources/service-2.json +++ b/services/appflow/src/main/resources/codegen-resources/service-2.json @@ -4234,6 +4234,10 @@ "isSandboxEnvironment":{ "shape":"Boolean", "documentation":"

Indicates whether the connector profile applies to a sandbox or production environment.

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

If the connection mode for the connector profile is private, this parameter sets whether Amazon AppFlow uses the private network to send metadata and authorization calls to Salesforce. Amazon AppFlow sends private calls through Amazon Web Services PrivateLink. These calls travel through Amazon Web Services infrastructure without being exposed to the public internet.

Set either of the following values:

true

Amazon AppFlow sends all calls to Salesforce over the private network.

These private calls are:

  • Calls to get metadata about your Salesforce records. This metadata describes your Salesforce objects and their fields.

  • Calls to get or refresh access tokens that allow Amazon AppFlow to access your Salesforce records.

  • Calls to transfer your Salesforce records as part of a flow run.

false

The default value. Amazon AppFlow sends some calls to Salesforce privately and other calls over the public internet.

The public calls are:

  • Calls to get metadata about your Salesforce records.

  • Calls to get or refresh access tokens.

The private calls are:

  • Calls to transfer your Salesforce records as part of a flow run.

" } }, "documentation":"

The connector-specific profile properties required when using Salesforce.

" diff --git a/services/appintegrations/pom.xml b/services/appintegrations/pom.xml index 653a84c95894..b33799e190fe 100644 --- a/services/appintegrations/pom.xml +++ b/services/appintegrations/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT appintegrations AWS Java SDK :: Services :: App Integrations diff --git a/services/appintegrations/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/appintegrations/src/main/resources/codegen-resources/endpoint-rule-set.json index 6a244f0a100e..949e319b5256 100644 --- a/services/appintegrations/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/appintegrations/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://app-integrations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://app-integrations-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://app-integrations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://app-integrations.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://app-integrations-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://app-integrations.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://app-integrations.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://app-integrations.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/appintegrations/src/main/resources/codegen-resources/endpoint-tests.json b/services/appintegrations/src/main/resources/codegen-resources/endpoint-tests.json index 4ab4c46a2142..0879f46a896e 100644 --- a/services/appintegrations/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/appintegrations/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,68 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-south-1.api.aws" + "url": "https://app-integrations.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-south-1.amazonaws.com" + "url": "https://app-integrations.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ca-central-1.api.aws" + "url": "https://app-integrations.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ca-central-1.amazonaws.com" + "url": "https://app-integrations.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ca-central-1.api.aws" + "url": "https://app-integrations.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -99,48 +73,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -151,152 +86,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -307,282 +99,256 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://app-integrations-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ap-northeast-2.amazonaws.com" + "url": "https://app-integrations.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-northeast-2.api.aws" + "url": "https://app-integrations.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-northeast-2.amazonaws.com" + "url": "https://app-integrations-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ap-northeast-1.api.aws" + "url": "https://app-integrations-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ap-northeast-1.amazonaws.com" + "url": "https://app-integrations.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-northeast-1.api.aws" + "url": "https://app-integrations-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-northeast-1.amazonaws.com" + "url": "https://app-integrations-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ap-southeast-1.api.aws" + "url": "https://app-integrations.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ap-southeast-1.amazonaws.com" + "url": "https://app-integrations.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-southeast-1.api.aws" + "url": "https://app-integrations-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-southeast-1.amazonaws.com" + "url": "https://app-integrations-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ap-southeast-2.api.aws" + "url": "https://app-integrations.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.ap-southeast-2.amazonaws.com" + "url": "https://app-integrations.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-southeast-2.api.aws" + "url": "https://app-integrations-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.ap-southeast-2.amazonaws.com" + "url": "https://app-integrations.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.us-east-1.api.aws" + "url": "https://app-integrations-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://app-integrations-fips.us-east-1.amazonaws.com" + "url": "https://app-integrations.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://app-integrations.us-east-1.api.aws" + "url": "https://example.com" } }, "params": { - "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://app-integrations.us-east-1.amazonaws.com" - } - }, - "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -592,9 +358,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -604,9 +370,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/appintegrations/src/main/resources/codegen-resources/service-2.json b/services/appintegrations/src/main/resources/codegen-resources/service-2.json index b7be072322ba..0733dafe8e38 100644 --- a/services/appintegrations/src/main/resources/codegen-resources/service-2.json +++ b/services/appintegrations/src/main/resources/codegen-resources/service-2.json @@ -294,7 +294,12 @@ }, "CreateDataIntegrationRequest":{ "type":"structure", - "required":["Name"], + "required":[ + "Name", + "KmsKey", + "SourceURI", + "ScheduleConfig" + ], "members":{ "Name":{ "shape":"Name", @@ -309,7 +314,7 @@ "documentation":"

The KMS key for the DataIntegration.

" }, "SourceURI":{ - "shape":"NonBlankString", + "shape":"SourceURI", "documentation":"

The URI of the data source.

" }, "ScheduleConfig":{ @@ -318,12 +323,20 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" }, "ClientToken":{ "shape":"IdempotencyToken", - "documentation":"

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

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true + }, + "FileConfiguration":{ + "shape":"FileConfiguration", + "documentation":"

The configuration for what files should be pulled from the source.

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

The configuration for what data should be pulled from the source.

" } } }, @@ -351,7 +364,7 @@ "documentation":"

The KMS key for the DataIntegration.

" }, "SourceURI":{ - "shape":"NonBlankString", + "shape":"SourceURI", "documentation":"

The URI of the data source.

" }, "ScheduleConfiguration":{ @@ -360,11 +373,19 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" }, "ClientToken":{ "shape":"IdempotencyToken", - "documentation":"

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

" + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

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

The configuration for what files should be pulled from the source.

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

The configuration for what data should be pulled from the source.

" } } }, @@ -394,12 +415,12 @@ }, "ClientToken":{ "shape":"IdempotencyToken", - "documentation":"

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

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -421,11 +442,11 @@ }, "DataIntegrationArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN)of the DataIntegration.

" + "documentation":"

The Amazon Resource Name (ARN) of the DataIntegration.

" }, "ClientId":{ "shape":"ClientId", - "documentation":"

The identifier for teh client that is associated with the DataIntegration association.

" + "documentation":"

The identifier for the client that is associated with the DataIntegration association.

" } }, "documentation":"

Summary information about the DataIntegration association.

" @@ -448,7 +469,7 @@ "documentation":"

The name of the DataIntegration.

" }, "SourceURI":{ - "shape":"NonBlankString", + "shape":"SourceURI", "documentation":"

The URI of the data source.

" } }, @@ -557,7 +578,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, "documentation":"

The event integration.

" @@ -604,6 +625,44 @@ "max":50, "min":1 }, + "Fields":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[a-zA-Z0-9\\/\\._\\-]+$" + }, + "FieldsList":{ + "type":"list", + "member":{"shape":"Fields"}, + "max":2048, + "min":1 + }, + "FieldsMap":{ + "type":"map", + "key":{"shape":"NonBlankString"}, + "value":{"shape":"FieldsList"} + }, + "FileConfiguration":{ + "type":"structure", + "required":["Folders"], + "members":{ + "Folders":{ + "shape":"FolderList", + "documentation":"

Identifiers for the source folders to pull all files from recursively.

" + }, + "Filters":{ + "shape":"FieldsMap", + "documentation":"

Restrictions for what files should be pulled from the source.

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

The configuration for what files should be pulled from the source.

" + }, + "FolderList":{ + "type":"list", + "member":{"shape":"NonBlankLongString"}, + "max":10, + "min":1 + }, "GetDataIntegrationRequest":{ "type":"structure", "required":["Identifier"], @@ -640,7 +699,7 @@ "documentation":"

The KMS key for the DataIntegration.

" }, "SourceURI":{ - "shape":"NonBlankString", + "shape":"SourceURI", "documentation":"

The URI of the data source.

" }, "ScheduleConfiguration":{ @@ -649,7 +708,15 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

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

The configuration for what files should be pulled from the source.

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

The configuration for what data should be pulled from the source.

" } } }, @@ -690,7 +757,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -898,6 +965,12 @@ "min":1, "pattern":".*" }, + "NonBlankLongString":{ + "type":"string", + "max":200, + "min":1, + "pattern":".*\\S.*" + }, "NonBlankString":{ "type":"string", "max":255, @@ -910,6 +983,12 @@ "min":1, "pattern":"^[a-zA-Z0-9\\/\\._\\-]+$" }, + "ObjectConfiguration":{ + "type":"map", + "key":{"shape":"NonBlankString"}, + "value":{"shape":"FieldsMap"}, + "documentation":"

The configuration for what data should be pulled from the source.

" + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -928,25 +1007,20 @@ "error":{"httpStatusCode":429}, "exception":true }, - "Schedule":{ - "type":"string", - "max":255, - "min":1, - "pattern":"^[a-zA-Z0-9\\/\\._\\-]+$" - }, "ScheduleConfiguration":{ "type":"structure", + "required":["ScheduleExpression"], "members":{ "FirstExecutionFrom":{ "shape":"NonBlankString", - "documentation":"

The start date for objects to import in the first flow run.

" + "documentation":"

The start date for objects to import in the first flow run as an Unix/epoch timestamp in milliseconds or in ISO-8601 format.

" }, "Object":{ "shape":"Object", "documentation":"

The name of the object to pull from the data source.

" }, "ScheduleExpression":{ - "shape":"Schedule", + "shape":"NonBlankString", "documentation":"

How often the data should be pulled from data source.

" } }, @@ -958,6 +1032,12 @@ "min":1, "pattern":"^aws\\.partner\\/.*$" }, + "SourceURI":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^(\\w+\\:\\/\\/[\\w.-]+[\\w/!@#+=.-]+$)|(\\w+\\:\\/\\/[\\w.-]+[\\w/!@#+=.-]+[\\w/!@#+=.-]+[\\w/!@#+=.,-]+$)" + }, "TagKey":{ "type":"string", "max":128, @@ -992,7 +1072,7 @@ }, "tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, diff --git a/services/applicationautoscaling/pom.xml b/services/applicationautoscaling/pom.xml index e7fe87a3448b..dbc2bf863d4f 100644 --- a/services/applicationautoscaling/pom.xml +++ b/services/applicationautoscaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT applicationautoscaling AWS Java SDK :: Services :: AWS Application Auto Scaling diff --git a/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json index 70b1378111e6..b335dbc7919f 100644 --- a/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://application-autoscaling.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://application-autoscaling.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://application-autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://application-autoscaling.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,28 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://application-autoscaling.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-tests.json b/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-tests.json index e55c2c3bba32..b8bca66a6135 100644 --- a/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/applicationautoscaling/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,55 @@ { "testCases": [ { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-iso-east-1.c2s.ic.gov" + "url": "https://application-autoscaling.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-iso-west-1.c2s.ic.gov" + "url": "https://application-autoscaling.ap-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-northeast-1.amazonaws.com" + } + }, + "params": { "UseFIPS": false, - "Region": "us-iso-west-1" + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://application-autoscaling.ap-northeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "ap-northeast-2" } }, { @@ -47,204 +60,204 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "ap-northeast-3" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-east-1.amazonaws.com" + "url": "https://application-autoscaling.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.eu-west-1.amazonaws.com" + "url": "https://application-autoscaling.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.eu-west-2.amazonaws.com" + "url": "https://application-autoscaling.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.eu-west-3.amazonaws.com" + "url": "https://application-autoscaling.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-3" + "UseDualStack": false, + "Region": "ap-southeast-3" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.me-south-1.amazonaws.com" + "url": "https://application-autoscaling.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.eu-north-1.amazonaws.com" + "url": "https://application-autoscaling.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-north-1" + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-east-2.amazonaws.com" + "url": "https://application-autoscaling.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false, + "Region": "eu-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.sa-east-1.amazonaws.com" + "url": "https://application-autoscaling.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ap-east-1.amazonaws.com" + "url": "https://application-autoscaling.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.eu-south-1.amazonaws.com" + "url": "https://application-autoscaling.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-south-1" + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.eu-central-1.amazonaws.com" + "url": "https://application-autoscaling.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ap-southeast-1.amazonaws.com" + "url": "https://application-autoscaling.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ap-southeast-2.amazonaws.com" + "url": "https://application-autoscaling.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ap-southeast-3.amazonaws.com" + "url": "https://application-autoscaling.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ca-central-1.amazonaws.com" + "url": "https://application-autoscaling.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ca-central-1" + "UseDualStack": false, + "Region": "us-east-2" } }, { @@ -255,8 +268,8 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "us-west-1" } }, @@ -268,282 +281,282 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "us-west-2" } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.af-south-1.amazonaws.com" + "url": "https://application-autoscaling-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ap-south-1.amazonaws.com" + "url": "https://application-autoscaling-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ap-northeast-1.amazonaws.com" + "url": "https://application-autoscaling.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.ap-northeast-2.amazonaws.com" + "url": "https://application-autoscaling.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling-fips.us-east-1.api.aws" + "url": "https://application-autoscaling.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://application-autoscaling-fips.us-east-1.amazonaws.com" + "url": "https://application-autoscaling-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-east-1.api.aws" + "url": "https://application-autoscaling-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-gov-west-1.amazonaws.com" + "url": "https://application-autoscaling.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-gov-west-1.amazonaws.com" + "url": "https://application-autoscaling.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { "url": "https://application-autoscaling.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, "Region": "us-gov-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-gov-east-1.amazonaws.com" + "url": "https://application-autoscaling.us-gov-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling-fips.us-gov-east-1.api.aws" + "url": "https://application-autoscaling.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-gov-east-1.api.aws" + "url": "https://application-autoscaling-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, "Region": "us-gov-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.us-isob-east-1.sc2s.sgov.gov" + "url": "https://application-autoscaling.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://application-autoscaling.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.cn-northwest-1.amazonaws.com.cn" + "url": "https://application-autoscaling.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": false, + "Region": "us-iso-west-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.cn-north-1.amazonaws.com.cn" + "url": "https://application-autoscaling-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://application-autoscaling.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling-fips.cn-north-1.amazonaws.com.cn" + "url": "https://application-autoscaling-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://application-autoscaling.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://example.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -553,8 +566,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -565,8 +578,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Region": "us-east-1", "Endpoint": "https://example.com" } diff --git a/services/applicationautoscaling/src/main/resources/codegen-resources/service-2.json b/services/applicationautoscaling/src/main/resources/codegen-resources/service-2.json index d18487abb831..6b88bfbebfcb 100644 --- a/services/applicationautoscaling/src/main/resources/codegen-resources/service-2.json +++ b/services/applicationautoscaling/src/main/resources/codegen-resources/service-2.json @@ -126,6 +126,19 @@ ], "documentation":"

Describes the Application Auto Scaling scheduled actions for the specified service namespace.

You can filter the results using the ResourceId, ScalableDimension, and ScheduledActionNames parameters.

For more information, see Scheduled scaling and Managing scheduled scaling in the Application Auto Scaling User Guide.

" }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns all the tags on the specified Application Auto Scaling scalable target.

For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

" + }, "PutScalingPolicy":{ "name":"PutScalingPolicy", "http":{ @@ -142,7 +155,7 @@ {"shape":"FailedResourceAccessException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates or updates a scaling policy for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you have registered the resource as a scalable target.

Multiple scaling policies can be in force at the same time for the same scalable target. You can have one or more target tracking scaling policies, one or more step scaling policies, or both. However, there is a chance that multiple policies could conflict, instructing the scalable target to scale out or in at the same time. Application Auto Scaling gives precedence to the policy that provides the largest capacity for both scale out and scale in. For example, if one policy increases capacity by 3, another policy increases capacity by 200 percent, and the current capacity is 10, Application Auto Scaling uses the policy with the highest calculated capacity (200% of 10 = 20) and scales out to 30.

We recommend caution, however, when using target tracking scaling policies with step scaling policies because conflicts between these policies can cause undesirable behavior. For example, if the step scaling policy initiates a scale-in activity before the target tracking policy is ready to scale in, the scale-in activity will not be blocked. After the scale-in activity completes, the target tracking policy could instruct the scalable target to scale out again.

For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide.

If a scalable target is deregistered, the scalable target is no longer available to execute scaling policies. Any scaling policies that were specified for the scalable target are deleted.

" + "documentation":"

Creates or updates a scaling policy for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you have registered the resource as a scalable target.

Multiple scaling policies can be in force at the same time for the same scalable target. You can have one or more target tracking scaling policies, one or more step scaling policies, or both. However, there is a chance that multiple policies could conflict, instructing the scalable target to scale out or in at the same time. Application Auto Scaling gives precedence to the policy that provides the largest capacity for both scale out and scale in. For example, if one policy increases capacity by 3, another policy increases capacity by 200 percent, and the current capacity is 10, Application Auto Scaling uses the policy with the highest calculated capacity (200% of 10 = 20) and scales out to 30.

We recommend caution, however, when using target tracking scaling policies with step scaling policies because conflicts between these policies can cause undesirable behavior. For example, if the step scaling policy initiates a scale-in activity before the target tracking policy is ready to scale in, the scale-in activity will not be blocked. After the scale-in activity completes, the target tracking policy could instruct the scalable target to scale out again.

For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide.

If a scalable target is deregistered, the scalable target is no longer available to use scaling policies. Any scaling policies that were specified for the scalable target are deleted.

" }, "PutScheduledAction":{ "name":"PutScheduledAction", @@ -159,7 +172,7 @@ {"shape":"ConcurrentUpdateException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates or updates a scheduled action for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you have registered the resource as a scalable target.

When start and end times are specified with a recurring schedule using a cron expression or rates, they form the boundaries for when the recurring action starts and stops.

To update a scheduled action, specify the parameters that you want to change. If you don't specify start and end times, the old values are deleted.

For more information, see Scheduled scaling in the Application Auto Scaling User Guide.

If a scalable target is deregistered, the scalable target is no longer available to run scheduled actions. Any scheduled actions that were specified for the scalable target are deleted.

" + "documentation":"

Creates or updates a scheduled action for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you have registered the resource as a scalable target.

When you specify start and end times with a recurring schedule using a cron expression or rates, they form the boundaries for when the recurring action starts and stops.

To update a scheduled action, specify the parameters that you want to change. If you don't specify start and end times, the old values are deleted.

For more information, see Scheduled scaling in the Application Auto Scaling User Guide.

If a scalable target is deregistered, the scalable target is no longer available to run scheduled actions. Any scheduled actions that were specified for the scalable target are deleted.

" }, "RegisterScalableTarget":{ "name":"RegisterScalableTarget", @@ -175,7 +188,36 @@ {"shape":"ConcurrentUpdateException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Registers or updates a scalable target, the resource that you want to scale.

Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace, which represents some capacity dimension of the underlying service.

When you register a new scalable target, you must specify values for the minimum and maximum capacity. If the specified resource is not active in the target service, this operation does not change the resource's current capacity. Otherwise, it changes the resource's current capacity to a value that is inside of this range.

If you choose to add a scaling policy, current capacity is adjustable within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of the minimum and maximum range.

After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use DescribeScalableTargets. You can also view the scaling policies for a service namespace by using DescribeScalableTargets. If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget.

To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request.

If you call the RegisterScalableTarget API to update an existing scalable target, Application Auto Scaling retrieves the current capacity of the resource. If it is below the minimum capacity or above the maximum capacity, Application Auto Scaling adjusts the capacity of the scalable target to place it within these bounds, even if you don't include the MinCapacity or MaxCapacity request parameters.

" + "documentation":"

Registers or updates a scalable target, which is the resource that you want to scale.

Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace, which represents some capacity dimension of the underlying service.

When you register a new scalable target, you must specify values for the minimum and maximum capacity. If the specified resource is not active in the target service, this operation does not change the resource's current capacity. Otherwise, it changes the resource's current capacity to a value that is inside of this range.

If you add a scaling policy, current capacity is adjustable within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of the minimum and maximum range.

After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use DescribeScalableTargets. You can also view the scaling policies for a service namespace by using DescribeScalableTargets. If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget.

To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request.

If you call the RegisterScalableTarget API operation to create a scalable target, there might be a brief delay until the operation achieves eventual consistency. You might become aware of this brief delay if you get unexpected errors when performing sequential operations. The typical strategy is to retry the request, and some Amazon Web Services SDKs include automatic backoff and retry logic.

If you call the RegisterScalableTarget API operation to update an existing scalable target, Application Auto Scaling retrieves the current capacity of the resource. If it's below the minimum capacity or above the maximum capacity, Application Auto Scaling adjusts the capacity of the scalable target to place it within these bounds, even if you don't include the MinCapacity or MaxCapacity request parameters.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Adds or edits tags on an Application Auto Scaling scalable target.

Each tag consists of a tag key and a tag value, which are both case-sensitive strings. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value.

You can use this operation to tag an Application Auto Scaling scalable target, but you cannot tag a scaling policy or scheduled action.

You can also add tags to an Application Auto Scaling scalable target while creating it (RegisterScalableTarget).

For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

Use tags to control access to a scalable target. For more information, see Tagging support for Application Auto Scaling in the Application Auto Scaling User Guide.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes tags from an Application Auto Scaling scalable target. To delete a tag, specify the tag key and the Application Auto Scaling scalable target.

" } }, "shapes":{ @@ -209,6 +251,12 @@ "type":"list", "member":{"shape":"Alarm"} }, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^arn:.+:application-autoscaling:.+:[0-9]+:scalable-target\\/[a-zA-Z0-9-]+$" + }, "ConcurrentUpdateException":{ "type":"structure", "members":{ @@ -220,15 +268,10 @@ "Cooldown":{"type":"integer"}, "CustomizedMetricSpecification":{ "type":"structure", - "required":[ - "MetricName", - "Namespace", - "Statistic" - ], "members":{ "MetricName":{ "shape":"MetricName", - "documentation":"

The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.

" + "documentation":"

The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that's returned by a call to ListMetrics.

" }, "Namespace":{ "shape":"MetricNamespace", @@ -245,9 +288,13 @@ "Unit":{ "shape":"MetricUnit", "documentation":"

The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.

" + }, + "Metrics":{ + "shape":"TargetTrackingMetricDataQueries", + "documentation":"

The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions.

" } }, - "documentation":"

Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Application Auto Scaling.

For information about the available metrics for a service, see Amazon Web Services services that publish CloudWatch metrics in the Amazon CloudWatch User Guide.

To create your customized metric specification:

  • Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see Publish custom metrics in the Amazon CloudWatch User Guide.

  • Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases, and increase when capacity decreases.

For an example of how creating new metrics can be useful, see Scaling based on Amazon SQS in the Amazon EC2 Auto Scaling User Guide. This topic mentions Auto Scaling groups, but the same scenario for Amazon SQS can apply to the target tracking scaling policies that you create for a Spot Fleet by using the Application Auto Scaling API.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

" + "documentation":"

Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Application Auto Scaling.

For information about the available metrics for a service, see Amazon Web Services services that publish CloudWatch metrics in the Amazon CloudWatch User Guide.

To create your customized metric specification:

  • Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see Publish custom metrics in the Amazon CloudWatch User Guide.

  • Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases, and increase when capacity decreases.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

" }, "DeleteScalingPolicyRequest":{ "type":"structure", @@ -510,6 +557,13 @@ }, "DisableScaleIn":{"type":"boolean"}, "ErrorMessage":{"type":"string"}, + "ExceptionMessage":{"type":"string"}, + "Expression":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, "FailedResourceAccessException":{ "type":"structure", "members":{ @@ -518,6 +572,12 @@ "documentation":"

Failed access to resources caused an exception. This exception is thrown when Application Auto Scaling is unable to retrieve the alarms associated with a scaling policy due to a client error, for example, if the role ARN specified for a scalable target does not have permission to call the CloudWatch DescribeAlarms on your behalf.

", "exception":true }, + "Id":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, "IncludeNotScaledActivities":{"type":"boolean"}, "InternalServiceException":{ "type":"structure", @@ -543,6 +603,25 @@ "documentation":"

A per-account resource limit is exceeded. For more information, see Application Auto Scaling service quotas.

", "exception":true }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

Specify the ARN of the scalable target.

For example: arn:aws:application-autoscaling:us-east-1:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123

To get the ARN for a scalable target, use DescribeScalableTargets.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagMap", + "documentation":"

A list of tags. Each tag consists of a tag key and a tag value.

" + } + } + }, "MaxResults":{"type":"integer"}, "MetricAggregationType":{ "type":"string", @@ -811,7 +890,7 @@ }, "MaxCapacity":{ "shape":"ResourceCapacity", - "documentation":"

The maximum value that you plan to scale out to. When a scaling policy is in effect, Application Auto Scaling can scale out (expand) as needed to the maximum capacity limit in response to changing demand. This property is required when registering a new scalable target.

Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see Service endpoints and quotas in the Amazon Web Services General Reference.

" + "documentation":"

The maximum value that you plan to scale out to. When a scaling policy is in effect, Application Auto Scaling can scale out (expand) as needed to the maximum capacity limit in response to changing demand. This property is required when registering a new scalable target.

Although you can specify a large maximum capacity, note that service quotas might impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see Service endpoints and quotas in the Amazon Web Services General Reference.

" }, "RoleARN":{ "shape":"ResourceIdMaxLen1600", @@ -820,12 +899,20 @@ "SuspendedState":{ "shape":"SuspendedState", "documentation":"

An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling. Setting the value of an attribute to true suspends the specified scaling activities. Setting it to false (default) resumes the specified scaling activities.

Suspension Outcomes

  • For DynamicScalingInSuspended, while a suspension is in effect, all scale-in activities that are triggered by a scaling policy are suspended.

  • For DynamicScalingOutSuspended, while a suspension is in effect, all scale-out activities that are triggered by a scaling policy are suspended.

  • For ScheduledScalingSuspended, while a suspension is in effect, all scaling activities that involve scheduled actions are suspended.

For more information, see Suspending and resuming scaling in the Application Auto Scaling User Guide.

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

Assigns one or more tags to the scalable target. Use this parameter to tag the scalable target when it is created. To tag an existing scalable target, use the TagResource operation.

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required. You cannot have more than one tag on a scalable target with the same tag key.

Use tags to control access to a scalable target. For more information, see Tagging support for Application Auto Scaling in the Application Auto Scaling User Guide.

" } } }, "RegisterScalableTargetResponse":{ "type":"structure", "members":{ + "ScalableTargetARN":{ + "shape":"XmlString", + "documentation":"

The ARN of the scalable target.

" + } } }, "ResourceCapacity":{"type":"integer"}, @@ -849,6 +936,19 @@ "max":1023, "min":1 }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "ResourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the Application Auto Scaling resource. This value is an Amazon Resource Name (ARN).

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

The specified resource doesn't exist.

", + "exception":true + }, + "ReturnData":{"type":"boolean"}, "ScalableDimension":{ "type":"string", "enum":[ @@ -914,7 +1014,14 @@ "shape":"TimestampType", "documentation":"

The Unix timestamp for when the scalable target was created.

" }, - "SuspendedState":{"shape":"SuspendedState"} + "SuspendedState":{ + "shape":"SuspendedState", + "documentation":"

Specifies whether the scaling activities for a scalable target are in a suspended state.

" + }, + "ScalableTargetARN":{ + "shape":"XmlString", + "documentation":"

The ARN of the scalable target.

" + } }, "documentation":"

Represents a scalable target.

" }, @@ -1169,18 +1276,18 @@ "members":{ "MetricIntervalLowerBound":{ "shape":"MetricScale", - "documentation":"

The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.

" + "documentation":"

The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it's exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.

" }, "MetricIntervalUpperBound":{ "shape":"MetricScale", - "documentation":"

The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.

The upper bound must be greater than the lower bound.

" + "documentation":"

The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it's inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.

The upper bound must be greater than the lower bound.

" }, "ScalingAdjustment":{ "shape":"ScalingAdjustment", "documentation":"

The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.

" } }, - "documentation":"

Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.

For the following examples, suppose that you have an alarm with a breach threshold of 50:

  • To trigger the adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10.

  • To trigger the adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0.

There are a few rules for the step adjustments for your step policy:

  • The ranges of your step adjustments can't overlap or have a gap.

  • At most one step adjustment can have a null lower bound. If one step adjustment has a negative lower bound, then there must be a step adjustment with a null lower bound.

  • At most one step adjustment can have a null upper bound. If one step adjustment has a positive upper bound, then there must be a step adjustment with a null upper bound.

  • The upper and lower bound can't be null in the same step adjustment.

" + "documentation":"

Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.

For the following examples, suppose that you have an alarm with a breach threshold of 50:

  • To initiate the adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10.

  • To initiate the adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0.

There are a few rules for the step adjustments for your step policy:

  • The ranges of your step adjustments can't overlap or have a gap.

  • At most one step adjustment can have a null lower bound. If one step adjustment has a negative lower bound, then there must be a step adjustment with a null lower bound.

  • At most one step adjustment can have a null upper bound. If one step adjustment has a positive upper bound, then there must be a step adjustment with a null upper bound.

  • The upper and lower bound can't be null in the same step adjustment.

" }, "StepAdjustments":{ "type":"list", @@ -1230,6 +1337,172 @@ }, "documentation":"

Specifies whether the scaling activities for a scalable target are in a suspended state.

" }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "Tags" + ], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

Identifies the Application Auto Scaling scalable target that you want to apply tags to.

For example: arn:aws:application-autoscaling:us-east-1:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123

To get the ARN for a scalable target, use DescribeScalableTargets.

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

The tags assigned to the resource. A tag is a label that you assign to an AWS resource.

Each tag consists of a tag key and a tag value.

You cannot have more than one tag on an Application Auto Scaling scalable target with the same tag key. If you specify an existing tag key with a different tag value, Application Auto Scaling replaces the current tag value with the specified one.

For information about the rules that apply to tag keys and tag values, see User-defined tag restrictions in the Amazon Web Services Billing and Cost Management User Guide.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TargetTrackingMetric":{ + "type":"structure", + "members":{ + "Dimensions":{ + "shape":"TargetTrackingMetricDimensions", + "documentation":"

The dimensions for the metric. For the list of available dimensions, see the Amazon Web Services documentation available from the table in Amazon Web Services services that publish CloudWatch metrics in the Amazon CloudWatch User Guide.

Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.

" + }, + "MetricName":{ + "shape":"TargetTrackingMetricName", + "documentation":"

The name of the metric.

" + }, + "Namespace":{ + "shape":"TargetTrackingMetricNamespace", + "documentation":"

The namespace of the metric. For more information, see the table in Amazon Web Services services that publish CloudWatch metrics in the Amazon CloudWatch User Guide.

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

Represents a specific metric.

Metric is a property of the TargetTrackingMetricStat object.

" + }, + "TargetTrackingMetricDataQueries":{ + "type":"list", + "member":{"shape":"TargetTrackingMetricDataQuery"} + }, + "TargetTrackingMetricDataQuery":{ + "type":"structure", + "required":["Id"], + "members":{ + "Expression":{ + "shape":"Expression", + "documentation":"

The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the Id of the other metrics to refer to those metrics, and can also use the Id of other expressions to use the result of those expressions.

Conditional: Within each TargetTrackingMetricDataQuery object, you must specify either Expression or MetricStat, but not both.

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

A short name that identifies the object's results in the response. This name must be unique among all MetricDataQuery objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.

" + }, + "Label":{ + "shape":"XmlString", + "documentation":"

A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.

" + }, + "MetricStat":{ + "shape":"TargetTrackingMetricStat", + "documentation":"

Information about the metric data to return.

Conditional: Within each MetricDataQuery object, you must specify either Expression or MetricStat, but not both.

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

Indicates whether to return the timestamps and raw data values of this metric.

If you use any math expressions, specify true for this value for only the final math expression that the metric specification is based on. You must specify false for ReturnData for all the other metrics and expressions used in the metric specification.

If you are only retrieving metrics and not performing any math expressions, do not specify anything for ReturnData. This sets it to its default (true).

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

The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.

For more information and examples, see Create a target tracking scaling policy for Application Auto Scaling using metric math in the Application Auto Scaling User Guide.

" + }, + "TargetTrackingMetricDimension":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{ + "shape":"TargetTrackingMetricDimensionName", + "documentation":"

The name of the dimension.

" + }, + "Value":{ + "shape":"TargetTrackingMetricDimensionValue", + "documentation":"

The value of the dimension.

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

Describes the dimension of a metric.

" + }, + "TargetTrackingMetricDimensionName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "TargetTrackingMetricDimensionValue":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "TargetTrackingMetricDimensions":{ + "type":"list", + "member":{"shape":"TargetTrackingMetricDimension"} + }, + "TargetTrackingMetricName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "TargetTrackingMetricNamespace":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "TargetTrackingMetricStat":{ + "type":"structure", + "required":[ + "Metric", + "Stat" + ], + "members":{ + "Metric":{ + "shape":"TargetTrackingMetric", + "documentation":"

The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.

" + }, + "Stat":{ + "shape":"XmlString", + "documentation":"

The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in Statistics in the Amazon CloudWatch User Guide.

The most commonly used metric for scaling is Average.

" + }, + "Unit":{ + "shape":"TargetTrackingMetricUnit", + "documentation":"

The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.

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

This structure defines the CloudWatch metric to return, along with the statistic, period, and unit.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

" + }, + "TargetTrackingMetricUnit":{ + "type":"string", + "max":1023, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, "TargetTrackingScalingPolicyConfiguration":{ "type":"structure", "required":["TargetValue"], @@ -1262,6 +1535,40 @@ "documentation":"

Represents a target tracking scaling policy configuration to use with Application Auto Scaling.

" }, "TimestampType":{"type":"timestamp"}, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "ResourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the Application Auto Scaling resource. This value is an Amazon Resource Name (ARN).

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

The request contains too many tags. Try the request again with fewer tags.

", + "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeys" + ], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

Identifies the Application Auto Scaling scalable target from which to remove tags.

For example: arn:aws:application-autoscaling:us-east-1:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123

To get the ARN for a scalable target, use DescribeScalableTargets.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

One or more tag keys. Specify only the tag keys, not the tag values.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "ValidationException":{ "type":"structure", "members":{ @@ -1275,5 +1582,5 @@ "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" } }, - "documentation":"

With Application Auto Scaling, you can configure automatic scaling for the following resources:

  • Amazon AppStream 2.0 fleets

  • Amazon Aurora Replicas

  • Amazon Comprehend document classification and entity recognizer endpoints

  • Amazon DynamoDB tables and global secondary indexes throughput capacity

  • Amazon ECS services

  • Amazon ElastiCache for Redis clusters (replication groups)

  • Amazon EMR clusters

  • Amazon Keyspaces (for Apache Cassandra) tables

  • Lambda function provisioned concurrency

  • Amazon Managed Streaming for Apache Kafka broker storage

  • Amazon Neptune clusters

  • Amazon SageMaker endpoint variants

  • Spot Fleets (Amazon EC2)

  • Custom resources provided by your own applications or services

API Summary

The Application Auto Scaling service API includes three key sets of actions:

  • Register and manage scalable targets - Register Amazon Web Services or custom resources as scalable targets (a resource that Application Auto Scaling can scale), set minimum and maximum capacity limits, and retrieve information on existing scalable targets.

  • Configure and manage automatic scaling - Define scaling policies to dynamically scale your resources in response to CloudWatch alarms, schedule one-time or recurring scaling actions, and retrieve your recent scaling activity history.

  • Suspend and resume scaling - Temporarily suspend and later resume automatic scaling by calling the RegisterScalableTarget API action for any Application Auto Scaling scalable target. You can suspend and resume (individually or in combination) scale-out activities that are triggered by a scaling policy, scale-in activities that are triggered by a scaling policy, and scheduled scaling.

To learn more about Application Auto Scaling, including information about granting IAM users required permissions for Application Auto Scaling actions, see the Application Auto Scaling User Guide.

" + "documentation":"

With Application Auto Scaling, you can configure automatic scaling for the following resources:

  • Amazon AppStream 2.0 fleets

  • Amazon Aurora Replicas

  • Amazon Comprehend document classification and entity recognizer endpoints

  • Amazon DynamoDB tables and global secondary indexes throughput capacity

  • Amazon ECS services

  • Amazon ElastiCache for Redis clusters (replication groups)

  • Amazon EMR clusters

  • Amazon Keyspaces (for Apache Cassandra) tables

  • Lambda function provisioned concurrency

  • Amazon Managed Streaming for Apache Kafka broker storage

  • Amazon Neptune clusters

  • Amazon SageMaker endpoint variants

  • Spot Fleets (Amazon EC2)

  • Custom resources provided by your own applications or services

To learn more about Application Auto Scaling, see the Application Auto Scaling User Guide.

API Summary

The Application Auto Scaling service API includes three key sets of actions:

  • Register and manage scalable targets - Register Amazon Web Services or custom resources as scalable targets (a resource that Application Auto Scaling can scale), set minimum and maximum capacity limits, and retrieve information on existing scalable targets.

  • Configure and manage automatic scaling - Define scaling policies to dynamically scale your resources in response to CloudWatch alarms, schedule one-time or recurring scaling actions, and retrieve your recent scaling activity history.

  • Suspend and resume scaling - Temporarily suspend and later resume automatic scaling by calling the RegisterScalableTarget API action for any Application Auto Scaling scalable target. You can suspend and resume (individually or in combination) scale-out activities that are triggered by a scaling policy, scale-in activities that are triggered by a scaling policy, and scheduled scaling.

" } diff --git a/services/applicationcostprofiler/pom.xml b/services/applicationcostprofiler/pom.xml index 91b16374b63e..105d6c0a9556 100644 --- a/services/applicationcostprofiler/pom.xml +++ b/services/applicationcostprofiler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT applicationcostprofiler AWS Java SDK :: Services :: Application Cost Profiler diff --git a/services/applicationdiscovery/pom.xml b/services/applicationdiscovery/pom.xml index b888545834d9..f53351b12f31 100644 --- a/services/applicationdiscovery/pom.xml +++ b/services/applicationdiscovery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT applicationdiscovery AWS Java SDK :: Services :: AWS Application Discovery Service diff --git a/services/applicationinsights/pom.xml b/services/applicationinsights/pom.xml index 96d3db25e732..561c13572a01 100644 --- a/services/applicationinsights/pom.xml +++ b/services/applicationinsights/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT applicationinsights AWS Java SDK :: Services :: Application Insights diff --git a/services/appmesh/pom.xml b/services/appmesh/pom.xml index bf5f316af0a2..340da8997bb4 100644 --- a/services/appmesh/pom.xml +++ b/services/appmesh/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT appmesh AWS Java SDK :: Services :: App Mesh diff --git a/services/apprunner/pom.xml b/services/apprunner/pom.xml index 9621d9c10a55..15d424be5425 100644 --- a/services/apprunner/pom.xml +++ b/services/apprunner/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT apprunner AWS Java SDK :: Services :: App Runner diff --git a/services/apprunner/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/apprunner/src/main/resources/codegen-resources/endpoint-rule-set.json index b5e64a69ca4f..9d35edd948f4 100644 --- a/services/apprunner/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/apprunner/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apprunner-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apprunner-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://apprunner-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apprunner.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://apprunner-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://apprunner.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://apprunner.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://apprunner.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/apprunner/src/main/resources/codegen-resources/endpoint-tests.json b/services/apprunner/src/main/resources/codegen-resources/endpoint-tests.json index 07fe8077b2d7..830e2d3ef7f1 100644 --- a/services/apprunner/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/apprunner/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,267 +1,337 @@ { "testCases": [ { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.us-west-2.api.aws" + "url": "https://apprunner.ap-northeast-1.amazonaws.com" } }, "params": { - "Region": "us-west-2", - "UseFIPS": true, - "UseDualStack": true + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.us-west-2.amazonaws.com" + "url": "https://apprunner.eu-west-1.amazonaws.com" } }, "params": { - "Region": "us-west-2", - "UseFIPS": true, + "Region": "eu-west-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner.us-west-2.api.aws" + "url": "https://apprunner.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-west-2", + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner.us-west-2.amazonaws.com" + "url": "https://apprunner-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-west-2", + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.eu-west-1.api.aws" + "url": "https://apprunner-fips.us-east-2.amazonaws.com" } }, "params": { - "Region": "eu-west-1", + "Region": "us-east-2", "UseFIPS": true, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.eu-west-1.amazonaws.com" + "url": "https://apprunner.us-west-2.amazonaws.com" } }, "params": { - "Region": "eu-west-1", + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://apprunner.eu-west-1.api.aws" + "url": "https://apprunner-fips.us-east-1.api.aws" } }, "params": { - "Region": "eu-west-1", - "UseFIPS": false, + "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://apprunner.eu-west-1.amazonaws.com" + "url": "https://apprunner.us-east-1.api.aws" } }, "params": { - "Region": "eu-west-1", + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.ap-northeast-1.api.aws" + "url": "https://apprunner-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "ap-northeast-1", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.ap-northeast-1.amazonaws.com" + "url": "https://apprunner-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "ap-northeast-1", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://apprunner.ap-northeast-1.api.aws" + "url": "https://apprunner.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "ap-northeast-1", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner.ap-northeast-1.amazonaws.com" + "url": "https://apprunner.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "ap-northeast-1", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.us-east-1.api.aws" + "url": "https://apprunner-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-east-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.us-east-1.amazonaws.com" + "url": "https://apprunner-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://apprunner.us-east-1.api.aws" + "url": "https://apprunner.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-east-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner.us-east-1.amazonaws.com" + "url": "https://apprunner.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.us-east-2.api.aws" + "url": "https://apprunner-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-east-2", + "Region": "us-iso-east-1", "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner-fips.us-east-2.amazonaws.com" + "url": "https://apprunner.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-east-2", - "UseFIPS": true, + "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner.us-east-2.api.aws" + "url": "https://apprunner-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-2", + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://apprunner.us-east-2.amazonaws.com" + "url": "https://apprunner.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-2", + "Region": "us-isob-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -274,6 +344,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { @@ -297,6 +380,12 @@ "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/apprunner/src/main/resources/codegen-resources/service-2.json b/services/apprunner/src/main/resources/codegen-resources/service-2.json index 8095b3e3b8e7..b33c1b645a51 100644 --- a/services/apprunner/src/main/resources/codegen-resources/service-2.json +++ b/services/apprunner/src/main/resources/codegen-resources/service-2.json @@ -552,7 +552,6 @@ }, "ASConfigMaxSize":{ "type":"integer", - "max":25, "min":1 }, "ASConfigMinSize":{ @@ -897,9 +896,9 @@ }, "Cpu":{ "type":"string", - "max":6, - "min":4, - "pattern":"1024|2048|(1|2) vCPU" + "max":9, + "min":3, + "pattern":"256|512|1024|2048|4096|(0.25|0.5|1|2|4) vCPU" }, "CreateAutoScalingConfigurationRequest":{ "type":"structure", @@ -1998,9 +1997,9 @@ }, "Memory":{ "type":"string", - "max":4, - "min":4, - "pattern":"2048|3072|4096|(2|3|4) GB" + "max":6, + "min":3, + "pattern":"512|1024|2048|3072|4096|6144|8192|10240|12288|(0.5|1|2|3|4|6|8|10|12) GB" }, "NetworkConfiguration":{ "type":"structure", @@ -2153,7 +2152,8 @@ "CREATE_SERVICE", "PAUSE_SERVICE", "RESUME_SERVICE", - "DELETE_SERVICE" + "DELETE_SERVICE", + "UPDATE_SERVICE" ] }, "PauseServiceRequest":{ diff --git a/services/appstream/pom.xml b/services/appstream/pom.xml index f9f13966601b..34994133d580 100644 --- a/services/appstream/pom.xml +++ b/services/appstream/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT appstream AWS Java SDK :: Services :: Amazon AppStream diff --git a/services/appsync/pom.xml b/services/appsync/pom.xml index 2046ff524ee6..ed5c2789d053 100644 --- a/services/appsync/pom.xml +++ b/services/appsync/pom.xml @@ -21,7 +21,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT appsync diff --git a/services/arczonalshift/pom.xml b/services/arczonalshift/pom.xml index e22a77395536..55515a457842 100644 --- a/services/arczonalshift/pom.xml +++ b/services/arczonalshift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT arczonalshift AWS Java SDK :: Services :: ARC Zonal Shift diff --git a/services/athena/pom.xml b/services/athena/pom.xml index a5e2d30ce4a5..f02d0014f470 100644 --- a/services/athena/pom.xml +++ b/services/athena/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT athena AWS Java SDK :: Services :: Amazon Athena diff --git a/services/athena/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/athena/src/main/resources/codegen-resources/endpoint-rule-set.json index d29ded39c356..4bf6148f97e6 100644 --- a/services/athena/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/athena/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://athena-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://athena-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://athena-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://athena.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://athena-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://athena.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://athena.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://athena.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/athena/src/main/resources/codegen-resources/endpoint-tests.json b/services/athena/src/main/resources/codegen-resources/endpoint-tests.json index e3fee7bcecec..34b5f6f52b29 100644 --- a/services/athena/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/athena/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,772 +1,31 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-northeast-3.amazonaws.com" + "url": "https://athena.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-northeast-2.amazonaws.com" + "url": "https://athena.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", "UseDualStack": false } }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, { "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { @@ -775,628 +34,511 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena.me-south-1.amazonaws.com" - } - }, - "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.sa-east-1.amazonaws.com" + "url": "https://athena.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-east-1.api.aws" + "url": "https://athena.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-east-1.amazonaws.com" + "url": "https://athena.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseFIPS": false, - "Region": "ap-east-1", "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://athena-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.cn-north-1.amazonaws.com.cn" + "url": "https://athena.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", + "Region": "ap-southeast-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://athena.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.cn-north-1.amazonaws.com.cn" + "url": "https://athena.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseFIPS": false, - "Region": "cn-north-1", "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.us-gov-west-1.api.aws" + "url": "https://athena.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.us-gov-west-1.amazonaws.com" + "url": "https://athena.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", + "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.us-gov-west-1.api.aws" + "url": "https://athena.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.us-gov-west-1.amazonaws.com" + "url": "https://athena.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "Region": "us-gov-west-1", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.ap-southeast-1.api.aws" + "url": "https://athena.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.ap-southeast-1.amazonaws.com" + "url": "https://athena.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", + "Region": "eu-west-3", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-southeast-1.api.aws" + "url": "https://athena.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-southeast-1.amazonaws.com" + "url": "https://athena.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseFIPS": false, - "Region": "ap-southeast-1", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.ap-southeast-2.api.aws" + "url": "https://athena.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.ap-southeast-2.amazonaws.com" + "url": "https://athena-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-2", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-southeast-2.api.aws" + "url": "https://athena.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-southeast-2.amazonaws.com" + "url": "https://athena-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", + "Region": "us-east-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://athena.us-west-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://athena-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": true, - "Region": "us-iso-east-1", "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://athena.us-west-2.amazonaws.com" + } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.us-iso-east-1.c2s.ic.gov" + "url": "https://athena-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", + "Region": "us-west-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://athena-fips.ap-southeast-3.api.aws" + "url": "https://athena-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-3", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://athena-fips.ap-southeast-3.amazonaws.com" + "url": "https://athena.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-southeast-3.api.aws" + "url": "https://athena.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.ap-southeast-3.amazonaws.com" + "url": "https://athena.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "ap-southeast-3", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://athena-fips.us-east-1.api.aws" + "url": "https://athena-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.us-east-1.amazonaws.com" + "url": "https://athena-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://athena.us-east-1.api.aws" + "url": "https://athena.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.us-east-1.amazonaws.com" + "url": "https://athena.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.us-east-2.api.aws" + "url": "https://athena-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.us-east-2.amazonaws.com" + "url": "https://athena.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "us-east-2", "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://athena.us-east-2.api.aws" + "url": "https://athena-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "us-east-2", + "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://athena.us-east-2.amazonaws.com" + "url": "https://athena.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://athena-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1", "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://athena-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1", "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://athena.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://athena.cn-northwest-1.amazonaws.com.cn" + "url": "https://athena.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", "UseDualStack": false } }, @@ -1406,8 +548,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1419,8 +561,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1430,8 +572,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": true } }, @@ -1443,21 +585,34 @@ } }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1468,8 +623,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1480,11 +635,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/athena/src/main/resources/codegen-resources/service-2.json b/services/athena/src/main/resources/codegen-resources/service-2.json index aab66d2673d4..b9246e85c40d 100644 --- a/services/athena/src/main/resources/codegen-resources/service-2.json +++ b/services/athena/src/main/resources/codegen-resources/service-2.json @@ -125,7 +125,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets an authentication token and the URL at which the notebook can be accessed. During programmatic access, CreatePresignedNotebookUrl must be called every 10 minutes to refresh the authentication token.

" + "documentation":"

Gets an authentication token and the URL at which the notebook can be accessed. During programmatic access, CreatePresignedNotebookUrl must be called every 10 minutes to refresh the authentication token. For information about granting programmatic access, see Grant programmatic access.

" }, "CreateWorkGroup":{ "name":"CreateWorkGroup", @@ -139,7 +139,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Creates a workgroup with the specified name. Only one of Configurations or Configuration can be specified; Configurations for a workgroup with multi engine support (for example, an Apache Spark enabled workgroup) or Configuration for an Athena SQL workgroup.

" + "documentation":"

Creates a workgroup with the specified name. A workgroup can be an Apache Spark enabled workgroup or an Athena SQL workgroup.

" }, "DeleteDataCatalog":{ "name":"DeleteDataCatalog", @@ -258,7 +258,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Retrieves a pre-signed URL to a copy of the code that was executed for the calculation.

" + "documentation":"

Retrieves the unencrypted code that was executed for the calculation.

" }, "GetCalculationExecutionStatus":{ "name":"GetCalculationExecutionStatus", @@ -375,7 +375,7 @@ {"shape":"InvalidRequestException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Streams the results of a single query execution specified by QueryExecutionId from the Athena query results location in Amazon S3. For more information, see Query Results in the Amazon Athena User Guide. This request does not execute the query but returns results. Use StartQueryExecution to run a query.

To stream query results successfully, the IAM principal with permission to call GetQueryResults also must have permissions to the Amazon S3 GetObject action for the Athena query results location.

IAM principals with permission to the Amazon S3 GetObject action for the query results location are able to retrieve query results from Amazon S3 even if permission to the GetQueryResults action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied.

" + "documentation":"

Streams the results of a single query execution specified by QueryExecutionId from the Athena query results location in Amazon S3. For more information, see Working with query results, recent queries, and output files in the Amazon Athena User Guide. This request does not execute the query but returns results. Use StartQueryExecution to run a query.

To stream query results successfully, the IAM principal with permission to call GetQueryResults also must have permissions to the Amazon S3 GetObject action for the Athena query results location.

IAM principals with permission to the Amazon S3 GetObject action for the query results location are able to retrieve query results from Amazon S3 even if permission to the GetQueryResults action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied.

" }, "GetQueryRuntimeStatistics":{ "name":"GetQueryRuntimeStatistics", @@ -478,7 +478,7 @@ {"shape":"InvalidRequestException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Returns the supported DPU sizes for the supported application runtimes (for example, Jupyter 1.0).

" + "documentation":"

Returns the supported DPU sizes for the supported application runtimes (for example, Athena notebook version 1).

" }, "ListCalculationExecutions":{ "name":"ListCalculationExecutions", @@ -507,7 +507,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Lists the data catalogs in the current Amazon Web Services account.

" + "documentation":"

Lists the data catalogs in the current Amazon Web Services account.

In the Athena console, data catalogs are listed as \"data sources\" on the Data sources page under the Data source name column.

" }, "ListDatabases":{ "name":"ListDatabases", @@ -551,7 +551,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists, in descending order, the executors that have been submitted to a session. Newer executors are listed first; older executors are listed later. The result can be optionally filtered by state.

" + "documentation":"

Lists, in descending order, the executors that joined a session. Newer executors are listed first; older executors are listed later. The result can be optionally filtered by state.

" }, "ListNamedQueries":{ "name":"ListNamedQueries", @@ -697,7 +697,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Submits calculations for execution within a session. You can supply the code to run as an inline code block within the request or as an Amazon S3 URL.

" + "documentation":"

Submits calculations for execution within a session. You can supply the code to run as an inline code block within the request.

" }, "StartQueryExecution":{ "name":"StartQueryExecution", @@ -775,7 +775,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

" + "documentation":"

Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

" }, "TerminateSession":{ "name":"TerminateSession", @@ -893,7 +893,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Updates the workgroup with the specified name. The workgroup's name cannot be changed. Only one of ConfigurationsUpdates or ConfigurationUpdates can be specified; ConfigurationsUpdates for a workgroup with multi engine support (for example, an Apache Spark enabled workgroup) or ConfigurationUpdates for an Athena SQL workgroup.

" + "documentation":"

Updates the workgroup with the specified name. The workgroup's name cannot be changed. Only ConfigurationUpdates can be specified.

" } }, "shapes":{ @@ -923,7 +923,7 @@ "members":{ "ApplicationRuntimeId":{ "shape":"NameString", - "documentation":"

The name of the supported application runtime (for example, Jupyter 1.0).

" + "documentation":"

The name of the supported application runtime (for example, Athena notebook version 1).

" }, "SupportedDPUSizes":{ "shape":"SupportedDPUSizeList", @@ -1277,7 +1277,8 @@ }, "CoordinatorDpuSize":{ "type":"integer", - "max":5000, + "box":true, + "max":1, "min":1 }, "CreateDataCatalogInput":{ @@ -1461,7 +1462,7 @@ }, "Configuration":{ "shape":"WorkGroupConfiguration", - "documentation":"

Contains configuration information for creating an Athena SQL workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" + "documentation":"

Contains configuration information for creating an Athena SQL workgroup or Spark enabled Athena workgroup. Athena SQL workgroup configuration includes the location in Amazon S3 where query and calculation results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "Description":{ "shape":"WorkGroupDescriptionString", @@ -1513,7 +1514,7 @@ "documentation":"

Specifies the Lambda function or functions to use for the data catalog. This is a mapping whose values depend on the catalog type.

  • For the HIVE data catalog type, use the following syntax. The metadata-function parameter is required. The sdk-version parameter is optional and defaults to the currently supported version.

    metadata-function=lambda_arn, sdk-version=version_number

  • For the LAMBDA data catalog type, use one of the following sets of required parameters, but not both.

    • If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required.

      metadata-function=lambda_arn, record-function=lambda_arn

    • If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function.

      function=lambda_arn

  • The GLUE type takes a catalog ID parameter and is required. The catalog_id is the account ID of the Amazon Web Services account to which the Glue catalog belongs.

    catalog-id=catalog_id

    • The GLUE data catalog type also applies to the default AwsDataCatalog that already exists in your account, of which you can have only one and cannot modify.

    • Queries that specify a Glue Data Catalog other than the default AwsDataCatalog must be run on Athena engine version 2.

" } }, - "documentation":"

Contains information about a data catalog in an Amazon Web Services account.

" + "documentation":"

Contains information about a data catalog in an Amazon Web Services account.

In the Athena console, data catalogs are listed as \"data sources\" on the Data sources page under the Data source name column.

" }, "DataCatalogSummary":{ "type":"structure", @@ -1582,7 +1583,8 @@ }, "DefaultExecutorDpuSize":{ "type":"integer", - "max":5000, + "box":true, + "max":1, "min":1 }, "DeleteDataCatalogInput":{ @@ -1663,7 +1665,7 @@ }, "RecursiveDeleteOption":{ "shape":"BoxedBoolean", - "documentation":"

The option to delete the workgroup and its contents even if the workgroup contains any named queries or query executions.

" + "documentation":"

The option to delete the workgroup and its contents even if the workgroup contains any named queries, query executions, or notebooks.

" } } }, @@ -1690,7 +1692,7 @@ "documentation":"

For SSE_KMS and CSE_KMS, this is the KMS key ARN or ID.

" } }, - "documentation":"

If query results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE_KMS or CSE_KMS) and key information.

" + "documentation":"

If query and calculation results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE_KMS or CSE_KMS) and key information.

" }, "EncryptionOption":{ "type":"string", @@ -1718,7 +1720,7 @@ }, "AdditionalConfigs":{ "shape":"ParametersMap", - "documentation":"

Contains additional notebook engine MAP<string, string> parameter mappings in the form of key-value pairs. To specify an Amazon S3 URI that the Jupyter server will download and serve, specify a value for the StartSessionRequest$NotebookVersion field, and then add a key named NotebookFileURI to AdditionalConfigs that has value of the Amazon S3 URI.

" + "documentation":"

Contains additional notebook engine MAP<string, string> parameter mappings in the form of key-value pairs. To specify an Athena notebook that the Jupyter server will download and serve, specify a value for the StartSessionRequest$NotebookVersion field, and then add a key named NotebookId to AdditionalConfigs that has the value of the Athena notebook ID.

" } }, "documentation":"

Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.

" @@ -1728,7 +1730,7 @@ "members":{ "SelectedEngineVersion":{ "shape":"NameString", - "documentation":"

The engine version requested by the user. Possible values are determined by the output of ListEngineVersions, including Auto. The default is Auto.

" + "documentation":"

The engine version requested by the user. Possible values are determined by the output of ListEngineVersions, including AUTO. The default is AUTO.

" }, "EffectiveEngineVersion":{ "shape":"NameString", @@ -1884,7 +1886,7 @@ "members":{ "CodeBlock":{ "shape":"CodeBlock", - "documentation":"

A pre-signed URL to the code that executed the calculation.

" + "documentation":"

The unencrypted code that was executed for the calculation.

" } } }, @@ -2301,7 +2303,7 @@ "members":{ "NotebookId":{ "shape":"NotebookId", - "documentation":"

The ID of the notebook to import.

" + "documentation":"

The ID assigned to the imported notebook.

" } } }, @@ -3131,7 +3133,7 @@ }, "ResultConfiguration":{ "shape":"ResultConfiguration", - "documentation":"

The location in Amazon S3 where query results were stored and the encryption option, if any, used for query results. These are known as \"client-side settings\". If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup.

" + "documentation":"

The location in Amazon S3 where query and calculation results are stored and the encryption option, if any, used for query results. These are known as \"client-side settings\". If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup.

" }, "ResultReuseConfiguration":{ "shape":"ResultReuseConfiguration", @@ -3160,6 +3162,10 @@ "ExecutionParameters":{ "shape":"ExecutionParameters", "documentation":"

A list of values for the parameters in a query. The values are applied sequentially to the parameters in the query in the order in which the parameters occur.

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

The kind of query statement that was run.

" } }, "documentation":"

Information about a single instance of a query execution.

" @@ -3422,11 +3428,11 @@ "members":{ "OutputLocation":{ "shape":"ResultOutputLocation", - "documentation":"

The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" + "documentation":"

The location in Amazon S3 where your query and calculation results are stored, such as s3://path/to/query/bucket/. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. For more information, see Working with query results, recent queries, and output files. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "EncryptionConfiguration":{ "shape":"EncryptionConfiguration", - "documentation":"

If query results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE_KMS or CSE_KMS) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

" + "documentation":"

If query and calculation results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE_KMS or CSE_KMS) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

" }, "ExpectedBucketOwner":{ "shape":"AwsAccountId", @@ -3437,14 +3443,14 @@ "documentation":"

Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query results. Currently the only supported canned ACL is BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the ACL configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. For more information, see WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

" } }, - "documentation":"

The location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. These are known as \"client-side settings\". If workgroup settings override client-side settings, then the query uses the workgroup settings.

" + "documentation":"

The location in Amazon S3 where query and calculation results are stored and the encryption option, if any, used for query and calculation results. These are known as \"client-side settings\". If workgroup settings override client-side settings, then the query uses the workgroup settings.

" }, "ResultConfigurationUpdates":{ "type":"structure", "members":{ "OutputLocation":{ "shape":"ResultOutputLocation", - "documentation":"

The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/. For more information, see Query Results If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. The \"workgroup settings override\" is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" + "documentation":"

The location in Amazon S3 where your query and calculation results are stored, such as s3://path/to/query/bucket/. For more information, see Working with query results, recent queries, and output files. If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. The \"workgroup settings override\" is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "RemoveOutputLocation":{ "shape":"BoxedBoolean", @@ -3452,7 +3458,7 @@ }, "EncryptionConfiguration":{ "shape":"EncryptionConfiguration", - "documentation":"

The encryption configuration for the query results.

" + "documentation":"

The encryption configuration for query and calculation results.

" }, "RemoveEncryptionConfiguration":{ "shape":"BoxedBoolean", @@ -3630,7 +3636,7 @@ "documentation":"

The data processing unit execution time for a session in milliseconds.

" } }, - "documentation":"

Contains statistics for a notebook session.

" + "documentation":"

Contains statistics for a session.

" }, "SessionStatus":{ "type":"structure", @@ -3660,7 +3666,7 @@ "documentation":"

The reason for the session state change (for example, canceled because the session was terminated).

" } }, - "documentation":"

Contains information about the status of a notebook session.

" + "documentation":"

Contains information about the status of a session.

" }, "SessionSummary":{ "type":"structure", @@ -3686,7 +3692,7 @@ "documentation":"

Contains information about the session status.

" } }, - "documentation":"

Contains summary information about a notebook session.

" + "documentation":"

Contains summary information about a session.

" }, "SessionsList":{ "type":"list", @@ -3800,7 +3806,7 @@ }, "NotebookVersion":{ "shape":"NameString", - "documentation":"

The notebook version. This value is required only when requesting that a notebook server be started for the session. The only valid notebook version is Jupyter1.0.

" + "documentation":"

The notebook version. This value is supplied automatically for notebook sessions in the Athena console and is not required for programmatic session access. The only valid notebook version is Athena notebook version 1. If you specify a value for NotebookVersion, you must also specify a value for NotebookId. See EngineConfiguration$AdditionalConfigs.

" }, "SessionIdleTimeoutInMinutes":{ "shape":"SessionIdleTimeoutInMinutes", @@ -3938,7 +3944,7 @@ "documentation":"

A tag value. The tag value length is from 0 to 256 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag values are case-sensitive.

" } }, - "documentation":"

A label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

" + "documentation":"

A label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

" }, "TagKey":{ "type":"string", @@ -4196,7 +4202,7 @@ }, "SessionId":{ "shape":"SessionId", - "documentation":"

The ID of the session in which the notebook will be updated.

" + "documentation":"

The active notebook session ID. Required if the notebook has an active session.

" }, "ClientRequestToken":{ "shape":"ClientRequestToken", @@ -4307,7 +4313,7 @@ }, "Configuration":{ "shape":"WorkGroupConfiguration", - "documentation":"

The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for query results; whether the Amazon CloudWatch Metrics are enabled for the workgroup; whether workgroup settings override client-side settings; and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" + "documentation":"

The configuration of the workgroup, which includes the location in Amazon S3 where query and calculation results are stored, the encryption configuration, if any, used for query and calculation results; whether the Amazon CloudWatch Metrics are enabled for the workgroup; whether workgroup settings override client-side settings; and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "Description":{ "shape":"WorkGroupDescriptionString", @@ -4325,7 +4331,7 @@ "members":{ "ResultConfiguration":{ "shape":"ResultConfiguration", - "documentation":"

The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results.

" + "documentation":"

The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation results are stored and the encryption option, if any, used for query and calculation results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena issues an error that no output location is provided. For more information, see Working with query results, recent queries, and output files.

" }, "EnforceWorkGroupConfiguration":{ "shape":"BoxedBoolean", @@ -4353,14 +4359,18 @@ }, "ExecutionRole":{ "shape":"RoleArn", - "documentation":"

Role used in a notebook session for accessing the user's resources.

" + "documentation":"

Role used in a session for accessing the user's resources.

" }, "CustomerContentEncryptionConfiguration":{ "shape":"CustomerContentEncryptionConfiguration", "documentation":"

Specifies the KMS key that is used to encrypt the user's data stores in Athena.

" + }, + "EnableMinimumEncryptionConfiguration":{ + "shape":"BoxedBoolean", + "documentation":"

Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries.

The EnforceWorkGroupConfiguration setting takes precedence over the EnableMinimumEncryptionConfiguration flag. This means that if EnforceWorkGroupConfiguration is true, the EnableMinimumEncryptionConfiguration flag is ignored, and the workgroup configuration for encryption is used.

" } }, - "documentation":"

The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup and whether workgroup settings override query settings, and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" + "documentation":"

The configuration of the workgroup, which includes the location in Amazon S3 where query and calculation results are stored, the encryption option, if any, used for query and calculation results, whether the Amazon CloudWatch Metrics are enabled for the workgroup and whether workgroup settings override query settings, and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "WorkGroupConfigurationUpdates":{ "type":"structure", @@ -4405,9 +4415,13 @@ "shape":"RoleArn", "documentation":"

Contains the ARN of the execution role for the workgroup

" }, - "CustomerContentEncryptionConfiguration":{"shape":"CustomerContentEncryptionConfiguration"} + "CustomerContentEncryptionConfiguration":{"shape":"CustomerContentEncryptionConfiguration"}, + "EnableMinimumEncryptionConfiguration":{ + "shape":"BoxedBoolean", + "documentation":"

Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries. This setting does not apply to Spark-enabled workgroups.

The EnforceWorkGroupConfiguration setting takes precedence over the EnableMinimumEncryptionConfiguration flag. This means that if EnforceWorkGroupConfiguration is true, the EnableMinimumEncryptionConfiguration flag is ignored, and the workgroup configuration for encryption is used.

" + } }, - "documentation":"

The configuration information that will be updated for this workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, whether the workgroup settings override the client-side settings, and the data usage limit for the amount of bytes scanned per query, if it is specified.

" + "documentation":"

The configuration information that will be updated for this workgroup, which includes the location in Amazon S3 where query and calculation results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, whether the workgroup settings override the client-side settings, and the data usage limit for the amount of bytes scanned per query, if it is specified.

" }, "WorkGroupDescriptionString":{ "type":"string", diff --git a/services/auditmanager/pom.xml b/services/auditmanager/pom.xml index ac7333860349..441e97bb15bc 100644 --- a/services/auditmanager/pom.xml +++ b/services/auditmanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT auditmanager AWS Java SDK :: Services :: Audit Manager diff --git a/services/auditmanager/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/auditmanager/src/main/resources/codegen-resources/endpoint-rule-set.json index f5ab20ed81aa..29247a7d2dd7 100644 --- a/services/auditmanager/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/auditmanager/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://auditmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://auditmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://auditmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://auditmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://auditmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://auditmanager.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://auditmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://auditmanager.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/auditmanager/src/main/resources/codegen-resources/endpoint-tests.json b/services/auditmanager/src/main/resources/codegen-resources/endpoint-tests.json index 7d9b8c8fbaee..7b3557950f12 100644 --- a/services/auditmanager/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/auditmanager/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,41 +1,15 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.ap-south-1.amazonaws.com" + "url": "https://auditmanager.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", "UseFIPS": false } }, @@ -47,47 +21,34 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.ca-central-1.amazonaws.com" + "url": "https://auditmanager.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.ca-central-1.api.aws" + "url": "https://auditmanager.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", + "Region": "ap-southeast-2", + "UseDualStack": false, "UseFIPS": false } }, @@ -99,47 +60,8 @@ } }, "params": { - "UseDualStack": false, "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.eu-central-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", "UseFIPS": false } }, @@ -151,481 +73,300 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.us-west-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.us-west-2.amazonaws.com" + "url": "https://auditmanager.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.us-west-2.amazonaws.com" + "url": "https://auditmanager.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseDualStack": false, - "Region": "us-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.eu-west-2.amazonaws.com" + "url": "https://auditmanager.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.eu-west-2.amazonaws.com" + "url": "https://auditmanager.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.eu-west-1.amazonaws.com" + "url": "https://auditmanager.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.eu-west-1.amazonaws.com" + "url": "https://auditmanager.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "eu-west-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.ap-northeast-1.api.aws" + "url": "https://auditmanager-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.ap-northeast-1.amazonaws.com" + "url": "https://auditmanager-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "ap-northeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://auditmanager.ap-northeast-1.api.aws" + "url": "https://auditmanager.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://auditmanager.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.ap-southeast-1.api.aws" + "url": "https://auditmanager-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.ap-southeast-1.amazonaws.com" + "url": "https://auditmanager-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://auditmanager.ap-southeast-1.api.aws" + "url": "https://auditmanager.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.ap-southeast-1.amazonaws.com" + "url": "https://auditmanager.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.ap-southeast-2.api.aws" + "url": "https://auditmanager-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.ap-southeast-2.amazonaws.com" + "url": "https://auditmanager-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://auditmanager.ap-southeast-2.api.aws" + "url": "https://auditmanager.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.ap-southeast-2.amazonaws.com" + "url": "https://auditmanager.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.us-east-1.amazonaws.com" + "url": "https://auditmanager-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.us-east-1.amazonaws.com" + "url": "https://auditmanager.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://auditmanager-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager-fips.us-east-2.amazonaws.com" + "url": "https://auditmanager-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.us-east-2.api.aws" + "url": "https://auditmanager.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", + "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://auditmanager.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -633,7 +374,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -644,8 +384,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -656,8 +396,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/auditmanager/src/main/resources/codegen-resources/service-2.json b/services/auditmanager/src/main/resources/codegen-resources/service-2.json index 3b07fb52baa2..7bef4e5f657c 100644 --- a/services/auditmanager/src/main/resources/codegen-resources/service-2.json +++ b/services/auditmanager/src/main/resources/codegen-resources/service-2.json @@ -905,7 +905,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Updates a share request for a custom framework in Audit Manager.

" }, @@ -955,7 +956,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Updates Audit Manager settings for the current user account.

" + "documentation":"

Updates Audit Manager settings for the current account.

" }, "ValidateAssessmentReportIntegrity":{ "name":"ValidateAssessmentReportIntegrity", @@ -1005,7 +1006,7 @@ "documentation":"

The name of the Amazon Web Service.

" } }, - "documentation":"

An Amazon Web Service such as Amazon S3 or CloudTrail.

" + "documentation":"

An Amazon Web Service such as Amazon S3 or CloudTrail.

For an example of how to find an Amazon Web Service name and how to define it in your assessment scope, see the following:

" }, "AWSServiceName":{ "type":"string", @@ -1960,7 +1961,7 @@ }, "createdBy":{ "shape":"IamArn", - "documentation":"

The IAM user or role that performed the action.

" + "documentation":"

The user or role that performed the action.

" } }, "documentation":"

The record of a change within Audit Manager. For example, this could be the status change of an assessment or the delegation of a control set.

" @@ -2033,11 +2034,11 @@ }, "createdBy":{ "shape":"CreatedBy", - "documentation":"

The IAM user or role that created the control.

" + "documentation":"

The user or role that created the control.

" }, "lastUpdatedBy":{ "shape":"LastUpdatedBy", - "documentation":"

The IAM user or role that most recently updated the control.

" + "documentation":"

The user or role that most recently updated the control.

" }, "tags":{ "shape":"TagMap", @@ -2642,7 +2643,7 @@ }, "createdBy":{ "shape":"CreatedBy", - "documentation":"

The IAM user or role that created the delegation.

" + "documentation":"

The user or role that created the delegation.

" } }, "documentation":"

The assignment of a control set to a delegate for review.

" @@ -2939,7 +2940,7 @@ }, "iamId":{ "shape":"IamArn", - "documentation":"

The unique identifier for the IAM user or role that's associated with the evidence.

" + "documentation":"

The unique identifier for the user or role that's associated with the evidence.

" }, "complianceCheck":{ "shape":"String", @@ -3109,11 +3110,11 @@ }, "createdBy":{ "shape":"CreatedBy", - "documentation":"

The IAM user or role that created the framework.

" + "documentation":"

The user or role that created the framework.

" }, "lastUpdatedBy":{ "shape":"LastUpdatedBy", - "documentation":"

The IAM user or role that most recently updated the framework.

" + "documentation":"

The user or role that most recently updated the framework.

" }, "tags":{ "shape":"TagMap", diff --git a/services/autoscaling/pom.xml b/services/autoscaling/pom.xml index fbc856d0dfc2..49c0cbfad3de 100644 --- a/services/autoscaling/pom.xml +++ b/services/autoscaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT autoscaling AWS Java SDK :: Services :: Auto Scaling diff --git a/services/autoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/autoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json index 2b28ede2cc1e..ca4fa9511416 100644 --- a/services/autoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/autoscaling/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://autoscaling.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://autoscaling.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://autoscaling.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/autoscaling/src/main/resources/codegen-resources/endpoint-tests.json b/services/autoscaling/src/main/resources/codegen-resources/endpoint-tests.json index 233daccc4fb5..3d302d349362 100644 --- a/services/autoscaling/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/autoscaling/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1711 +1,532 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.sa-east-1.amazonaws.com" + "url": "https://autoscaling.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-east-1.amazonaws.com" + "url": "https://autoscaling.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-east-1" + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-east-1.api.aws" + "url": "https://autoscaling.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-east-1.amazonaws.com" + "url": "https://autoscaling.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://autoscaling.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.cn-north-1.amazonaws.com.cn" + "url": "https://autoscaling.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://autoscaling.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.cn-north-1.amazonaws.com.cn" + "url": "https://autoscaling.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.us-gov-west-1.api.aws" + "url": "https://autoscaling.ap-southeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-gov-west-1.amazonaws.com" + "url": "https://autoscaling.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-gov-west-1.api.aws" + "url": "https://autoscaling.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-gov-west-1.amazonaws.com" + "url": "https://autoscaling.eu-north-1.amazonaws.com" } }, "params": { + "Region": "eu-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-1.api.aws" + "url": "https://autoscaling.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-1.amazonaws.com" + "url": "https://autoscaling.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-1" + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-1.api.aws" + "url": "https://autoscaling.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-1.amazonaws.com" + "url": "https://autoscaling.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-2.api.aws" + "url": "https://autoscaling.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-2.amazonaws.com" + "url": "https://autoscaling.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-2.api.aws" + "url": "https://autoscaling.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-2.amazonaws.com" + "url": "https://autoscaling.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://autoscaling.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { + "Region": "us-west-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-iso-east-1.c2s.ic.gov" + "url": "https://autoscaling.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-3.api.aws" + "url": "https://autoscaling-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-3.amazonaws.com" + "url": "https://autoscaling-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-3.api.aws" + "url": "https://autoscaling.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-3.amazonaws.com" + "url": "https://autoscaling.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-4.api.aws" + "url": "https://autoscaling.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-4" + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.ap-southeast-4.amazonaws.com" + "url": "https://autoscaling-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-4" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-4.api.aws" + "url": "https://autoscaling-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-4" + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://autoscaling.ap-southeast-4.amazonaws.com" + "url": "https://autoscaling.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-4" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://autoscaling-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.us-east-1.amazonaws.com" + "url": "https://autoscaling.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-east-1.api.aws" + "url": "https://autoscaling.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-east-1.amazonaws.com" + "url": "https://autoscaling-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.us-east-2.api.aws" + "url": "https://autoscaling.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.us-east-2.amazonaws.com" + "url": "https://autoscaling.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-east-2.api.aws" + "url": "https://autoscaling.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-east-2.amazonaws.com" + "url": "https://autoscaling.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://autoscaling-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://autoscaling-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://autoscaling.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.cn-northwest-1.amazonaws.com.cn" + "url": "https://autoscaling.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { @@ -1714,9 +535,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { @@ -1727,9 +548,9 @@ } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { @@ -1738,26 +559,27 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://autoscaling.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1766,7 +588,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1776,9 +597,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1788,11 +609,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/autoscaling/src/main/resources/codegen-resources/paginators-1.json b/services/autoscaling/src/main/resources/codegen-resources/paginators-1.json index 1b83859752d8..550ec09c7252 100644 --- a/services/autoscaling/src/main/resources/codegen-resources/paginators-1.json +++ b/services/autoscaling/src/main/resources/codegen-resources/paginators-1.json @@ -47,6 +47,11 @@ "limit_key": "MaxRecords", "output_token": "NextToken", "result_key": "Tags" + }, + "DescribeTrafficSources": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken" } } } \ No newline at end of file diff --git a/services/autoscaling/src/main/resources/codegen-resources/service-2.json b/services/autoscaling/src/main/resources/codegen-resources/service-2.json index dab458237969..0d626df5856e 100644 --- a/services/autoscaling/src/main/resources/codegen-resources/service-2.json +++ b/services/autoscaling/src/main/resources/codegen-resources/service-2.json @@ -39,7 +39,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

Attaches one or more target groups to the specified Auto Scaling group.

This operation is used with the following load balancer types:

  • Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS.

  • Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP.

  • Gateway Load Balancer - Operates at the network layer (layer 3).

To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.

For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

This API operation is superseded by AttachTrafficSources, which can attach multiple traffic sources types. We recommend using AttachTrafficSources to simplify how you manage traffic sources. However, we continue to support AttachLoadBalancerTargetGroups. You can use both the original AttachLoadBalancerTargetGroups API operation and AttachTrafficSources on the same Auto Scaling group.

Attaches one or more target groups to the specified Auto Scaling group.

This operation is used with the following load balancer types:

  • Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS.

  • Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP.

  • Gateway Load Balancer - Operates at the network layer (layer 3).

To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.

For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "AttachLoadBalancers":{ "name":"AttachLoadBalancers", @@ -56,7 +56,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead.

Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.

To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers API. To detach a load balancer from the Auto Scaling group, call the DetachLoadBalancers API.

This operation is additive and does not detach existing Classic Load Balancers or target groups from the Auto Scaling group.

For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

This API operation is superseded by AttachTrafficSources, which can attach multiple traffic sources types. We recommend using AttachTrafficSources to simplify how you manage traffic sources. However, we continue to support AttachLoadBalancers. You can use both the original AttachLoadBalancers API operation and AttachTrafficSources on the same Auto Scaling group.

Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.

To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers API. To detach a load balancer from the Auto Scaling group, call the DetachLoadBalancers API.

This operation is additive and does not detach existing Classic Load Balancers or target groups from the Auto Scaling group.

For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "AttachTrafficSources":{ "name":"AttachTrafficSources", @@ -73,7 +73,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.

Attaches one or more traffic sources to the specified Auto Scaling group.

To describe the traffic sources for an Auto Scaling group, call the DescribeTrafficSources API. To detach a traffic source from the Auto Scaling group, call the DetachTrafficSources API.

This operation is additive and does not detach existing traffic sources from the Auto Scaling group.

" + "documentation":"

Attaches one or more traffic sources to the specified Auto Scaling group.

You can use any of the following as traffic sources for an Auto Scaling group:

  • Application Load Balancer

  • Classic Load Balancer

  • Gateway Load Balancer

  • Network Load Balancer

  • VPC Lattice

This operation is additive and does not detach existing traffic sources from the Auto Scaling group.

After the operation completes, use the DescribeTrafficSources API to return details about the state of the attachments between traffic sources and your Auto Scaling group. To detach a traffic source from the Auto Scaling group, call the DetachTrafficSources API.

" }, "BatchDeleteScheduledAction":{ "name":"BatchDeleteScheduledAction", @@ -125,7 +125,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ActiveInstanceRefreshNotFoundFault"} ], - "documentation":"

Cancels an instance refresh operation in progress. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started.

This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

" + "documentation":"

Cancels an instance refresh or rollback that is in progress. If an instance refresh or rollback is not in progress, an ActiveInstanceRefreshNotFound error occurs.

This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

When you cancel an instance refresh, this does not roll back any changes that it made. Use the RollbackInstanceRefresh API to roll back instead.

" }, "CompleteLifecycleAction":{ "name":"CompleteLifecycleAction", @@ -393,7 +393,7 @@ {"shape":"InvalidNextToken"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Gets information about the instance refreshes for the specified Auto Scaling group.

This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

To help you determine the status of an instance refresh, this operation returns information about the instance refreshes you previously initiated, including their status, end time, the percentage of the instance refresh that is complete, and the number of instances remaining to update before the instance refresh is complete.

The following are the possible statuses:

  • Pending - The request was created, but the operation has not started.

  • InProgress - The operation is in progress.

  • Successful - The operation completed successfully.

  • Failed - The operation failed to complete. You can troubleshoot using the status reason and the scaling activities.

  • Cancelling - An ongoing operation is being cancelled. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started.

  • Cancelled - The operation is cancelled.

" + "documentation":"

Gets information about the instance refreshes for the specified Auto Scaling group.

This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

To help you determine the status of an instance refresh, Amazon EC2 Auto Scaling returns information about the instance refreshes you previously initiated, including their status, start time, end time, the percentage of the instance refresh that is complete, and the number of instances remaining to update before the instance refresh is complete. If a rollback is initiated while an instance refresh is in progress, Amazon EC2 Auto Scaling also returns information about the rollback of the instance refresh.

" }, "DescribeLaunchConfigurations":{ "name":"DescribeLaunchConfigurations", @@ -458,7 +458,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"InvalidNextToken"} ], - "documentation":"

Gets information about the Elastic Load Balancing target groups for the specified Auto Scaling group.

To determine the attachment status of the target group, use the State element in the response. When you attach a target group to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the target group is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the InService state.

Target groups also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your target group state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

You can use this operation to describe target groups that were attached by using AttachLoadBalancerTargetGroups, but not for target groups that were attached by using AttachTrafficSources.

" + "documentation":"

This API operation is superseded by DescribeTrafficSources, which can describe multiple traffic sources types. We recommend using DetachTrafficSources to simplify how you manage traffic sources. However, we continue to support DescribeLoadBalancerTargetGroups. You can use both the original DescribeLoadBalancerTargetGroups API operation and DescribeTrafficSources on the same Auto Scaling group.

Gets information about the Elastic Load Balancing target groups for the specified Auto Scaling group.

To determine the attachment status of the target group, use the State element in the response. When you attach a target group to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the target group is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the InService state.

Target groups also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your target group state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

You can use this operation to describe target groups that were attached by using AttachLoadBalancerTargetGroups, but not for target groups that were attached by using AttachTrafficSources.

" }, "DescribeLoadBalancers":{ "name":"DescribeLoadBalancers", @@ -475,7 +475,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"InvalidNextToken"} ], - "documentation":"

Gets information about the load balancers for the specified Auto Scaling group.

This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancer, use the DescribeLoadBalancerTargetGroups API instead.

To determine the attachment status of the load balancer, use the State element in the response. When you attach a load balancer to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the load balancer is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the InService state.

Load balancers also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your load balancer state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

This API operation is superseded by DescribeTrafficSources, which can describe multiple traffic sources types. We recommend using DescribeTrafficSources to simplify how you manage traffic sources. However, we continue to support DescribeLoadBalancers. You can use both the original DescribeLoadBalancers API operation and DescribeTrafficSources on the same Auto Scaling group.

Gets information about the load balancers for the specified Auto Scaling group.

This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DescribeLoadBalancerTargetGroups API instead.

To determine the attachment status of the load balancer, use the State element in the response. When you attach a load balancer to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the load balancer is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the InService state.

Load balancers also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your load balancer state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "DescribeMetricCollectionTypes":{ "name":"DescribeMetricCollectionTypes", @@ -623,7 +623,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"InvalidNextToken"} ], - "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.

Gets information about the traffic sources for the specified Auto Scaling group.

" + "documentation":"

Gets information about the traffic sources for the specified Auto Scaling group.

You can optionally provide a traffic source type. If you provide a traffic source type, then the results only include that traffic source type.

If you do not provide a traffic source type, then the results include all the traffic sources for the specified Auto Scaling group.

" }, "DescribeWarmPool":{ "name":"DescribeWarmPool", @@ -673,7 +673,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Detaches one or more target groups from the specified Auto Scaling group.

When you detach a target group, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the target group using the DescribeLoadBalancerTargetGroups API call. The instances remain running.

You can use this operation to detach target groups that were attached by using AttachLoadBalancerTargetGroups, but not for target groups that were attached by using AttachTrafficSources.

" + "documentation":"

This API operation is superseded by DetachTrafficSources, which can detach multiple traffic sources types. We recommend using DetachTrafficSources to simplify how you manage traffic sources. However, we continue to support DetachLoadBalancerTargetGroups. You can use both the original DetachLoadBalancerTargetGroups API operation and DetachTrafficSources on the same Auto Scaling group.

Detaches one or more target groups from the specified Auto Scaling group.

When you detach a target group, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the target group using the DescribeLoadBalancerTargetGroups API call. The instances remain running.

You can use this operation to detach target groups that were attached by using AttachLoadBalancerTargetGroups, but not for target groups that were attached by using AttachTrafficSources.

" }, "DetachLoadBalancers":{ "name":"DetachLoadBalancers", @@ -689,7 +689,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Detaches one or more Classic Load Balancers from the specified Auto Scaling group.

This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancer, use the DetachLoadBalancerTargetGroups API instead.

When you detach a load balancer, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the DescribeLoadBalancers API call. The instances remain running.

" + "documentation":"

This API operation is superseded by DetachTrafficSources, which can detach multiple traffic sources types. We recommend using DetachTrafficSources to simplify how you manage traffic sources. However, we continue to support DetachLoadBalancers. You can use both the original DetachLoadBalancers API operation and DetachTrafficSources on the same Auto Scaling group.

Detaches one or more Classic Load Balancers from the specified Auto Scaling group.

This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DetachLoadBalancerTargetGroups API instead.

When you detach a load balancer, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the DescribeLoadBalancers API call. The instances remain running.

" }, "DetachTrafficSources":{ "name":"DetachTrafficSources", @@ -705,7 +705,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.

Detaches one or more traffic sources from the specified Auto Scaling group.

" + "documentation":"

Detaches one or more traffic sources from the specified Auto Scaling group.

When you detach a taffic, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the traffic source using the DescribeTrafficSources API call. The instances continue to run.

" }, "DisableMetricsCollection":{ "name":"DisableMetricsCollection", @@ -901,6 +901,25 @@ ], "documentation":"

Resumes the specified suspended auto scaling processes, or all suspended process, for the specified Auto Scaling group.

For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide.

" }, + "RollbackInstanceRefresh":{ + "name":"RollbackInstanceRefresh", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RollbackInstanceRefreshType"}, + "output":{ + "shape":"RollbackInstanceRefreshAnswer", + "resultWrapper":"RollbackInstanceRefreshResult" + }, + "errors":[ + {"shape":"LimitExceededFault"}, + {"shape":"ResourceContentionFault"}, + {"shape":"ActiveInstanceRefreshNotFoundFault"}, + {"shape":"IrreversibleInstanceRefreshFault"} + ], + "documentation":"

Cancels an instance refresh that is in progress and rolls back any changes that it made. Amazon EC2 Auto Scaling replaces any instances that were replaced during the instance refresh. This restores your Auto Scaling group to the configuration that it was using before the start of the instance refresh.

This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

A rollback is not supported in the following situations:

  • There is no desired configuration specified for the instance refresh.

  • The Auto Scaling group has a launch template that uses an Amazon Web Services Systems Manager parameter instead of an AMI ID for the ImageId property.

  • The Auto Scaling group uses the launch template's $Latest or $Default version.

When you receive a successful response from this operation, Amazon EC2 Auto Scaling immediately begins replacing instances. You can check the status of this operation through the DescribeInstanceRefreshes API operation.

" + }, "SetDesiredCapacity":{ "name":"SetDesiredCapacity", "http":{ @@ -959,7 +978,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"InstanceRefreshInProgressFault"} ], - "documentation":"

Starts a new instance refresh operation. An instance refresh performs a rolling replacement of all or some instances in an Auto Scaling group. Each instance is terminated first and then replaced, which temporarily reduces the capacity available within your Auto Scaling group.

This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group. This feature is helpful, for example, when you have a new AMI or a new user data script. You just need to create a new launch template that specifies the new AMI or user data script. Then start an instance refresh to immediately begin the process of updating instances in the group.

If the call succeeds, it creates a new instance refresh request with a unique ID that you can use to track its progress. To query its status, call the DescribeInstanceRefreshes API. To describe the instance refreshes that have already run, call the DescribeInstanceRefreshes API. To cancel an instance refresh operation in progress, use the CancelInstanceRefresh API.

" + "documentation":"

Starts an instance refresh. During an instance refresh, Amazon EC2 Auto Scaling performs a rolling update of instances in an Auto Scaling group. Instances are terminated first and then replaced, which temporarily reduces the capacity available within your Auto Scaling group.

This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group. This feature is helpful, for example, when you have a new AMI or a new user data script. You just need to create a new launch template that specifies the new AMI or user data script. Then start an instance refresh to immediately begin the process of updating instances in the group.

If successful, the request's response contains a unique ID that you can use to track the progress of the instance refresh. To query its status, call the DescribeInstanceRefreshes API. To describe the instance refreshes that have already run, call the DescribeInstanceRefreshes API. To cancel an instance refresh that is in progress, use the CancelInstanceRefresh API.

An instance refresh might fail for several reasons, such as EC2 launch failures, misconfigured health checks, or not ignoring or allowing the termination of instances that are in Standby state or protected from scale in. You can monitor for failed EC2 launches using the scaling activities. To find the scaling activities, call the DescribeScalingActivities API.

If you enable auto rollback, your Auto Scaling group will be rolled back automatically when the instance refresh fails. You can enable this feature before starting an instance refresh by specifying the AutoRollback property in the instance refresh preferences. Otherwise, to roll back an instance refresh before it finishes, use the RollbackInstanceRefresh API.

" }, "SuspendProcesses":{ "name":"SuspendProcesses", @@ -1081,7 +1100,7 @@ "members":{ "message":{"shape":"XmlStringMaxLen255"} }, - "documentation":"

The request failed because an active instance refresh for the specified Auto Scaling group was not found.

", + "documentation":"

The request failed because an active instance refresh or rollback for the specified Auto Scaling group was not found.

", "error":{ "code":"ActiveInstanceRefreshNotFound", "httpStatusCode":400, @@ -1323,10 +1342,11 @@ }, "TrafficSources":{ "shape":"TrafficSources", - "documentation":"

The unique identifiers of one or more traffic sources. You can specify up to 10 traffic sources.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. Amazon EC2 Auto Scaling registers the running instances with the attached target groups. The target groups receive incoming traffic and route requests to one or more registered targets.

" + "documentation":"

The unique identifiers of one or more traffic sources. You can specify up to 10 traffic sources.

" } } }, + "AutoRollback":{"type":"boolean"}, "AutoScalingGroup":{ "type":"structure", "required":[ @@ -1394,7 +1414,7 @@ }, "HealthCheckType":{ "shape":"XmlStringMaxLen32", - "documentation":"

Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on.

The valid values are EC2 (default), ELB, and VPC_LATTICE. The VPC_LATTICE health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.

" + "documentation":"

A comma-separated value string of one or more health check types.

" }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", @@ -1474,7 +1494,7 @@ }, "TrafficSources":{ "shape":"TrafficSources", - "documentation":"

The unique identifiers of the traffic sources.

" + "documentation":"

The traffic sources associated with this Auto Scaling group.

" } }, "documentation":"

Describes an Auto Scaling group.

" @@ -1564,7 +1584,7 @@ }, "HealthStatus":{ "shape":"XmlStringMaxLen32", - "documentation":"

The last reported health status of this instance. \"Healthy\" means that the instance is healthy and should remain in service. \"Unhealthy\" means that the instance is unhealthy and Amazon EC2 Auto Scaling should terminate and replace it.

" + "documentation":"

The last reported health status of this instance. Healthy means that the instance is healthy and should remain in service. Unhealthy means that the instance is unhealthy and Amazon EC2 Auto Scaling should terminate and replace it.

" }, "LaunchConfigurationName":{ "shape":"XmlStringMaxLen255", @@ -1746,7 +1766,7 @@ "members":{ "InstanceRefreshId":{ "shape":"XmlStringMaxLen255", - "documentation":"

The instance refresh ID.

" + "documentation":"

The instance refresh ID associated with the request. This is the unique ID assigned to the instance refresh when it was started.

" } } }, @@ -1891,7 +1911,7 @@ }, "LoadBalancerNames":{ "shape":"LoadBalancerNames", - "documentation":"

A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancer, specify the TargetGroupARNs property instead.

" + "documentation":"

A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the TargetGroupARNs property instead.

" }, "TargetGroupARNs":{ "shape":"TargetGroupARNs", @@ -1899,7 +1919,7 @@ }, "HealthCheckType":{ "shape":"XmlStringMaxLen32", - "documentation":"

Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.

The valid values are EC2 (default), ELB, and VPC_LATTICE. The VPC_LATTICE health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.

" + "documentation":"

A comma-separated value string of one or more health check types.

The valid values are EC2, ELB, and VPC_LATTICE. EC2 is the default health check and cannot be disabled. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.

Only specify EC2 if you must clear a value that was previously set.

" }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", @@ -1951,11 +1971,11 @@ }, "DefaultInstanceWarmup":{ "shape":"DefaultInstanceWarmup", - "documentation":"

The amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. For more information, see Set the default instance warmup for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

To manage your warm-up settings at the group level, we recommend that you set the default instance warmup, even if its value is set to 0 seconds. This also optimizes the performance of scaling policies that scale continuously, such as target tracking and step scaling policies.

If you need to remove a value that you previously set, include the property but specify -1 for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a minimum value of 0.

Default: None

" + "documentation":"

The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the InService state.

During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after it replaces an instance before it moves on to replacing the next instance. Amazon EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics for new instances with existing instances in the Amazon CloudWatch metrics that are used for scaling, resulting in more reliable usage data. For more information, see Set the default instance warmup for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

To manage various warm-up settings at the group level, we recommend that you set the default instance warmup, even if it is set to 0 seconds. To remove a value that you previously set, include the property but specify -1 for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a value of 0 or other nominal value.

Default: None

" }, "TrafficSources":{ "shape":"TrafficSources", - "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview release and is subject to change. Do not use this parameter for production workloads. It is also subject to change.

The unique identifiers of one or more traffic sources.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. Amazon EC2 Auto Scaling registers the running instances with the attached target groups. The target groups receive incoming traffic and route requests to one or more registered targets.

" + "documentation":"

The list of traffic sources to attach to this Auto Scaling group. You can use any of the following as traffic sources for an Auto Scaling group: Classic Load Balancer, Application Load Balancer, Gateway Load Balancer, Network Load Balancer, and VPC Lattice.

" } } }, @@ -2531,10 +2551,7 @@ }, "DescribeTrafficSourcesRequest":{ "type":"structure", - "required":[ - "AutoScalingGroupName", - "TrafficSourceType" - ], + "required":["AutoScalingGroupName"], "members":{ "AutoScalingGroupName":{ "shape":"XmlStringMaxLen255", @@ -2542,7 +2559,7 @@ }, "TrafficSourceType":{ "shape":"XmlStringMaxLen255", - "documentation":"

The type of traffic source you are describing. Currently, the only valid value is vpc-lattice.

" + "documentation":"

The traffic source type that you want to describe.

The following lists the valid values:

  • elb if the traffic source is a Classic Load Balancer.

  • elbv2 if the traffic source is a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer.

  • vpc-lattice if the traffic source is VPC Lattice.

" }, "NextToken":{ "shape":"XmlString", @@ -2605,8 +2622,14 @@ "DesiredConfiguration":{ "type":"structure", "members":{ - "LaunchTemplate":{"shape":"LaunchTemplateSpecification"}, - "MixedInstancesPolicy":{"shape":"MixedInstancesPolicy"} + "LaunchTemplate":{ + "shape":"LaunchTemplateSpecification", + "documentation":"

Describes the launch template and the version of the launch template that Amazon EC2 Auto Scaling uses to launch Amazon EC2 instances. For more information about launch templates, see Launch templates in the Amazon EC2 Auto Scaling User Guide.

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

Use this structure to launch multiple instance types and On-Demand Instances and Spot Instances within a single Auto Scaling group.

A mixed instances policy contains information that Amazon EC2 Auto Scaling can use to launch instances and help optimize your costs. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide.

" + } }, "documentation":"

Describes the desired configuration for an instance refresh.

If you specify a desired configuration, you must specify either a LaunchTemplate or a MixedInstancesPolicy.

" }, @@ -2702,7 +2725,7 @@ }, "TrafficSources":{ "shape":"TrafficSources", - "documentation":"

The unique identifiers of one or more traffic sources you are detaching. You can specify up to 10 traffic sources.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. When you detach a target group, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the target group using the DescribeTrafficSources API call. The instances continue to run.

" + "documentation":"

The unique identifiers of one or more traffic sources. You can specify up to 10 traffic sources.

" } } }, @@ -3010,7 +3033,7 @@ }, "HealthStatus":{ "shape":"XmlStringMaxLen32", - "documentation":"

The last reported health status of the instance. \"Healthy\" means that the instance is healthy and should remain in service. \"Unhealthy\" means that the instance is unhealthy and that Amazon EC2 Auto Scaling should terminate and replace it.

" + "documentation":"

The last reported health status of the instance. Healthy means that the instance is healthy and should remain in service. Unhealthy means that the instance is unhealthy and that Amazon EC2 Auto Scaling should terminate and replace it.

" }, "LaunchConfigurationName":{ "shape":"XmlStringMaxLen255", @@ -3107,11 +3130,11 @@ }, "Status":{ "shape":"InstanceRefreshStatus", - "documentation":"

The current status for the instance refresh operation:

  • Pending - The request was created, but the operation has not started.

  • InProgress - The operation is in progress.

  • Successful - The operation completed successfully.

  • Failed - The operation failed to complete. You can troubleshoot using the status reason and the scaling activities.

  • Cancelling - An ongoing operation is being cancelled. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started.

  • Cancelled - The operation is cancelled.

" + "documentation":"

The current status for the instance refresh operation:

  • Pending - The request was created, but the instance refresh has not started.

  • InProgress - An instance refresh is in progress.

  • Successful - An instance refresh completed successfully.

  • Failed - An instance refresh failed to complete. You can troubleshoot using the status reason and the scaling activities.

  • Cancelling - An ongoing instance refresh is being cancelled.

  • Cancelled - The instance refresh is cancelled.

  • RollbackInProgress - An instance refresh is being rolled back.

  • RollbackFailed - The rollback failed to complete. You can troubleshoot using the status reason and the scaling activities.

  • RollbackSuccessful - The rollback completed successfully.

" }, "StatusReason":{ "shape":"XmlStringMaxLen1023", - "documentation":"

Provides more details about the current status of the instance refresh.

" + "documentation":"

The explanation for the specific status assigned to this operation.

" }, "StartTime":{ "shape":"TimestampType", @@ -3123,20 +3146,27 @@ }, "PercentageComplete":{ "shape":"IntPercent", - "documentation":"

The percentage of the instance refresh that is complete. For each instance replacement, Amazon EC2 Auto Scaling tracks the instance's health status and warm-up time. When the instance's health status changes to healthy and the specified warm-up time passes, the instance is considered updated and is added to the percentage complete.

" + "documentation":"

The percentage of the instance refresh that is complete. For each instance replacement, Amazon EC2 Auto Scaling tracks the instance's health status and warm-up time. When the instance's health status changes to healthy and the specified warm-up time passes, the instance is considered updated and is added to the percentage complete.

PercentageComplete does not include instances that are replaced during a rollback. This value gradually goes back down to zero during a rollback.

" }, "InstancesToUpdate":{ "shape":"InstancesToUpdate", - "documentation":"

The number of instances remaining to update before the instance refresh is complete.

" + "documentation":"

The number of instances remaining to update before the instance refresh is complete.

If you roll back the instance refresh, InstancesToUpdate shows you the number of instances that were not yet updated by the instance refresh. Therefore, these instances don't need to be replaced as part of the rollback.

" }, "ProgressDetails":{ "shape":"InstanceRefreshProgressDetails", "documentation":"

Additional progress details for an Auto Scaling group that has a warm pool.

" }, - "Preferences":{"shape":"RefreshPreferences"}, + "Preferences":{ + "shape":"RefreshPreferences", + "documentation":"

The preferences for an instance refresh.

" + }, "DesiredConfiguration":{ "shape":"DesiredConfiguration", - "documentation":"

Describes the specific update you want to deploy.

" + "documentation":"

Describes the desired configuration for the instance refresh.

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

The rollback details.

" } }, "documentation":"

Describes an instance refresh for an Auto Scaling group.

" @@ -3150,7 +3180,7 @@ "members":{ "message":{"shape":"XmlStringMaxLen255"} }, - "documentation":"

The request failed because an active instance refresh operation already exists for the specified Auto Scaling group.

", + "documentation":"

The request failed because an active instance refresh already exists for the specified Auto Scaling group.

", "error":{ "code":"InstanceRefreshInProgress", "httpStatusCode":400, @@ -3170,21 +3200,21 @@ "documentation":"

The number of instances remaining to update.

" } }, - "documentation":"

Reports the progress of an instance refresh on instances that are in the Auto Scaling group.

" + "documentation":"

Reports progress on replacing instances that are in the Auto Scaling group.

" }, "InstanceRefreshProgressDetails":{ "type":"structure", "members":{ "LivePoolProgress":{ "shape":"InstanceRefreshLivePoolProgress", - "documentation":"

Indicates the progress of an instance refresh on instances that are in the Auto Scaling group.

" + "documentation":"

Reports progress on replacing instances that are in the Auto Scaling group.

" }, "WarmPoolProgress":{ "shape":"InstanceRefreshWarmPoolProgress", - "documentation":"

Indicates the progress of an instance refresh on instances that are in the warm pool.

" + "documentation":"

Reports progress on replacing instances that are in the warm pool.

" } }, - "documentation":"

Reports the progress of an instance refresh on an Auto Scaling group that has a warm pool. This includes separate details for instances in the warm pool and instances in the Auto Scaling group (the live pool).

" + "documentation":"

Reports progress on replacing instances in an Auto Scaling group that has a warm pool. This includes separate details for instances in the warm pool and instances in the Auto Scaling group (the live pool).

" }, "InstanceRefreshStatus":{ "type":"string", @@ -3194,7 +3224,10 @@ "Successful", "Failed", "Cancelling", - "Cancelled" + "Cancelled", + "RollbackInProgress", + "RollbackFailed", + "RollbackSuccessful" ] }, "InstanceRefreshWarmPoolProgress":{ @@ -3209,7 +3242,7 @@ "documentation":"

The number of instances remaining to update.

" } }, - "documentation":"

Reports the progress of an instance refresh on instances that are in the warm pool.

" + "documentation":"

Reports progress on replacing instances that are in the warm pool.

" }, "InstanceRefreshes":{ "type":"list", @@ -3386,6 +3419,19 @@ }, "exception":true }, + "IrreversibleInstanceRefreshFault":{ + "type":"structure", + "members":{ + "message":{"shape":"XmlStringMaxLen255"} + }, + "documentation":"

The request failed because a desired configuration was not found or an incompatible launch template (uses a Systems Manager parameter instead of an AMI ID) or launch template version ($Latest or $Default) is present on the Auto Scaling group.

", + "error":{ + "code":"IrreversibleInstanceRefresh", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "LaunchConfiguration":{ "type":"structure", "required":[ @@ -4652,19 +4698,31 @@ }, "InstanceWarmup":{ "shape":"RefreshInstanceWarmup", - "documentation":"

Not needed if the default instance warmup is defined for the group.

The duration of the instance warmup, in seconds.

The default is to use the value for the default instance warmup defined for the group. If default instance warmup is null, then InstanceWarmup falls back to the value of the health check grace period.

" + "documentation":"

A time period, in seconds, during which an instance refresh waits before moving on to replacing the next instance after a new instance enters the InService state.

This property is not required for normal usage. Instead, use the DefaultInstanceWarmup property of the Auto Scaling group. The InstanceWarmup and DefaultInstanceWarmup properties work the same way. Only specify this property if you must override the DefaultInstanceWarmup property.

If you do not specify this property, the instance warmup by default is the value of the DefaultInstanceWarmup property, if defined (which is recommended in all cases), or the HealthCheckGracePeriod property otherwise.

" }, "CheckpointPercentages":{ "shape":"CheckpointPercentages", - "documentation":"

Threshold values for each checkpoint in ascending order. Each number must be unique. To replace all instances in the Auto Scaling group, the last number in the array must be 100.

For usage examples, see Adding checkpoints to an instance refresh in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

(Optional) Threshold values for each checkpoint in ascending order. Each number must be unique. To replace all instances in the Auto Scaling group, the last number in the array must be 100.

For usage examples, see Adding checkpoints to an instance refresh in the Amazon EC2 Auto Scaling User Guide.

" }, "CheckpointDelay":{ "shape":"CheckpointDelay", - "documentation":"

The amount of time, in seconds, to wait after a checkpoint before continuing. This property is optional, but if you specify a value for it, you must also specify a value for CheckpointPercentages. If you specify a value for CheckpointPercentages and not for CheckpointDelay, the CheckpointDelay defaults to 3600 (1 hour).

" + "documentation":"

(Optional) The amount of time, in seconds, to wait after a checkpoint before continuing. This property is optional, but if you specify a value for it, you must also specify a value for CheckpointPercentages. If you specify a value for CheckpointPercentages and not for CheckpointDelay, the CheckpointDelay defaults to 3600 (1 hour).

" }, "SkipMatching":{ "shape":"SkipMatching", - "documentation":"

A boolean value that indicates whether skip matching is enabled. If true, then Amazon EC2 Auto Scaling skips replacing instances that match the desired configuration. If no desired configuration is specified, then it skips replacing instances that have the same configuration that is already set on the group. The default is false.

" + "documentation":"

(Optional) Indicates whether skip matching is enabled. If enabled (true), then Amazon EC2 Auto Scaling skips replacing instances that match the desired configuration. If no desired configuration is specified, then it skips replacing instances that have the same launch template and instance types that the Auto Scaling group was using before the start of the instance refresh. The default is false.

For more information, see Use an instance refresh with skip matching in the Amazon EC2 Auto Scaling User Guide.

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

(Optional) Indicates whether to roll back the Auto Scaling group to its previous configuration if the instance refresh fails. The default is false.

A rollback is not supported in the following situations:

  • There is no desired configuration specified for the instance refresh.

  • The Auto Scaling group has a launch template that uses an Amazon Web Services Systems Manager parameter instead of an AMI ID for the ImageId property.

  • The Auto Scaling group uses the launch template's $Latest or $Default version.

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

Choose the behavior that you want Amazon EC2 Auto Scaling to use if instances protected from scale in are found.

The following lists the valid values:

Refresh

Amazon EC2 Auto Scaling replaces instances that are protected from scale in.

Ignore

Amazon EC2 Auto Scaling ignores instances that are protected from scale in and continues to replace instances that are not protected.

Wait (default)

Amazon EC2 Auto Scaling waits one hour for you to remove scale-in protection. Otherwise, the instance refresh will fail.

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

Choose the behavior that you want Amazon EC2 Auto Scaling to use if instances in Standby state are found.

The following lists the valid values:

Terminate

Amazon EC2 Auto Scaling terminates instances that are in Standby.

Ignore

Amazon EC2 Auto Scaling ignores instances that are in Standby and continues to replace instances that are in the InService state.

Wait (default)

Amazon EC2 Auto Scaling waits one hour for you to return the instances to service. Otherwise, the instance refresh will fail.

" } }, "documentation":"

Describes the preferences for an instance refresh.

" @@ -4713,6 +4771,58 @@ }, "ReturnData":{"type":"boolean"}, "ReuseOnScaleIn":{"type":"boolean"}, + "RollbackDetails":{ + "type":"structure", + "members":{ + "RollbackReason":{ + "shape":"XmlStringMaxLen1023", + "documentation":"

The reason for this instance refresh rollback (for example, whether a manual or automatic rollback was initiated).

" + }, + "RollbackStartTime":{ + "shape":"TimestampType", + "documentation":"

The date and time at which the rollback began.

" + }, + "PercentageCompleteOnRollback":{ + "shape":"IntPercent", + "documentation":"

Indicates the value of PercentageComplete at the time the rollback started.

" + }, + "InstancesToUpdateOnRollback":{ + "shape":"InstancesToUpdate", + "documentation":"

Indicates the value of InstancesToUpdate at the time the rollback started.

" + }, + "ProgressDetailsOnRollback":{ + "shape":"InstanceRefreshProgressDetails", + "documentation":"

Reports progress on replacing instances in an Auto Scaling group that has a warm pool. This includes separate details for instances in the warm pool and instances in the Auto Scaling group (the live pool).

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

Details about an instance refresh rollback.

" + }, + "RollbackInstanceRefreshAnswer":{ + "type":"structure", + "members":{ + "InstanceRefreshId":{ + "shape":"XmlStringMaxLen255", + "documentation":"

The instance refresh ID associated with the request. This is the unique ID assigned to the instance refresh when it was started.

" + } + } + }, + "RollbackInstanceRefreshType":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{ + "shape":"XmlStringMaxLen255", + "documentation":"

The name of the Auto Scaling group.

" + } + } + }, + "ScaleInProtectedInstances":{ + "type":"string", + "enum":[ + "Refresh", + "Ignore", + "Wait" + ] + }, "ScalingActivityInProgressFault":{ "type":"structure", "members":{ @@ -4743,7 +4853,8 @@ "WaitingForInstanceWarmup", "Successful", "Failed", - "Cancelled" + "Cancelled", + "WaitingForConnectionDraining" ] }, "ScalingPolicies":{ @@ -5044,12 +5155,20 @@ "max":255, "min":1 }, + "StandbyInstances":{ + "type":"string", + "enum":[ + "Terminate", + "Ignore", + "Wait" + ] + }, "StartInstanceRefreshAnswer":{ "type":"structure", "members":{ "InstanceRefreshId":{ "shape":"XmlStringMaxLen255", - "documentation":"

A unique ID for tracking the progress of the request.

" + "documentation":"

A unique ID for tracking the progress of the instance refresh.

" } } }, @@ -5063,15 +5182,15 @@ }, "Strategy":{ "shape":"RefreshStrategy", - "documentation":"

The strategy to use for the instance refresh. The only valid value is Rolling.

A rolling update helps you update your instances gradually. A rolling update can fail due to failed health checks or if instances are on standby or are protected from scale in. If the rolling update process fails, any instances that are replaced are not rolled back to their previous configuration.

" + "documentation":"

The strategy to use for the instance refresh. The only valid value is Rolling.

" }, "DesiredConfiguration":{ "shape":"DesiredConfiguration", - "documentation":"

The desired configuration. For example, the desired configuration can specify a new launch template or a new version of the current launch template.

Once the instance refresh succeeds, Amazon EC2 Auto Scaling updates the settings of the Auto Scaling group to reflect the new desired configuration.

When you specify a new launch template or a new version of the current launch template for your desired configuration, consider enabling the SkipMatching property in preferences. If it's enabled, Amazon EC2 Auto Scaling skips replacing instances that already use the specified launch template and version. This can help you reduce the number of replacements that are required to apply updates.

" + "documentation":"

The desired configuration. For example, the desired configuration can specify a new launch template or a new version of the current launch template.

Once the instance refresh succeeds, Amazon EC2 Auto Scaling updates the settings of the Auto Scaling group to reflect the new desired configuration.

When you specify a new launch template or a new version of the current launch template for your desired configuration, consider enabling the SkipMatching property in preferences. If it's enabled, Amazon EC2 Auto Scaling skips replacing instances that already use the specified launch template and instance types. This can help you reduce the number of replacements that are required to apply updates.

" }, "Preferences":{ "shape":"RefreshPreferences", - "documentation":"

Set of preferences associated with the instance refresh request. If not provided, the default values are used.

" + "documentation":"

Sets your preferences for the instance refresh so that it performs as expected when you start it. Includes the instance warmup time, the minimum healthy percentage, and the behaviors that you want Amazon EC2 Auto Scaling to use if instances that are in Standby state or protected from scale in are found. You can also choose to enable additional features, such as the following:

  • Auto rollback

  • Checkpoints

  • Skip matching

" } } }, @@ -5267,17 +5386,20 @@ "Stat" ], "members":{ - "Metric":{"shape":"Metric"}, + "Metric":{ + "shape":"Metric", + "documentation":"

The metric to use.

" + }, "Stat":{ "shape":"XmlStringMetricStat", - "documentation":"

The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in Statistics in the Amazon CloudWatch User Guide.

The most commonly used metrics for scaling is Average

" + "documentation":"

The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in Statistics in the Amazon CloudWatch User Guide.

The most commonly used metric for scaling is Average.

" }, "Unit":{ "shape":"MetricUnit", "documentation":"

The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.

" } }, - "documentation":"

This structure defines the CloudWatch metric to return, along with the statistic, period, and unit.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

" + "documentation":"

This structure defines the CloudWatch metric to return, along with the statistic and unit.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

" }, "TerminateInstanceInAutoScalingGroupType":{ "type":"structure", @@ -5317,24 +5439,39 @@ }, "TrafficSourceIdentifier":{ "type":"structure", + "required":["Identifier"], "members":{ "Identifier":{ "shape":"XmlStringMaxLen511", - "documentation":"

The unique identifier of the traffic source.

" + "documentation":"

Identifies the traffic source.

For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.

For example:

  • Application Load Balancer ARN: arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456

  • Classic Load Balancer name: my-classic-load-balancer

  • VPC Lattice ARN: arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456

To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing DescribeTargetGroups and DescribeLoadBalancers API operations.

To get the ARN of a target group for VPC Lattice, use the VPC Lattice GetTargetGroup API operation.

" + }, + "Type":{ + "shape":"XmlStringMaxLen511", + "documentation":"

Provides additional context for the value of Identifier.

The following lists the valid values:

  • elb if Identifier is the name of a Classic Load Balancer.

  • elbv2 if Identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

  • vpc-lattice if Identifier is the ARN of a VPC Lattice target group.

Required if the identifier is the name of a Classic Load Balancer.

" } }, - "documentation":"

Describes the identifier of a traffic source.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group.

" + "documentation":"

Identifying information for a traffic source.

" }, "TrafficSourceState":{ "type":"structure", "members":{ "TrafficSource":{ "shape":"XmlStringMaxLen511", - "documentation":"

The unique identifier of the traffic source. Currently, this is the Amazon Resource Name (ARN) for a VPC Lattice target group.

" + "documentation":"

This is replaced by Identifier.

", + "deprecated":true, + "deprecatedMessage":"TrafficSource has been replaced by Identifier" }, "State":{ "shape":"XmlStringMaxLen255", - "documentation":"

The following are the possible states for a VPC Lattice target group:

  • Adding - The Auto Scaling instances are being registered with the target group.

  • Added - All Auto Scaling instances are registered with the target group.

  • InService - At least one Auto Scaling instance passed the VPC_LATTICE health check.

  • Removing - The Auto Scaling instances are being deregistered from the target group. If connection draining is enabled, VPC Lattice waits for in-flight requests to complete before deregistering the instances.

  • Removed - All Auto Scaling instances are deregistered from the target group.

" + "documentation":"

Describes the current state of a traffic source.

The state values are as follows:

  • Adding - The Auto Scaling instances are being registered with the load balancer or target group.

  • Added - All Auto Scaling instances are registered with the load balancer or target group.

  • InService - For an Elastic Load Balancing load balancer or target group, at least one Auto Scaling instance passed an ELB health check. For VPC Lattice, at least one Auto Scaling instance passed an VPC_LATTICE health check.

  • Removing - The Auto Scaling instances are being deregistered from the load balancer or target group. If connection draining (deregistration delay) is enabled, Elastic Load Balancing or VPC Lattice waits for in-flight requests to complete before deregistering the instances.

  • Removed - All Auto Scaling instances are deregistered from the load balancer or target group.

" + }, + "Identifier":{ + "shape":"XmlStringMaxLen511", + "documentation":"

The unique identifier of the traffic source.

" + }, + "Type":{ + "shape":"XmlStringMaxLen511", + "documentation":"

Provides additional context for the value of Identifier.

The following lists the valid values:

  • elb if Identifier is the name of a Classic Load Balancer.

  • elbv2 if Identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.

  • vpc-lattice if Identifier is the ARN of a VPC Lattice target group.

Required if the identifier is the name of a Classic Load Balancer.

" } }, "documentation":"

Describes the state of a traffic source.

" @@ -5389,7 +5526,7 @@ }, "HealthCheckType":{ "shape":"XmlStringMaxLen32", - "documentation":"

Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on.

The valid values are EC2 (default), ELB, and VPC_LATTICE. The VPC_LATTICE health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.

" + "documentation":"

A comma-separated value string of one or more health check types.

The valid values are EC2, ELB, and VPC_LATTICE. EC2 is the default health check and cannot be disabled. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.

Only specify EC2 if you must clear a value that was previously set.

" }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", @@ -5433,7 +5570,7 @@ }, "DefaultInstanceWarmup":{ "shape":"DefaultInstanceWarmup", - "documentation":"

The amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. For more information, see Set the default instance warmup for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

To manage your warm-up settings at the group level, we recommend that you set the default instance warmup, even if its value is set to 0 seconds. This also optimizes the performance of scaling policies that scale continuously, such as target tracking and step scaling policies.

If you need to remove a value that you previously set, include the property but specify -1 for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a minimum value of 0.

" + "documentation":"

The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the InService state.

During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after it replaces an instance before it moves on to replacing the next instance. Amazon EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics for new instances with existing instances in the Amazon CloudWatch metrics that are used for scaling, resulting in more reliable usage data. For more information, see Set the default instance warmup for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

To manage various warm-up settings at the group level, we recommend that you set the default instance warmup, even if it is set to 0 seconds. To remove a value that you previously set, include the property but specify -1 for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a value of 0 or other nominal value.

" } } }, diff --git a/services/autoscalingplans/pom.xml b/services/autoscalingplans/pom.xml index 6e7e50ca035d..1b515187c23b 100644 --- a/services/autoscalingplans/pom.xml +++ b/services/autoscalingplans/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT autoscalingplans AWS Java SDK :: Services :: Auto Scaling Plans diff --git a/services/backup/pom.xml b/services/backup/pom.xml index f867195cf680..034c0b38f1d7 100644 --- a/services/backup/pom.xml +++ b/services/backup/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT backup AWS Java SDK :: Services :: Backup diff --git a/services/backupgateway/pom.xml b/services/backupgateway/pom.xml index da787fdbeedc..ec2dab8ac2c0 100644 --- a/services/backupgateway/pom.xml +++ b/services/backupgateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT backupgateway AWS Java SDK :: Services :: Backup Gateway diff --git a/services/backupstorage/pom.xml b/services/backupstorage/pom.xml index 78af3680b871..1f2c929da33a 100644 --- a/services/backupstorage/pom.xml +++ b/services/backupstorage/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT backupstorage AWS Java SDK :: Services :: Backup Storage diff --git a/services/batch/pom.xml b/services/batch/pom.xml index d07986326829..137683688735 100644 --- a/services/batch/pom.xml +++ b/services/batch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT batch AWS Java SDK :: Services :: AWS Batch diff --git a/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json index 0ec1bcdc496d..ee7361c8f757 100644 --- a/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/batch/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,224 +111,288 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://batch-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", "argv": [ - "aws", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://fips.batch.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://batch-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://batch.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://fips.batch.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://batch.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://batch-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://batch-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://batch.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://batch.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://batch.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://batch.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/batch/src/main/resources/codegen-resources/endpoint-tests.json b/services/batch/src/main/resources/codegen-resources/endpoint-tests.json index cf532b39f9e6..6deeaba31ae6 100644 --- a/services/batch/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/batch/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,250 +1,120 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.us-gov-east-1.api.aws" + "url": "https://batch.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.us-gov-east-1.amazonaws.com" + "url": "https://batch.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.me-central-1.api.aws" + "url": "https://batch.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.batch.me-central-1.amazonaws.com" + "url": "https://batch.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.me-central-1.api.aws" + "url": "https://batch.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.me-central-1.amazonaws.com" + "url": "https://batch.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.ca-central-1.api.aws" + "url": "https://batch.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.batch.ca-central-1.amazonaws.com" + "url": "https://batch.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.ca-central-1.api.aws" + "url": "https://batch.ap-southeast-3.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-3", + "UseFIPS": false } }, { @@ -255,48 +125,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": false, "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true + "UseFIPS": false } }, { @@ -307,1114 +138,495 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": false, "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://batch.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.batch.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://batch.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.sa-east-1.amazonaws.com" + "url": "https://batch.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.ap-east-1.api.aws" + "url": "https://batch.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.batch.ap-east-1.amazonaws.com" + "url": "https://batch.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.ap-east-1.api.aws" + "url": "https://batch.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.ap-east-1.amazonaws.com" + "url": "https://batch.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://batch.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.cn-north-1.amazonaws.com.cn" + "url": "https://batch.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://batch.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.cn-north-1.amazonaws.com.cn" + "url": "https://fips.batch.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.us-gov-west-1.api.aws" + "url": "https://batch.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.us-gov-west-1.amazonaws.com" + "url": "https://fips.batch.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.us-gov-west-1.api.aws" + "url": "https://batch.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.us-gov-west-1.amazonaws.com" + "url": "https://fips.batch.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.ap-southeast-1.api.aws" + "url": "https://batch.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.batch.ap-southeast-1.amazonaws.com" + "url": "https://fips.batch.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://batch.ap-southeast-1.api.aws" + "url": "https://batch-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://batch.ap-southeast-1.amazonaws.com" + "url": "https://batch.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.ap-southeast-2.api.aws" + "url": "https://batch.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.batch.ap-southeast-2.amazonaws.com" + "url": "https://batch.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://batch.ap-southeast-2.api.aws" + "url": "https://batch-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.ap-southeast-2.amazonaws.com" + "url": "https://batch-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://batch-fips.ap-southeast-3.api.aws" + "url": "https://batch.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.batch.ap-southeast-3.amazonaws.com" + "url": "https://batch.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.ap-southeast-3.api.aws" + "url": "https://batch.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.ap-southeast-3.amazonaws.com" + "url": "https://batch.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.us-east-1.api.aws" + "url": "https://batch.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fips.batch.us-east-1.amazonaws.com" + "url": "https://batch-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://batch.us-east-1.api.aws" + "url": "https://batch.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://batch.us-east-1.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.us-east-2.api.aws" + "url": "https://batch-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://fips.batch.us-east-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.us-east-2.api.aws" + "url": "https://batch.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://batch.us-east-2.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://batch-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://batch-fips.cn-northwest-1.amazonaws.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://batch.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://batch.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://batch.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { + "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -1424,9 +636,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1436,11 +648,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/batch/src/main/resources/codegen-resources/service-2.json b/services/batch/src/main/resources/codegen-resources/service-2.json index 878ff1d32178..7e714fe33113 100644 --- a/services/batch/src/main/resources/codegen-resources/service-2.json +++ b/services/batch/src/main/resources/codegen-resources/service-2.json @@ -24,7 +24,7 @@ {"shape":"ClientException"}, {"shape":"ServerException"} ], - "documentation":"

Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are canceled. Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the TerminateJob operation.

" + "documentation":"

Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED or PENDING are canceled. A job inRUNNABLE remains in RUNNABLE until it reaches the head of the job queue. Then the job status is updated to FAILED.

Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the TerminateJob operation.

" }, "CreateComputeEnvironment":{ "name":"CreateComputeEnvironment", @@ -582,7 +582,7 @@ }, "state":{ "shape":"CEState", - "documentation":"

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

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

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

" + "documentation":"

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

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

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

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

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

" }, "status":{ "shape":"CEStatus", @@ -739,7 +739,7 @@ }, "desiredvCpus":{ "shape":"Integer", - "documentation":"

The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

Batch doesn't support changing the desired number of vCPUs of an existing compute environment. Don't specify this parameter for compute environments using Amazon EKS clusters.

" + "documentation":"

The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

Batch doesn't support changing the desired number of vCPUs of an existing compute environment. Don't specify this parameter for compute environments using Amazon EKS clusters.

When you update the desiredvCpus setting, the value must be between the minvCpus and maxvCpus values.

Additionally, the updated desiredvCpus value must be greater than or equal to the current desiredvCpus value. For more information, see Troubleshooting Batch in the Batch User Guide.

" }, "subnets":{ "shape":"StringList", @@ -906,6 +906,10 @@ "fargatePlatformConfiguration":{ "shape":"FargatePlatformConfiguration", "documentation":"

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

" + }, + "ephemeralStorage":{ + "shape":"EphemeralStorage", + "documentation":"

The amount of ephemeral storage allocated for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.

" } }, "documentation":"

An object that represents the details of a container that's part of a job.

" @@ -1030,6 +1034,10 @@ "fargatePlatformConfiguration":{ "shape":"FargatePlatformConfiguration", "documentation":"

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

" + }, + "ephemeralStorage":{ + "shape":"EphemeralStorage", + "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.

" } }, "documentation":"

Container properties are used for Amazon ECS based job definitions. These properties to describe the container that's launched as part of a job.

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

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

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

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

" + "documentation":"

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

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

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

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

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

" }, "unmanagedvCpus":{ "shape":"Integer", @@ -1814,11 +1822,26 @@ }, "documentation":"

Specifies the configuration of a Kubernetes hostPath volume. A hostPath volume mounts an existing file or directory from the host node's filesystem into your pod. For more information, see hostPath in the Kubernetes documentation.

" }, + "EksLabelsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, "EksLimits":{ "type":"map", "key":{"shape":"String"}, "value":{"shape":"Quantity"} }, + "EksMetadata":{ + "type":"structure", + "members":{ + "labels":{ + "shape":"EksLabelsMap", + "documentation":"

Key-value pairs used to identify, sort, and organize cube resources. Can contain up to 63 uppercase letters, lowercase letters, numbers, hyphens (-), and underscores (_). Labels can be added or modified at any time. Each resource can have multiple labels, but each key must be unique for a given object.

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

Describes and uniquely identifies Kubernetes resources. For example, the compute environment that a pod runs in or the jobID for a job running in the pod. For more information, see Understanding Kubernetes Objects in the Kubernetes documentation.

" + }, "EksPodProperties":{ "type":"structure", "members":{ @@ -1841,6 +1864,10 @@ "volumes":{ "shape":"EksVolumes", "documentation":"

Specifies the volumes for a job definition that uses Amazon EKS resources.

" + }, + "metadata":{ + "shape":"EksMetadata", + "documentation":"

Metadata about the Kubernetes pod. For more information, see Understanding Kubernetes Objects in the Kubernetes documentation.

" } }, "documentation":"

The properties for the pod.

" @@ -1875,7 +1902,8 @@ "nodeName":{ "shape":"String", "documentation":"

The name of the node for this job.

" - } + }, + "metadata":{"shape":"EksMetadata"} }, "documentation":"

The details for the pod.

" }, @@ -1885,6 +1913,10 @@ "containers":{ "shape":"EksContainerOverrideList", "documentation":"

The overrides for the container that's used on the Amazon EKS pod.

" + }, + "metadata":{ + "shape":"EksMetadata", + "documentation":"

Metadata about the overrides for the container that's used on the Amazon EKS pod.

" } }, "documentation":"

An object that contains overrides for the Kubernetes pod properties of a job.

" @@ -1970,6 +2002,17 @@ "type":"list", "member":{"shape":"KeyValuePair"} }, + "EphemeralStorage":{ + "type":"structure", + "required":["sizeInGiB"], + "members":{ + "sizeInGiB":{ + "shape":"Integer", + "documentation":"

The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB.

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

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.

" + }, "EvaluateOnExit":{ "type":"structure", "required":["action"], @@ -2939,7 +2982,7 @@ "members":{ "value":{ "shape":"String", - "documentation":"

The quantity of the specified resource to reserve for the container. The values vary based on the type specified.

type=\"GPU\"

The number of physical GPUs to reserve for the container. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on.

GPUs aren't available for jobs that are running on Fargate resources.

type=\"MEMORY\"

The memory hard limit (in MiB) present to the container. This parameter is supported for jobs that are running on EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

For jobs that are running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 or 0.5

value = 2048

VCPU = 0.25, 0.5, or 1

value = 3072

VCPU = 0.5, or 1

value = 4096

VCPU = 0.5, 1, or 2

value = 5120, 6144, or 7168

VCPU = 1 or 2

value = 8192

VCPU = 1, 2, 4, or 8

value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or 4

value = 16384

VCPU = 2, 4, or 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720

VCPU = 4

value = 20480, 24576, or 28672

VCPU = 4 or 8

value = 36864, 45056, 53248, or 61440

VCPU = 8

value = 32768, 40960, 49152, or 57344

VCPU = 8 or 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

VCPU = 16

type=\"VCPU\"

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must specify at least one vCPU. This is required but can be specified in several places; it must be specified for each node at least once.

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more information about Fargate quotas, see Fargate quotas in the Amazon Web Services General Reference.

For jobs that are running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

MEMORY = 512, 1024, or 2048

value = 0.5

MEMORY = 1024, 2048, 3072, or 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

" + "documentation":"

The quantity of the specified resource to reserve for the container. The values vary based on the type specified.

type=\"GPU\"

The number of physical GPUs to reserve for the container. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on.

GPUs aren't available for jobs that are running on Fargate resources.

type=\"MEMORY\"

The memory hard limit (in MiB) present to the container. This parameter is supported for jobs that are running on EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

For jobs that are running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 or 0.5

value = 2048

VCPU = 0.25, 0.5, or 1

value = 3072

VCPU = 0.5, or 1

value = 4096

VCPU = 0.5, 1, or 2

value = 5120, 6144, or 7168

VCPU = 1 or 2

value = 8192

VCPU = 1, 2, or 4

value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or 4

value = 16384

VCPU = 2, 4, or 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720

VCPU = 4

value = 20480, 24576, or 28672

VCPU = 4 or 8

value = 36864, 45056, 53248, or 61440

VCPU = 8

value = 32768, 40960, 49152, or 57344

VCPU = 8 or 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

VCPU = 16

type=\"VCPU\"

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must specify at least one vCPU. This is required but can be specified in several places; it must be specified for each node at least once.

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more information about Fargate quotas, see Fargate quotas in the Amazon Web Services General Reference.

For jobs that are running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

MEMORY = 512, 1024, or 2048

value = 0.5

MEMORY = 1024, 2048, 3072, or 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

" }, "type":{ "shape":"ResourceType", @@ -3116,7 +3159,7 @@ }, "jobDefinition":{ "shape":"String", - "documentation":"

The job definition used by this job. This value can be one of name, name:revision, or the Amazon Resource Name (ARN) for the job definition. If name is specified without a revision then the latest active revision is used.

" + "documentation":"

The job definition used by this job. This value can be one of definition-name, definition-name:revision, or the Amazon Resource Name (ARN) for the job definition, with or without the revision (arn:aws:batch:region:account:job-definition/definition-name:revision , or arn:aws:batch:region:account:job-definition/definition-name ).

If the revision is not specified, then the latest active revision is used.

" }, "parameters":{ "shape":"ParametersMap", @@ -3339,7 +3382,7 @@ }, "state":{ "shape":"CEState", - "documentation":"

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

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

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

" + "documentation":"

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

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

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

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

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

" }, "unmanagedvCpus":{ "shape":"Integer", diff --git a/services/billingconductor/pom.xml b/services/billingconductor/pom.xml index bcedf8a3aa8a..4d22c604785b 100644 --- a/services/billingconductor/pom.xml +++ b/services/billingconductor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT billingconductor AWS Java SDK :: Services :: Billingconductor diff --git a/services/billingconductor/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/billingconductor/src/main/resources/codegen-resources/endpoint-rule-set.json index 1178cc8d2408..b4ea1f3843c2 100644 --- a/services/billingconductor/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/billingconductor/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,64 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "isSet", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" + "ref": "Region" + } ] } ], @@ -128,22 +111,13 @@ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -151,147 +125,216 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] - } + }, + "aws" ] - }, + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://billingconductor-fips.{Region}.api.aws", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://billingconductor-fips.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://billingconductor.{Region}.api.aws", - "properties": {}, + "url": "https://billingconductor.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "billingconductor", + "signingRegion": "us-east-1" + } + ] + }, "headers": {} }, "type": "endpoint" @@ -299,213 +342,238 @@ ] }, { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://billingconductor.us-east-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "billingconductor" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://billingconductor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://billingconductor-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://billingconductor.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "billingconductor", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { - "url": "https://billingconductor.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://billingconductor.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -514,55 +582,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-global" - ] - } - ], - "endpoint": { - "url": "https://billingconductor.us-east-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "billingconductor" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://billingconductor.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/billingconductor/src/main/resources/codegen-resources/endpoint-tests.json b/services/billingconductor/src/main/resources/codegen-resources/endpoint-tests.json index 2733c3fd0649..b9c1c6c37988 100644 --- a/services/billingconductor/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/billingconductor/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,85 +1,68 @@ { "testCases": [ { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://billingconductor-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://billingconductor-fips.cn-north-1.amazonaws.com.cn" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "billingconductor", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://billingconductor.us-east-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", + "Region": "aws-global", "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://billingconductor.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://billingconductor.cn-north-1.amazonaws.com.cn" + "url": "https://billingconductor-fips.us-east-1.api.aws" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://billingconductor-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://billingconductor-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://billingconductor.us-iso-east-1.c2s.ic.gov" + "url": "https://billingconductor.us-east-1.api.aws" } }, "params": { - "Region": "us-iso-east-1", - "UseDualStack": false, + "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { @@ -95,68 +78,59 @@ } }, "params": { - "Region": "aws-global", + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://billingconductor-fips.us-east-1.api.aws" + "url": "https://billingconductor-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": true, "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://billingconductor-fips.us-east-1.amazonaws.com" + "url": "https://billingconductor-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://billingconductor.us-east-1.api.aws" + "url": "https://billingconductor.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "billingconductor", - "signingRegion": "us-east-1" - } - ] - }, - "url": "https://billingconductor.us-east-1.amazonaws.com" + "url": "https://billingconductor.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": false, "UseFIPS": false } @@ -213,6 +187,32 @@ "UseFIPS": false } }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://billingconductor-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://billingconductor.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, { "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { @@ -240,7 +240,7 @@ } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -253,6 +253,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { diff --git a/services/billingconductor/src/main/resources/codegen-resources/service-2.json b/services/billingconductor/src/main/resources/codegen-resources/service-2.json index 37717b4319b0..d51720264a14 100644 --- a/services/billingconductor/src/main/resources/codegen-resources/service-2.json +++ b/services/billingconductor/src/main/resources/codegen-resources/service-2.json @@ -661,6 +661,12 @@ "type":"string", "pattern":"[0-9]{12}" }, + "AccountIdFilterList":{ + "type":"list", + "member":{"shape":"AccountId"}, + "max":30, + "min":1 + }, "AccountIdList":{ "type":"list", "member":{"shape":"AccountId"}, @@ -956,6 +962,12 @@ "PRIMARY_ACCOUNT_MISSING" ] }, + "BillingGroupStatusList":{ + "type":"list", + "member":{"shape":"BillingGroupStatus"}, + "max":2, + "min":1 + }, "BillingGroupStatusReason":{"type":"string"}, "BillingPeriod":{ "type":"string", @@ -1495,6 +1507,14 @@ "EndBillingPeriod":{ "shape":"BillingPeriod", "documentation":"

The end billing period of the custom line item version.

" + }, + "Arn":{ + "shape":"CustomLineItemArn", + "documentation":"

A list of custom line item Amazon Resource Names (ARNs) to retrieve information.

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

The inclusive start time.

" } }, "documentation":"

A representation of a custom line item version.

" @@ -1685,6 +1705,10 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID to filter on.

" + }, + "AccountIds":{ + "shape":"AccountIdFilterList", + "documentation":"

The list of Amazon Web Services IDs to retrieve their associated billing group for a given time range.

" } }, "documentation":"

The filter on the account ID of the linked account, or any of the following:

MONITORED: linked accounts that are associated to billing groups.

UNMONITORED: linked accounts that are not associated to billing groups.

Billing Group Arn: linked accounts that are associated to the provided Billing Group Arn.

" @@ -1773,6 +1797,10 @@ "PricingPlan":{ "shape":"PricingPlanFullArn", "documentation":"

The pricing plan Amazon Resource Names (ARNs) to retrieve information.

" + }, + "Statuses":{ + "shape":"BillingGroupStatusList", + "documentation":"

A list of billing groups to retrieve their current status for a specific time range

" } }, "documentation":"

The filter that specifies the billing groups and pricing plans to retrieve billing group information.

" @@ -2437,6 +2465,14 @@ "Tiering":{ "shape":"Tiering", "documentation":"

The set of tiering configurations for the pricing rule.

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

Usage type is the unit that each service uses to measure the usage of a specific type of resource.

If the Scope attribute is set to SKU, this attribute indicates which usage type the PricingRule is modifying. For example, USW2-BoxUsage:m2.2xlarge describes an M2 High Memory Double Extra Large instance in the US West (Oregon) Region.

</p> 
" + }, + "Operation":{ + "shape":"Operation", + "documentation":"

Operation is the specific Amazon Web Services action covered by this line item. This describes the specific usage of the line item.

If the Scope attribute is set to SKU, this attribute indicates which operation the PricingRule is modifying. For example, a value of RunInstances:0202 indicates the operation of running an Amazon EC2 instance.

" } }, "documentation":"

A representation of a pricing rule.

" @@ -2453,7 +2489,8 @@ "enum":[ "GLOBAL", "SERVICE", - "BILLING_ENTITY" + "BILLING_ENTITY", + "SKU" ] }, "PricingRuleType":{ @@ -3054,7 +3091,11 @@ "ILLEGAL_MODIFIER_PERCENTAGE", "ILLEGAL_TYPE", "ILLEGAL_ENDED_BILLINGGROUP", - "ILLEGAL_TIERING_INPUT" + "ILLEGAL_TIERING_INPUT", + "ILLEGAL_OPERATION", + "ILLEGAL_USAGE_TYPE", + "INVALID_SKU_COMBO", + "INVALID_FILTER" ] } }, diff --git a/services/braket/pom.xml b/services/braket/pom.xml index 0914bed86a64..6e24224f09b0 100644 --- a/services/braket/pom.xml +++ b/services/braket/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT braket AWS Java SDK :: Services :: Braket diff --git a/services/budgets/pom.xml b/services/budgets/pom.xml index 927c914efe33..f85c17c7f905 100644 --- a/services/budgets/pom.xml +++ b/services/budgets/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT budgets AWS Java SDK :: Services :: AWS Budgets diff --git a/services/chime/pom.xml b/services/chime/pom.xml index 8c6fd468387c..353b18212da3 100644 --- a/services/chime/pom.xml +++ b/services/chime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT chime AWS Java SDK :: Services :: Chime diff --git a/services/chimesdkidentity/pom.xml b/services/chimesdkidentity/pom.xml index 7a8a1c93bc27..8240d3703695 100644 --- a/services/chimesdkidentity/pom.xml +++ b/services/chimesdkidentity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT chimesdkidentity AWS Java SDK :: Services :: Chime SDK Identity diff --git a/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-rule-set.json index 4d3e28096611..c6621fc86c3a 100644 --- a/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identity-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identity-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://identity-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identity-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://identity-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://identity-chime.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://identity-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://identity-chime.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-tests.json b/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-tests.json index 489f266de29d..dd83a35bf054 100644 --- a/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/chimesdkidentity/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,120 +1,294 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identity-chime-fips.eu-central-1.api.aws" + "url": "https://identity-chime-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identity-chime-fips.eu-central-1.amazonaws.com" + "url": "https://identity-chime.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identity-chime.eu-central-1.api.aws" + "url": "https://identity-chime.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identity-chime.eu-central-1.amazonaws.com" + "url": "https://identity-chime.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identity-chime-fips.us-east-1.api.aws" + "url": "https://identity-chime-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identity-chime-fips.us-east-1.amazonaws.com" + "url": "https://identity-chime-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identity-chime.us-east-1.api.aws" + "url": "https://identity-chime.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identity-chime.us-east-1.amazonaws.com" + "url": "https://identity-chime.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -124,9 +298,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -136,11 +310,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/chimesdkidentity/src/main/resources/codegen-resources/paginators-1.json b/services/chimesdkidentity/src/main/resources/codegen-resources/paginators-1.json index b8fa7ee59e76..f8d543362d3e 100644 --- a/services/chimesdkidentity/src/main/resources/codegen-resources/paginators-1.json +++ b/services/chimesdkidentity/src/main/resources/codegen-resources/paginators-1.json @@ -5,6 +5,11 @@ "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListAppInstanceBots": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListAppInstanceUserEndpoints": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/chimesdkidentity/src/main/resources/codegen-resources/service-2.json b/services/chimesdkidentity/src/main/resources/codegen-resources/service-2.json index fbfebfac3798..45b06f76c6dd 100644 --- a/services/chimesdkidentity/src/main/resources/codegen-resources/service-2.json +++ b/services/chimesdkidentity/src/main/resources/codegen-resources/service-2.json @@ -51,7 +51,28 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Promotes an AppInstanceUser to an AppInstanceAdmin. The promoted user can perform the following actions.

  • ChannelModerator actions across all channels in the AppInstance.

  • DeleteChannelMessage actions.

Only an AppInstanceUser can be promoted to an AppInstanceAdmin role.

" + "documentation":"

Promotes an AppInstanceUser or AppInstanceBot to an AppInstanceAdmin. The promoted entity can perform the following actions.

  • ChannelModerator actions across all channels in the AppInstance.

  • DeleteChannelMessage actions.

Only an AppInstanceUser and AppInstanceBot can be promoted to an AppInstanceAdmin role.

" + }, + "CreateAppInstanceBot":{ + "name":"CreateAppInstanceBot", + "http":{ + "method":"POST", + "requestUri":"/app-instance-bots", + "responseCode":201 + }, + "input":{"shape":"CreateAppInstanceBotRequest"}, + "output":{"shape":"CreateAppInstanceBotResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Creates a bot under an Amazon Chime AppInstance. The request consists of a unique Configuration and Name for that bot.

" }, "CreateAppInstanceUser":{ "name":"CreateAppInstanceUser", @@ -111,7 +132,27 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Demotes an AppInstanceAdmin to an AppInstanceUser. This action does not delete the user.

" + "documentation":"

Demotes an AppInstanceAdmin to an AppInstanceUser or AppInstanceBot. This action does not delete the user.

" + }, + "DeleteAppInstanceBot":{ + "name":"DeleteAppInstanceBot", + "http":{ + "method":"DELETE", + "requestUri":"/app-instance-bots/{appInstanceBotArn}", + "responseCode":204 + }, + "input":{"shape":"DeleteAppInstanceBotRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Deletes an AppInstanceBot.

" }, "DeleteAppInstanceUser":{ "name":"DeleteAppInstanceUser", @@ -188,6 +229,25 @@ ], "documentation":"

Returns the full details of an AppInstanceAdmin.

" }, + "DescribeAppInstanceBot":{ + "name":"DescribeAppInstanceBot", + "http":{ + "method":"GET", + "requestUri":"/app-instance-bots/{appInstanceBotArn}" + }, + "input":{"shape":"DescribeAppInstanceBotRequest"}, + "output":{"shape":"DescribeAppInstanceBotResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

The AppInstanceBot's information.

" + }, "DescribeAppInstanceUser":{ "name":"DescribeAppInstanceUser", "http":{ @@ -264,6 +324,25 @@ ], "documentation":"

Returns a list of the administrators in the AppInstance.

" }, + "ListAppInstanceBots":{ + "name":"ListAppInstanceBots", + "http":{ + "method":"GET", + "requestUri":"/app-instance-bots" + }, + "input":{"shape":"ListAppInstanceBotsRequest"}, + "output":{"shape":"ListAppInstanceBotsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Lists all AppInstanceBots created under a single AppInstance.

" + }, "ListAppInstanceUserEndpoints":{ "name":"ListAppInstanceUserEndpoints", "http":{ @@ -357,6 +436,26 @@ ], "documentation":"

Sets the amount of time in days that a given AppInstance retains data.

" }, + "PutAppInstanceUserExpirationSettings":{ + "name":"PutAppInstanceUserExpirationSettings", + "http":{ + "method":"PUT", + "requestUri":"/app-instance-users/{appInstanceUserArn}/expiration-settings", + "responseCode":200 + }, + "input":{"shape":"PutAppInstanceUserExpirationSettingsRequest"}, + "output":{"shape":"PutAppInstanceUserExpirationSettingsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ForbiddenException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Sets the number of days before the AppInstanceUser is automatically deleted.

A background process deletes expired AppInstanceUsers within 6 hours of expiration. Actual deletion times may vary.

Expired AppInstanceUsers that have not yet been deleted appear as active, and you can update their expiration settings. The system honors the new settings.

" + }, "RegisterAppInstanceUserEndpoint":{ "name":"RegisterAppInstanceUserEndpoint", "http":{ @@ -435,6 +534,27 @@ ], "documentation":"

Updates AppInstance metadata.

" }, + "UpdateAppInstanceBot":{ + "name":"UpdateAppInstanceBot", + "http":{ + "method":"PUT", + "requestUri":"/app-instance-bots/{appInstanceBotArn}", + "responseCode":200 + }, + "input":{"shape":"UpdateAppInstanceBotRequest"}, + "output":{"shape":"UpdateAppInstanceBotResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Updates the name and metadata of an AppInstanceBot.

" + }, "UpdateAppInstanceUser":{ "name":"UpdateAppInstanceUser", "http":{ @@ -527,7 +647,7 @@ "documentation":"

The time at which an administrator was created.

" } }, - "documentation":"

The details of an AppInstanceAdmin.

" + "documentation":"

The name and ARN of the admin for the AppInstance.

" }, "AppInstanceAdminList":{ "type":"list", @@ -543,6 +663,58 @@ }, "documentation":"

Summary of the details of an AppInstanceAdmin.

" }, + "AppInstanceBot":{ + "type":"structure", + "members":{ + "AppInstanceBotArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceBot.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The name of the AppInstanceBot.

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

The data processing instructions for an AppInstanceBot.

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

The time at which the AppInstanceBot was created.

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

The time at which the AppInstanceBot was last updated.

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

The metadata for an AppInstanceBot.

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

An Amazon Lex V2 chat bot created under an AppInstance.

" + }, + "AppInstanceBotList":{ + "type":"list", + "member":{"shape":"AppInstanceBotSummary"} + }, + "AppInstanceBotSummary":{ + "type":"structure", + "members":{ + "AppInstanceBotArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceBot.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The name of the AppInstanceBox.

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

The metadata of the AppInstanceBot.

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

High-level information about an AppInstanceBot.

" + }, "AppInstanceList":{ "type":"list", "member":{"shape":"AppInstanceSummary"} @@ -597,6 +769,10 @@ "LastUpdatedTimestamp":{ "shape":"Timestamp", "documentation":"

The time at which the AppInstanceUser was last updated.

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

The interval after which an AppInstanceUser is automatically deleted.

" } }, "documentation":"

The details of an AppInstanceUser.

" @@ -621,7 +797,7 @@ "documentation":"

The type of the AppInstanceUserEndpoint.

" }, "ResourceArn":{ - "shape":"SensitiveChimeArn", + "shape":"ChimeArn", "documentation":"

The ARN of the resource to which the endpoint belongs.

" }, "EndpointAttributes":{ @@ -741,8 +917,18 @@ "type":"string", "max":64, "min":2, - "pattern":"[-_a-zA-Z0-9]*", - "sensitive":true + "pattern":"[-_a-zA-Z0-9]*" + }, + "Configuration":{ + "type":"structure", + "required":["Lex"], + "members":{ + "Lex":{ + "shape":"LexConfiguration", + "documentation":"

The configuration for an Amazon Lex V2 bot.

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

A structure that contains configuration data.

" }, "ConflictException":{ "type":"structure", @@ -778,7 +964,7 @@ "members":{ "AppInstanceAdmin":{ "shape":"Identity", - "documentation":"

The name and ARN of the admin for the AppInstance.

" + "documentation":"

The ARN and name of the administrator, the ARN of the AppInstance, and the created and last-updated timestamps. All timestamps use epoch milliseconds.

" }, "AppInstanceArn":{ "shape":"ChimeArn", @@ -786,6 +972,50 @@ } } }, + "CreateAppInstanceBotRequest":{ + "type":"structure", + "required":[ + "AppInstanceArn", + "ClientRequestToken", + "Configuration" + ], + "members":{ + "AppInstanceArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstance request.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The user's name.

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

The request metadata. Limited to a 1KB string in UTF-8.

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

The unique ID for the client making the request. Use different tokens for different AppInstanceBots.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags assigned to the AppInstanceBot.

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

Configuration information about the Amazon Lex V2 V2 bot.

" + } + } + }, + "CreateAppInstanceBotResponse":{ + "type":"structure", + "members":{ + "AppInstanceBotArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppinstanceBot.

" + } + } + }, "CreateAppInstanceRequest":{ "type":"structure", "required":[ @@ -803,12 +1033,12 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

The ClientRequestToken of the AppInstance.

", + "documentation":"

The unique ID of the request. Use different tokens to create different AppInstances.

", "idempotencyToken":true }, "Tags":{ "shape":"TagList", - "documentation":"

Tags assigned to the AppInstanceUser.

" + "documentation":"

Tags assigned to the AppInstance.

" } } }, @@ -848,12 +1078,16 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

The token assigned to the user requesting an AppInstance.

", + "documentation":"

The unique ID of the request. Use different tokens to request additional AppInstances.

", "idempotencyToken":true }, "Tags":{ "shape":"TagList", "documentation":"

Tags assigned to the AppInstanceUser.

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

Settings that control the interval after which the AppInstanceUser is automatically deleted.

" } } }, @@ -887,6 +1121,18 @@ } } }, + "DeleteAppInstanceBotRequest":{ + "type":"structure", + "required":["AppInstanceBotArn"], + "members":{ + "AppInstanceBotArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceBot being deleted.

", + "location":"uri", + "locationName":"appInstanceBotArn" + } + } + }, "DeleteAppInstanceRequest":{ "type":"structure", "required":["AppInstanceArn"], @@ -962,6 +1208,27 @@ } } }, + "DescribeAppInstanceBotRequest":{ + "type":"structure", + "required":["AppInstanceBotArn"], + "members":{ + "AppInstanceBotArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceBot.

", + "location":"uri", + "locationName":"appInstanceBotArn" + } + } + }, + "DescribeAppInstanceBotResponse":{ + "type":"structure", + "members":{ + "AppInstanceBot":{ + "shape":"AppInstanceBot", + "documentation":"

The detials of the AppInstanceBot.

" + } + } + }, "DescribeAppInstanceRequest":{ "type":"structure", "required":["AppInstanceArn"], @@ -1098,6 +1365,33 @@ "PhoneNumberAssociationsExist" ] }, + "ExpirationCriterion":{ + "type":"string", + "enum":["CREATED_TIMESTAMP"] + }, + "ExpirationDays":{ + "type":"integer", + "max":5475, + "min":1 + }, + "ExpirationSettings":{ + "type":"structure", + "required":[ + "ExpirationDays", + "ExpirationCriterion" + ], + "members":{ + "ExpirationDays":{ + "shape":"ExpirationDays", + "documentation":"

The period in days after which an AppInstanceUser will be automatically deleted.

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

Specifies the conditions under which an AppInstanceUser will expire.

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

Determines the interval after which an AppInstanceUser is automatically deleted.

" + }, "ForbiddenException":{ "type":"structure", "members":{ @@ -1145,7 +1439,46 @@ "documentation":"

The name in an Identity.

" } }, - "documentation":"

The details of a user.

" + "documentation":"

The details of a user or bot.

" + }, + "LexBotAliasArn":{ + "type":"string", + "max":2048, + "min":15, + "pattern":"arn:aws:lex:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:bot-alias/[A-Z0-9]{10}/[A-Z0-9]{10}" + }, + "LexConfiguration":{ + "type":"structure", + "required":[ + "RespondsTo", + "LexBotAliasArn", + "LocaleId" + ], + "members":{ + "RespondsTo":{ + "shape":"RespondsTo", + "documentation":"

Determines whether the Amazon Lex V2 bot responds to all standard messages. Control messages are not supported.

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

The ARN of the Amazon Lex V2 bot's alias. The ARN uses this format: arn:aws:lex:REGION:ACCOUNT:bot-alias/MYBOTID/MYBOTALIAS

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

Identifies the Amazon Lex V2 bot's language and locale. The string must match one of the supported locales in Amazon Lex V2. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see Supported languages in the Amazon Lex V2 Developer Guide.

" + }, + "WelcomeIntent":{ + "shape":"LexIntentName", + "documentation":"

The name of the welcome intent configured in the Amazon Lex V2 bot.

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

The configuration for an Amazon Lex V2 bot.

" + }, + "LexIntentName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^([A-Za-z]_?)+$" }, "ListAppInstanceAdminsRequest":{ "type":"structure", @@ -1188,6 +1521,47 @@ } } }, + "ListAppInstanceBotsRequest":{ + "type":"structure", + "required":["AppInstanceArn"], + "members":{ + "AppInstanceArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstance.

", + "location":"querystring", + "locationName":"app-instance-arn" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of requests to return.

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

The token passed by previous API calls until all requested bots are returned.

", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListAppInstanceBotsResponse":{ + "type":"structure", + "members":{ + "AppInstanceArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstance.

" + }, + "AppInstanceBots":{ + "shape":"AppInstanceBotList", + "documentation":"

The information for each requested AppInstanceBot.

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

The token passed by previous API calls until all requested bots are returned.

" + } + } + }, "ListAppInstanceUserEndpointsRequest":{ "type":"structure", "required":["AppInstanceUserArn"], @@ -1350,6 +1724,16 @@ "pattern":".*", "sensitive":true }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Code":{"shape":"ErrorCode"}, + "Message":{"shape":"String"} + }, + "documentation":"

One or more of the resources in the request does not exist in the system.

", + "error":{"httpStatusCode":404}, + "exception":true + }, "PutAppInstanceRetentionSettingsRequest":{ "type":"structure", "required":[ @@ -1382,6 +1766,35 @@ } } }, + "PutAppInstanceUserExpirationSettingsRequest":{ + "type":"structure", + "required":["AppInstanceUserArn"], + "members":{ + "AppInstanceUserArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceUser.

", + "location":"uri", + "locationName":"appInstanceUserArn" + }, + "ExpirationSettings":{ + "shape":"ExpirationSettings", + "documentation":"

Settings that control the interval after which an AppInstanceUser is automatically deleted.

" + } + } + }, + "PutAppInstanceUserExpirationSettingsResponse":{ + "type":"structure", + "members":{ + "AppInstanceUserArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceUser.

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

Settings that control the interval after which an AppInstanceUser is automatically deleted.

" + } + } + }, "RegisterAppInstanceUserEndpointRequest":{ "type":"structure", "required":[ @@ -1407,7 +1820,7 @@ "documentation":"

The type of the AppInstanceUserEndpoint. Supported types:

  • APNS: The mobile notification service for an Apple device.

  • APNS_SANDBOX: The sandbox environment of the mobile notification service for an Apple device.

  • GCM: The mobile notification service for an Android device.

Populate the ResourceArn value of each type as PinpointAppArn.

" }, "ResourceArn":{ - "shape":"SensitiveChimeArn", + "shape":"ChimeArn", "documentation":"

The ARN of the resource to which the endpoint belongs.

" }, "EndpointAttributes":{ @@ -1416,7 +1829,7 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

The idempotency token for each client request.

", + "documentation":"

The unique ID assigned to the request. Use different tokens to register other endpoints.

", "idempotencyToken":true }, "AllowMessages":{ @@ -1455,6 +1868,10 @@ "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*", "sensitive":true }, + "RespondsTo":{ + "type":"string", + "enum":["STANDARD_MESSAGES"] + }, "RetentionDays":{ "type":"integer", "max":5475, @@ -1601,6 +2018,39 @@ } } }, + "UpdateAppInstanceBotRequest":{ + "type":"structure", + "required":[ + "AppInstanceBotArn", + "Name", + "Metadata" + ], + "members":{ + "AppInstanceBotArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceBot.

", + "location":"uri", + "locationName":"appInstanceBotArn" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The name of the AppInstanceBot.

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

The metadata of the AppInstanceBot.

" + } + } + }, + "UpdateAppInstanceBotResponse":{ + "type":"structure", + "members":{ + "AppInstanceBotArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceBot.

" + } + } + }, "UpdateAppInstanceRequest":{ "type":"structure", "required":[ diff --git a/services/chimesdkmediapipelines/pom.xml b/services/chimesdkmediapipelines/pom.xml index 82513c29269d..432a8339f160 100644 --- a/services/chimesdkmediapipelines/pom.xml +++ b/services/chimesdkmediapipelines/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT chimesdkmediapipelines AWS Java SDK :: Services :: Chime SDK Media Pipelines diff --git a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-rule-set.json index 17f0100635a1..df6d5f828d00 100644 --- a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://media-pipelines-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://media-pipelines-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://media-pipelines-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://media-pipelines-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://media-pipelines-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://media-pipelines-chime.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://media-pipelines-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://media-pipelines-chime.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-tests.json b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-tests.json index 0e104939a5b3..7eb9374850de 100644 --- a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,68 +1,68 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime-fips.eu-central-1.api.aws" + "url": "https://media-pipelines-chime.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime-fips.eu-central-1.amazonaws.com" + "url": "https://media-pipelines-chime.eu-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "eu-central-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.eu-central-1.api.aws" + "url": "https://media-pipelines-chime.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.eu-central-1.amazonaws.com" + "url": "https://media-pipelines-chime-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime-fips.us-west-2.api.aws" + "url": "https://media-pipelines-chime.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" } }, { @@ -73,152 +73,261 @@ } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true + "Region": "us-west-2" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.us-west-2.api.aws" + "url": "https://media-pipelines-chime-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.us-west-2.amazonaws.com" + "url": "https://media-pipelines-chime.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime-fips.ap-southeast-1.api.aws" + "url": "https://media-pipelines-chime.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime-fips.ap-southeast-1.amazonaws.com" + "url": "https://media-pipelines-chime.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.ap-southeast-1.api.aws" + "url": "https://media-pipelines-chime-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.ap-southeast-1.amazonaws.com" + "url": "https://media-pipelines-chime-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime-fips.us-east-1.api.aws" + "url": "https://media-pipelines-chime.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime-fips.us-east-1.amazonaws.com" + "url": "https://media-pipelines-chime.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.us-east-1.api.aws" + "url": "https://media-pipelines-chime-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://media-pipelines-chime.us-east-1.amazonaws.com" + "url": "https://media-pipelines-chime.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -228,9 +337,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -240,11 +349,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/paginators-1.json b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/paginators-1.json index e6c938288a90..300591768e32 100644 --- a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/paginators-1.json +++ b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/paginators-1.json @@ -5,6 +5,11 @@ "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListMediaInsightsPipelineConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListMediaPipelines": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/service-2.json b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/service-2.json index bb8baef4784d..bad71f0e1022 100644 --- a/services/chimesdkmediapipelines/src/main/resources/codegen-resources/service-2.json +++ b/services/chimesdkmediapipelines/src/main/resources/codegen-resources/service-2.json @@ -51,6 +51,48 @@ ], "documentation":"

Creates a media concatenation pipeline.

" }, + "CreateMediaInsightsPipeline":{ + "name":"CreateMediaInsightsPipeline", + "http":{ + "method":"POST", + "requestUri":"/media-insights-pipelines", + "responseCode":201 + }, + "input":{"shape":"CreateMediaInsightsPipelineRequest"}, + "output":{"shape":"CreateMediaInsightsPipelineResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Creates a media insights pipeline.

" + }, + "CreateMediaInsightsPipelineConfiguration":{ + "name":"CreateMediaInsightsPipelineConfiguration", + "http":{ + "method":"POST", + "requestUri":"/media-insights-pipeline-configurations", + "responseCode":201 + }, + "input":{"shape":"CreateMediaInsightsPipelineConfigurationRequest"}, + "output":{"shape":"CreateMediaInsightsPipelineConfigurationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

A structure that contains the static configurations for a media insights pipeline.

" + }, "CreateMediaLiveConnectorPipeline":{ "name":"CreateMediaLiveConnectorPipeline", "http":{ @@ -69,7 +111,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a streaming media pipeline in an Amazon Chime SDK meeting.

" + "documentation":"

Creates a media live connector pipeline in an Amazon Chime SDK meeting.

" }, "DeleteMediaCapturePipeline":{ "name":"DeleteMediaCapturePipeline", @@ -90,6 +132,26 @@ ], "documentation":"

Deletes the media pipeline.

" }, + "DeleteMediaInsightsPipelineConfiguration":{ + "name":"DeleteMediaInsightsPipelineConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/media-insights-pipeline-configurations/{identifier}", + "responseCode":204 + }, + "input":{"shape":"DeleteMediaInsightsPipelineConfigurationRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ThrottledClientException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Deletes the specified configuration settings.

" + }, "DeleteMediaPipeline":{ "name":"DeleteMediaPipeline", "http":{ @@ -129,6 +191,26 @@ ], "documentation":"

Gets an existing media pipeline.

" }, + "GetMediaInsightsPipelineConfiguration":{ + "name":"GetMediaInsightsPipelineConfiguration", + "http":{ + "method":"GET", + "requestUri":"/media-insights-pipeline-configurations/{identifier}", + "responseCode":200 + }, + "input":{"shape":"GetMediaInsightsPipelineConfigurationRequest"}, + "output":{"shape":"GetMediaInsightsPipelineConfigurationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Gets the configuration settings for a media insights pipeline.

" + }, "GetMediaPipeline":{ "name":"GetMediaPipeline", "http":{ @@ -169,6 +251,26 @@ ], "documentation":"

Returns a list of media pipelines.

" }, + "ListMediaInsightsPipelineConfigurations":{ + "name":"ListMediaInsightsPipelineConfigurations", + "http":{ + "method":"GET", + "requestUri":"/media-insights-pipeline-configurations", + "responseCode":200 + }, + "input":{"shape":"ListMediaInsightsPipelineConfigurationsRequest"}, + "output":{"shape":"ListMediaInsightsPipelineConfigurationsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Lists the available media insights pipeline configurations.

" + }, "ListMediaPipelines":{ "name":"ListMediaPipelines", "http":{ @@ -227,7 +329,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

The ARN of the media pipeline that you want to tag. Consists of he pipeline's endpoint region, resource ID, and pipeline ID.

" + "documentation":"

The ARN of the media pipeline that you want to tag. Consists of the pipeline's endpoint region, resource ID, and pipeline ID.

" }, "UntagResource":{ "name":"UntagResource", @@ -248,6 +350,47 @@ {"shape":"ServiceFailureException"} ], "documentation":"

Removes any tags from a media pipeline.

" + }, + "UpdateMediaInsightsPipelineConfiguration":{ + "name":"UpdateMediaInsightsPipelineConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/media-insights-pipeline-configurations/{identifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateMediaInsightsPipelineConfigurationRequest"}, + "output":{"shape":"UpdateMediaInsightsPipelineConfigurationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Updates the media insights pipeline's configuration settings.

" + }, + "UpdateMediaInsightsPipelineStatus":{ + "name":"UpdateMediaInsightsPipelineStatus", + "http":{ + "method":"PUT", + "requestUri":"/media-insights-pipeline-status/{identifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateMediaInsightsPipelineStatusRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ConflictException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Updates the status of a media insights pipeline.

" } }, "shapes":{ @@ -257,6 +400,120 @@ "min":1, "pattern":"^arn[\\/\\:\\-\\_\\.a-zA-Z0-9]+$" }, + "AmazonTranscribeCallAnalyticsProcessorConfiguration":{ + "type":"structure", + "required":["LanguageCode"], + "members":{ + "LanguageCode":{ + "shape":"CallAnalyticsLanguageCode", + "documentation":"

The language code in the configuration.

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

Specifies the name of the custom vocabulary to use when processing a transcription. Note that vocabulary names are case sensitive.

If the language of the specified custom vocabulary doesn't match the language identified in your media, the custom vocabulary is not applied to your transcription.

For more information, see Custom vocabularies in the Amazon Transcribe Developer Guide.

Length Constraints: Minimum length of 1. Maximum length of 200.

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

Specifies the name of the custom vocabulary filter to use when processing a transcription. Note that vocabulary filter names are case sensitive.

If the language of the specified custom vocabulary filter doesn't match the language identified in your media, the vocabulary filter is not applied to your transcription.

For more information, see Using vocabulary filtering with unwanted words in the Amazon Transcribe Developer Guide.

Length Constraints: Minimum length of 1. Maximum length of 200.

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

Specifies how to apply a vocabulary filter to a transcript.

To replace words with ***, choose mask.

To delete words, choose remove.

To flag words without changing them, choose tag.

" + }, + "LanguageModelName":{ + "shape":"ModelName", + "documentation":"

Specifies the name of the custom language model to use when processing a transcription. Note that language model names are case sensitive.

The language of the specified language model must match the language code specified in the transcription request. If the languages don't match, the custom language model isn't applied. Language mismatches don't generate errors or warnings.

For more information, see Custom language models in the Amazon Transcribe Developer Guide.

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

Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy. For more information, see Partial-result stabilization in the Amazon Transcribe Developer Guide.

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

Specifies the level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization).

Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy.

For more information, see Partial-result stabilization in the Amazon Transcribe Developer Guide.

" + }, + "ContentIdentificationType":{ + "shape":"ContentType", + "documentation":"

Labels all personally identifiable information (PII) identified in your transcript.

Content identification is performed at the segment level; PII specified in PiiEntityTypes is flagged upon complete transcription of an audio segment.

You can’t set ContentIdentificationType and ContentRedactionType in the same request. If you do, your request returns a BadRequestException.

For more information, see Redacting or identifying personally identifiable information in the Amazon Transcribe Developer Guide.

" + }, + "ContentRedactionType":{ + "shape":"ContentType", + "documentation":"

Redacts all personally identifiable information (PII) identified in your transcript.

Content redaction is performed at the segment level; PII specified in PiiEntityTypes is redacted upon complete transcription of an audio segment.

You can’t set ContentRedactionType and ContentIdentificationType in the same request. If you do, your request returns a BadRequestException.

For more information, see Redacting or identifying personally identifiable information in the Amazon Transcribe Developer Guide.

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

Specifies the types of personally identifiable information (PII) to redact from a transcript. You can include as many types as you'd like, or you can select ALL.

To include PiiEntityTypes in your Call Analytics request, you must also include ContentIdentificationType or ContentRedactionType, but you can't include both.

Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, CREDIT_DEBIT_NUMBER, EMAIL, NAME, PHONE, PIN, SSN, or ALL.

Length Constraints: Minimum length of 1. Maximum length of 300.

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

If true, UtteranceEvents with IsPartial: true are filtered out of the insights target.

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

The settings for a post-call analysis task in an analytics configuration.

" + }, + "CallAnalyticsStreamCategories":{ + "shape":"CategoryNameList", + "documentation":"

By default, all CategoryEvents will be sent to the insights target. If this parameter is specified, only included categories will be sent to the insights target.

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

A structure that contains the configuration settings for an Amazon Transcribe call analytics processor.

" + }, + "AmazonTranscribeProcessorConfiguration":{ + "type":"structure", + "required":["LanguageCode"], + "members":{ + "LanguageCode":{ + "shape":"CallAnalyticsLanguageCode", + "documentation":"

The language code that represents the language spoken in your audio.

If you're unsure of the language spoken in your audio, consider using IdentifyLanguage to enable automatic language identification.

For a list of languages that real-time Call Analytics supports, see the Supported languages table in the Amazon Transcribe Developer Guide.

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

The name of the custom vocabulary that you specified in your Call Analytics request.

Length Constraints: Minimum length of 1. Maximum length of 200.

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

The name of the custom vocabulary filter that you specified in your Call Analytics request.

Length Constraints: Minimum length of 1. Maximum length of 200.

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

The vocabulary filtering method used in your Call Analytics transcription.

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

Enables speaker partitioning (diarization) in your transcription output. Speaker partitioning labels the speech from individual speakers in your media file.

For more information, see Partitioning speakers (diarization) in the Amazon Transcribe Developer Guide.

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

Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy.

For more information, see Partial-result stabilization in the Amazon Transcribe Developer Guide.

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

The level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization).

Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy.

For more information, see Partial-result stabilization in the Amazon Transcribe Developer Guide.

" + }, + "ContentIdentificationType":{ + "shape":"ContentType", + "documentation":"

Labels all personally identifiable information (PII) identified in your transcript.

Content identification is performed at the segment level; PII specified in PiiEntityTypes is flagged upon complete transcription of an audio segment.

You can’t set ContentIdentificationType and ContentRedactionType in the same request. If you set both, your request returns a BadRequestException.

For more information, see Redacting or identifying personally identifiable information in the Amazon Transcribe Developer Guide.

" + }, + "ContentRedactionType":{ + "shape":"ContentType", + "documentation":"

Redacts all personally identifiable information (PII) identified in your transcript.

Content redaction is performed at the segment level; PII specified in PiiEntityTypes is redacted upon complete transcription of an audio segment.

You can’t set ContentRedactionType and ContentIdentificationType in the same request. If you set both, your request returns a BadRequestException.

For more information, see Redacting or identifying personally identifiable information in the Amazon Transcribe Developer Guide.

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

The types of personally identifiable information (PII) to redact from a transcript. You can include as many types as you'd like, or you can select ALL.

To include PiiEntityTypes in your Call Analytics request, you must also include ContentIdentificationType or ContentRedactionType, but you can't include both.

Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, CREDIT_DEBIT_NUMBER, EMAIL, NAME, PHONE, PIN, SSN, or ALL.

Length Constraints: Minimum length of 1. Maximum length of 300.

" + }, + "LanguageModelName":{ + "shape":"ModelName", + "documentation":"

The name of the custom language model that you want to use when processing your transcription. Note that language model names are case sensitive.

The language of the specified language model must match the language code you specify in your transcription request. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch.

For more information, see Custom language models in the Amazon Transcribe Developer Guide.

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

If true, TranscriptEvents with IsPartial: true are filtered out of the insights target.

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

A structure that contains the configuration settings for an Amazon Transcribe processor.

" + }, "Arn":{ "type":"string", "max":1024, @@ -381,7 +638,7 @@ "members":{ "State":{ "shape":"AudioArtifactsConcatenationState", - "documentation":"

Enables the name object, where name is the name of the configuration object, such as AudioConcatenation.

" + "documentation":"

Enables or disables the configuration object.

" } }, "documentation":"

The audio artifact concatenation configuration object.

" @@ -405,13 +662,66 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

The input parameters don't match the service's restrictions.

", "error":{"httpStatusCode":400}, "exception":true }, + "Boolean":{"type":"boolean"}, + "CallAnalyticsLanguageCode":{ + "type":"string", + "enum":[ + "en-US", + "en-GB", + "es-US", + "fr-CA", + "fr-FR", + "en-AU", + "it-IT", + "de-DE", + "pt-BR" + ] + }, + "CategoryName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[0-9a-zA-Z._-]+" + }, + "CategoryNameList":{ + "type":"list", + "member":{"shape":"CategoryName"}, + "max":20, + "min":1 + }, + "ChannelDefinition":{ + "type":"structure", + "required":["ChannelId"], + "members":{ + "ChannelId":{ + "shape":"ChannelId", + "documentation":"

The channel ID.

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

Specifies whether the audio in a channel belongs to the AGENT or CUSTOMER.

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

Defines an audio channel in a Kinesis video stream.

" + }, + "ChannelDefinitions":{ + "type":"list", + "member":{"shape":"ChannelDefinition"}, + "max":2, + "min":1 + }, + "ChannelId":{ + "type":"integer", + "max":1, + "min":0 + }, "ChimeSdkMeetingConcatenationConfiguration":{ "type":"structure", "required":["ArtifactsConfiguration"], @@ -428,7 +738,7 @@ "members":{ "SourceConfiguration":{ "shape":"SourceConfiguration", - "documentation":"

The source configuration for a specified media pipline.

" + "documentation":"

The source configuration for a specified media pipeline.

" }, "ArtifactsConfiguration":{ "shape":"ArtifactsConfiguration", @@ -487,7 +797,7 @@ "documentation":"

The GridView configuration setting.

" } }, - "documentation":"

Describes the configuration for the composited video artifacts.

" + "documentation":"

Specifies the configuration for compositing video artifacts.

" }, "CompositedVideoConcatenationConfiguration":{ "type":"structure", @@ -556,6 +866,20 @@ "type":"string", "enum":["MediaCapturePipeline"] }, + "ConflictException":{ + "type":"structure", + "members":{ + "Code":{"shape":"ErrorCode"}, + "Message":{"shape":"String"}, + "RequestId":{ + "shape":"String", + "documentation":"

The request ID associated with the call responsible for the exception.

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

The request could not be processed because of conflict in the current state of the resource.

", + "error":{"httpStatusCode":409}, + "exception":true + }, "ContentArtifactsConfiguration":{ "type":"structure", "required":["State"], @@ -586,6 +910,13 @@ "type":"string", "enum":["ContentOnly"] }, + "ContentRedactionOutput":{ + "type":"string", + "enum":[ + "redacted", + "redacted_and_unredacted" + ] + }, "ContentShareLayoutOption":{ "type":"string", "enum":[ @@ -594,6 +925,10 @@ "Vertical" ] }, + "ContentType":{ + "type":"string", + "enum":["PII"] + }, "CreateMediaCapturePipelineRequest":{ "type":"structure", "required":[ @@ -678,6 +1013,95 @@ } } }, + "CreateMediaInsightsPipelineConfigurationRequest":{ + "type":"structure", + "required":[ + "MediaInsightsPipelineConfigurationName", + "ResourceAccessRoleArn", + "Elements" + ], + "members":{ + "MediaInsightsPipelineConfigurationName":{ + "shape":"MediaInsightsPipelineConfigurationNameString", + "documentation":"

The name of the media insights pipeline configuration.

" + }, + "ResourceAccessRoleArn":{ + "shape":"Arn", + "documentation":"

The ARN of the role used by the service to access Amazon Web Services resources, including Transcribe and Transcribe Call Analytics, on the caller’s behalf.

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

The configuration settings for the real-time alerts in a media insights pipeline configuration.

" + }, + "Elements":{ + "shape":"MediaInsightsPipelineConfigurationElements", + "documentation":"

The elements in the request, such as a processor for Amazon Transcribe or a sink for a Kinesis Data Stream.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags assigned to the media insights pipeline configuration.

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

The unique identifier for the media insights pipeline configuration request.

", + "idempotencyToken":true + } + } + }, + "CreateMediaInsightsPipelineConfigurationResponse":{ + "type":"structure", + "members":{ + "MediaInsightsPipelineConfiguration":{ + "shape":"MediaInsightsPipelineConfiguration", + "documentation":"

The configuration settings for the media insights pipeline.

" + } + } + }, + "CreateMediaInsightsPipelineRequest":{ + "type":"structure", + "required":["MediaInsightsPipelineConfigurationArn"], + "members":{ + "MediaInsightsPipelineConfigurationArn":{ + "shape":"Arn", + "documentation":"

The ARN of the pipeline's configuration.

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

The runtime configuration for the Kinesis video stream source of the media insights pipeline.

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

The runtime metadata for the media insights pipeline. Consists of a key-value map of strings.

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

The runtime configuration for the Kinesis video recording stream source.

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

The runtime configuration for the S3 recording sink.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags assigned to the media insights pipeline.

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

The unique identifier for the media insights pipeline request.

", + "idempotencyToken":true + } + } + }, + "CreateMediaInsightsPipelineResponse":{ + "type":"structure", + "required":["MediaInsightsPipeline"], + "members":{ + "MediaInsightsPipeline":{ + "shape":"MediaInsightsPipeline", + "documentation":"

The media insights pipeline object.

" + } + } + }, "CreateMediaLiveConnectorPipelineRequest":{ "type":"structure", "required":[ @@ -687,11 +1111,11 @@ "members":{ "Sources":{ "shape":"LiveConnectorSourceList", - "documentation":"

The media pipeline's data sources.

" + "documentation":"

The media live connector pipeline's data sources.

" }, "Sinks":{ "shape":"LiveConnectorSinkList", - "documentation":"

The media pipeline's data sinks.

" + "documentation":"

The media live connector pipeline's data sinks.

" }, "ClientRequestToken":{ "shape":"ClientRequestToken", @@ -700,7 +1124,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

The tags associated with the media pipeline.

" + "documentation":"

The tags associated with the media live connector pipeline.

" } } }, @@ -709,7 +1133,7 @@ "members":{ "MediaLiveConnectorPipeline":{ "shape":"MediaLiveConnectorPipeline", - "documentation":"

The new media pipeline.

" + "documentation":"

The new media live connector pipeline.

" } } }, @@ -736,6 +1160,18 @@ } } }, + "DeleteMediaInsightsPipelineConfigurationRequest":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"NonEmptyString", + "documentation":"

The unique identifier of the resource to be deleted. Valid values include the name and ARN of the media insights pipeline configuration.

", + "location":"uri", + "locationName":"identifier" + } + } + }, "DeleteMediaPipelineRequest":{ "type":"structure", "required":["MediaPipelineId"], @@ -785,6 +1221,37 @@ "error":{"httpStatusCode":403}, "exception":true }, + "FragmentNumberString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[0-9]+$" + }, + "FragmentSelector":{ + "type":"structure", + "required":[ + "FragmentSelectorType", + "TimestampRange" + ], + "members":{ + "FragmentSelectorType":{ + "shape":"FragmentSelectorType", + "documentation":"

The origin of the timestamps to use, Server or Producer. For more information, see StartSelectorType in the Amazon Kinesis Video Streams Developer Guide.

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

The range of timestamps to return.

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

Describes the timestamp range and timestamp origin of a range of fragments.

Only fragments with a start timestamp greater than or equal to the given start time and less than or equal to the end time are returned. For example, say a stream contains fragments with the following start timestamps:

  • 00:00:00

  • 00:00:02

  • 00:00:04

  • 00:00:06

A fragment selector range with a start time of 00:00:01 and end time of 00:00:04 would return the fragments with start times of 00:00:02 and 00:00:04.

" + }, + "FragmentSelectorType":{ + "type":"string", + "enum":[ + "ProducerTimestamp", + "ServerTimestamp" + ] + }, "GetMediaCapturePipelineRequest":{ "type":"structure", "required":["MediaPipelineId"], @@ -806,6 +1273,27 @@ } } }, + "GetMediaInsightsPipelineConfigurationRequest":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"NonEmptyString", + "documentation":"

The unique identifier of the requested resource. Valid values include the name and ARN of the media insights pipeline configuration.

", + "location":"uri", + "locationName":"identifier" + } + } + }, + "GetMediaInsightsPipelineConfigurationResponse":{ + "type":"structure", + "members":{ + "MediaInsightsPipelineConfiguration":{ + "shape":"MediaInsightsPipelineConfiguration", + "documentation":"

The requested media insights pipeline configuration.

" + } + } + }, "GetMediaPipelineRequest":{ "type":"structure", "required":["MediaPipelineId"], @@ -852,14 +1340,126 @@ "type":"timestamp", "timestampFormat":"iso8601" }, - "LayoutOption":{ - "type":"string", - "enum":["GridView"] - }, - "ListMediaCapturePipelinesRequest":{ + "IssueDetectionConfiguration":{ "type":"structure", + "required":["RuleName"], "members":{ - "NextToken":{ + "RuleName":{ + "shape":"RuleName", + "documentation":"

The name of the issue detection rule.

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

A structure that contains the configuration settings for an issue detection task.

" + }, + "Keyword":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[\\s0-9a-zA-Z'-]+" + }, + "KeywordMatchConfiguration":{ + "type":"structure", + "required":[ + "RuleName", + "Keywords" + ], + "members":{ + "RuleName":{ + "shape":"RuleName", + "documentation":"

The name of the keyword match rule.

" + }, + "Keywords":{ + "shape":"KeywordMatchWordList", + "documentation":"

The keywords or phrases that you want to match.

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

Matches keywords or phrases on their presence or absence. If set to TRUE, the rule matches when all the specified keywords or phrases are absent. Default: FALSE.

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

A structure that contains the settings for a keyword match task.

" + }, + "KeywordMatchWordList":{ + "type":"list", + "member":{"shape":"Keyword"}, + "max":10, + "min":1 + }, + "KinesisDataStreamSinkConfiguration":{ + "type":"structure", + "members":{ + "InsightsTarget":{ + "shape":"Arn", + "documentation":"

The URL of the sink, https://aws.amazon.com/kinesis/data-streams/.

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

A structure that contains the configuration settings for a Kinesis Data Stream sink.

" + }, + "KinesisVideoStreamArn":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"arn:[a-z\\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+" + }, + "KinesisVideoStreamRecordingSourceRuntimeConfiguration":{ + "type":"structure", + "required":[ + "Streams", + "FragmentSelector" + ], + "members":{ + "Streams":{ + "shape":"RecordingStreamList", + "documentation":"

The stream or streams to be recorded.

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

Describes the timestamp range and timestamp origin of a range of fragments in the Kinesis video stream.

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

A structure that contains the runtime settings for recording a Kinesis video stream.

" + }, + "KinesisVideoStreamSourceRuntimeConfiguration":{ + "type":"structure", + "required":[ + "Streams", + "MediaEncoding", + "MediaSampleRate" + ], + "members":{ + "Streams":{ + "shape":"Streams", + "documentation":"

The streams in the source runtime configuration of a Kinesis video stream.

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

Specifies the encoding of your input audio. Supported format: PCM (only signed 16-bit little-endian audio formats, which does not include WAV)

For more information, see Media formats in the Amazon Transcribe Developer Guide.

" + }, + "MediaSampleRate":{ + "shape":"MediaSampleRateHertz", + "documentation":"

The sample rate of the input audio (in hertz). Low-quality audio, such as telephone audio, is typically around 8,000 Hz. High-quality audio typically ranges from 16,000 Hz to 48,000 Hz. Note that the sample rate you specify must match that of your audio.

Valid Range: Minimum value of 8000. Maximum value of 48000.

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

The runtime configuration settings for the Kinesis video stream source.

" + }, + "LambdaFunctionSinkConfiguration":{ + "type":"structure", + "members":{ + "InsightsTarget":{ + "shape":"Arn", + "documentation":"

The URL of the sink, https://aws.amazon.com/kinesis/data-streams/.

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

A structure that contains the configuration settings for an AWS Lambda function's data sink.

" + }, + "LayoutOption":{ + "type":"string", + "enum":["GridView"] + }, + "ListMediaCapturePipelinesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ "shape":"String", "documentation":"

The token used to retrieve the next page of results.

", "location":"querystring", @@ -886,6 +1486,36 @@ } } }, + "ListMediaInsightsPipelineConfigurationsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The token used to return the next page of results.

", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call.

", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListMediaInsightsPipelineConfigurationsResponse":{ + "type":"structure", + "members":{ + "MediaInsightsPipelineConfigurations":{ + "shape":"MediaInsightsPipelineConfigurationSummaryList", + "documentation":"

The requested list of media insights pipeline configurations.

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

The token used to return the next page of results.

" + } + } + }, "ListMediaPipelinesRequest":{ "type":"structure", "members":{ @@ -976,7 +1606,7 @@ }, "RTMPConfiguration":{ "shape":"LiveConnectorRTMPConfiguration", - "documentation":"

The sink configuration's RTMP configuration setttings.

" + "documentation":"

The sink configuration's RTMP configuration settings.

" } }, "documentation":"

The media pipeline's sink configuration settings.

" @@ -1114,7 +1744,7 @@ }, "Sources":{ "shape":"ConcatenationSourceList", - "documentation":"

The data sources being concatnated.

" + "documentation":"

The data sources being concatenated.

" }, "Sinks":{ "shape":"ConcatenationSinkList", @@ -1135,6 +1765,184 @@ }, "documentation":"

Concatenates audio and video data from one or more data streams.

" }, + "MediaEncoding":{ + "type":"string", + "enum":["pcm"] + }, + "MediaInsightsPipeline":{ + "type":"structure", + "members":{ + "MediaPipelineId":{ + "shape":"GuidString", + "documentation":"

The ID of a media insights pipeline.

" + }, + "MediaPipelineArn":{ + "shape":"Arn", + "documentation":"

The ARN of a media insights pipeline.

" + }, + "MediaInsightsPipelineConfigurationArn":{ + "shape":"Arn", + "documentation":"

The ARN of a media insight pipeline's configuration settings.

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

The status of a media insights pipeline.

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

The configuration settings for a Kinesis runtime video stream in a media insights pipeline.

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

The runtime metadata of a media insights pipeline.

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

The runtime configuration settings for a Kinesis recording video stream in a media insights pipeline.

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

The runtime configuration of the Amazon S3 bucket that stores recordings in a media insights pipeline.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the media insights pipeline was created.

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

A media pipeline that streams call analytics data.

" + }, + "MediaInsightsPipelineConfiguration":{ + "type":"structure", + "members":{ + "MediaInsightsPipelineConfigurationName":{ + "shape":"MediaInsightsPipelineConfigurationNameString", + "documentation":"

The name of the configuration.

" + }, + "MediaInsightsPipelineConfigurationArn":{ + "shape":"Arn", + "documentation":"

The ARN of the configuration.

" + }, + "ResourceAccessRoleArn":{ + "shape":"Arn", + "documentation":"

The ARN of the role used by the service to access Amazon Web Services resources.

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

Lists the rules that trigger a real-time alert.

" + }, + "Elements":{ + "shape":"MediaInsightsPipelineConfigurationElements", + "documentation":"

The elements in the configuration.

" + }, + "MediaInsightsPipelineConfigurationId":{ + "shape":"GuidString", + "documentation":"

The ID of the configuration.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the configuration was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the configuration was last updated.

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

A structure that contains the configuration settings for a media insights pipeline.

" + }, + "MediaInsightsPipelineConfigurationElement":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{ + "shape":"MediaInsightsPipelineConfigurationElementType", + "documentation":"

The element type.

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

The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.

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

The transcription processor configuration settings in a media insights pipeline configuration element.

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

The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.

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

The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.

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

The voice analytics configuration settings in a media insights pipeline configuration element.

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

The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.

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

The configuration settings for an SQS queue sink in a media insights pipeline configuration element.

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

The configuration settings for an SNS topic sink in a media insights pipeline configuration element.

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

An element in a media insights pipeline configuration.

" + }, + "MediaInsightsPipelineConfigurationElementType":{ + "type":"string", + "enum":[ + "AmazonTranscribeCallAnalyticsProcessor", + "VoiceAnalyticsProcessor", + "AmazonTranscribeProcessor", + "KinesisDataStreamSink", + "LambdaFunctionSink", + "SqsQueueSink", + "SnsTopicSink", + "S3RecordingSink" + ] + }, + "MediaInsightsPipelineConfigurationElements":{ + "type":"list", + "member":{"shape":"MediaInsightsPipelineConfigurationElement"} + }, + "MediaInsightsPipelineConfigurationNameString":{ + "type":"string", + "max":64, + "min":2, + "pattern":"^[0-9a-zA-Z._-]+" + }, + "MediaInsightsPipelineConfigurationSummary":{ + "type":"structure", + "members":{ + "MediaInsightsPipelineConfigurationName":{ + "shape":"MediaInsightsPipelineConfigurationNameString", + "documentation":"

The name of the media insights pipeline configuration.

" + }, + "MediaInsightsPipelineConfigurationId":{ + "shape":"GuidString", + "documentation":"

The ID of the media insights pipeline configuration.

" + }, + "MediaInsightsPipelineConfigurationArn":{ + "shape":"Arn", + "documentation":"

The ARN of the media insights pipeline configuration.

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

A summary of the media insights pipeline configuration.

" + }, + "MediaInsightsPipelineConfigurationSummaryList":{ + "type":"list", + "member":{"shape":"MediaInsightsPipelineConfigurationSummary"} + }, + "MediaInsightsRuntimeMetadata":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"String"}, + "sensitive":true + }, "MediaLiveConnectorPipeline":{ "type":"structure", "members":{ @@ -1160,7 +1968,7 @@ }, "CreatedTimestamp":{ "shape":"Iso8601Timestamp", - "documentation":"

Thetime at which the connector pipeline was created.

" + "documentation":"

The time at which the connector pipeline was created.

" }, "UpdatedTimestamp":{ "shape":"Iso8601Timestamp", @@ -1183,6 +1991,10 @@ "MediaConcatenationPipeline":{ "shape":"MediaConcatenationPipeline", "documentation":"

The media concatenation pipeline in a media pipeline.

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

The media insights pipeline of a media pipeline.

" } }, "documentation":"

A pipeline consisting of a media capture, media concatenation, or live-streaming pipeline.

" @@ -1206,7 +2018,15 @@ "InProgress", "Failed", "Stopping", - "Stopped" + "Stopped", + "Paused" + ] + }, + "MediaPipelineStatusUpdate":{ + "type":"string", + "enum":[ + "Pause", + "Resume" ] }, "MediaPipelineSummary":{ @@ -1223,6 +2043,11 @@ }, "documentation":"

The summary of the media pipeline.

" }, + "MediaSampleRateHertz":{ + "type":"integer", + "max":48000, + "min":8000 + }, "MeetingEventsConcatenationConfiguration":{ "type":"structure", "required":["State"], @@ -1234,6 +2059,17 @@ }, "documentation":"

The configuration object for an event concatenation pipeline.

" }, + "ModelName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[0-9a-zA-Z._-]+" + }, + "NonEmptyString":{ + "type":"string", + "max":1024, + "pattern":".*\\S.*" + }, "NotFoundException":{ "type":"structure", "members":{ @@ -1241,13 +2077,65 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

One or more of the resources in the request does not exist in the system.

", "error":{"httpStatusCode":404}, "exception":true }, + "NumberOfChannels":{ + "type":"integer", + "max":2, + "min":1 + }, + "PartialResultsStability":{ + "type":"string", + "enum":[ + "high", + "medium", + "low" + ] + }, + "ParticipantRole":{ + "type":"string", + "enum":[ + "AGENT", + "CUSTOMER" + ] + }, + "PiiEntityTypes":{ + "type":"string", + "max":300, + "min":1, + "pattern":"^[A-Z_, ]+" + }, + "PostCallAnalyticsSettings":{ + "type":"structure", + "required":[ + "OutputLocation", + "DataAccessRoleArn" + ], + "members":{ + "OutputLocation":{ + "shape":"String", + "documentation":"

The URL of the Amazon S3 bucket that contains the post-call data.

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

The ARN of the role used by Amazon Web Services Transcribe to upload your post call analysis. For more information, see Post-call analytics with real-time transcriptions in the Amazon Transcribe Developer Guide.

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

The content redaction output settings for a post-call analysis task.

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

The ID of the KMS (Key Management System) key used to encrypt the output.

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

The settings for a post-call voice analytics task.

" + }, "PresenterOnlyConfiguration":{ "type":"structure", "members":{ @@ -1267,6 +2155,80 @@ "BottomRight" ] }, + "RealTimeAlertConfiguration":{ + "type":"structure", + "members":{ + "Disabled":{ + "shape":"Boolean", + "documentation":"

Turns off real-time alerts.

" + }, + "Rules":{ + "shape":"RealTimeAlertRuleList", + "documentation":"

The rules in the alert. Rules specify the words or phrases that you want to be notified about.

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

A structure that contains the configuration settings for real-time alerts.

" + }, + "RealTimeAlertRule":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{ + "shape":"RealTimeAlertRuleType", + "documentation":"

The type of alert rule.

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

Specifies the settings for matching the keywords in a real-time alert rule.

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

Specifies the settings for predicting sentiment in a real-time alert rule.

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

Specifies the issue detection settings for a real-time alert rule.

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

Specifies the words or phrases that trigger an alert.

" + }, + "RealTimeAlertRuleList":{ + "type":"list", + "member":{"shape":"RealTimeAlertRule"}, + "max":3, + "min":1 + }, + "RealTimeAlertRuleType":{ + "type":"string", + "enum":[ + "KeywordMatch", + "Sentiment", + "IssueDetection" + ] + }, + "RecordingFileFormat":{ + "type":"string", + "enum":[ + "Wav", + "Opus" + ] + }, + "RecordingStreamConfiguration":{ + "type":"structure", + "members":{ + "StreamArn":{ + "shape":"KinesisVideoStreamArn", + "documentation":"

The ARN of the recording stream.

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

A structure the holds the settings for recording audio and video.

" + }, + "RecordingStreamList":{ + "type":"list", + "member":{"shape":"RecordingStreamConfiguration"}, + "max":2, + "min":2 + }, "ResolutionOption":{ "type":"string", "enum":[ @@ -1281,7 +2243,7 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

The request exceeds the resource limit.

", @@ -1293,6 +2255,12 @@ "max":100, "min":1 }, + "RuleName":{ + "type":"string", + "max":64, + "min":2, + "pattern":"^[0-9a-zA-Z._-]+" + }, "S3BucketSinkConfiguration":{ "type":"structure", "required":["Destination"], @@ -1304,6 +2272,34 @@ }, "documentation":"

The configuration settings for the S3 bucket.

" }, + "S3RecordingSinkConfiguration":{ + "type":"structure", + "members":{ + "Destination":{ + "shape":"Arn", + "documentation":"

The URL of the Amazon S3 bucket used as the recording sink.

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

The structure that holds the settings for transmitting audio and video to the Amazon S3 bucket.

" + }, + "S3RecordingSinkRuntimeConfiguration":{ + "type":"structure", + "required":[ + "Destination", + "RecordingFileFormat" + ], + "members":{ + "Destination":{ + "shape":"Arn", + "documentation":"

The URL of the S3 bucket used as the runtime sink.

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

The file formats for the audio and video files sent to the Amazon S3 bucket.

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

A structure that holds the settings for transmitting audio and video recordings to the runtime Amazon S3 bucket.

" + }, "SelectedVideoStreams":{ "type":"structure", "members":{ @@ -1324,6 +2320,38 @@ "min":1, "sensitive":true }, + "SentimentConfiguration":{ + "type":"structure", + "required":[ + "RuleName", + "SentimentType", + "TimePeriod" + ], + "members":{ + "RuleName":{ + "shape":"RuleName", + "documentation":"

The name of the rule in the sentiment configuration.

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

The type of sentiment, POSITIVE, NEGATIVE, or NEUTRAL.

" + }, + "TimePeriod":{ + "shape":"SentimentTimePeriodInSeconds", + "documentation":"

Specifies the analysis interval.

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

A structure that contains the configuration settings for a sentiment analysis task.

" + }, + "SentimentTimePeriodInSeconds":{ + "type":"integer", + "max":1800, + "min":60 + }, + "SentimentType":{ + "type":"string", + "enum":["NEGATIVE"] + }, "ServiceFailureException":{ "type":"structure", "members":{ @@ -1331,7 +2359,7 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

The service encountered an unexpected error.

", @@ -1346,7 +2374,7 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

The service is currently unavailable.

", @@ -1354,6 +2382,16 @@ "exception":true, "fault":true }, + "SnsTopicSinkConfiguration":{ + "type":"structure", + "members":{ + "InsightsTarget":{ + "shape":"Arn", + "documentation":"

The URL of the SNS sink, https://aws.amazon.com/kinesis/data-streams/.

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

The configuration settings for the SNS topic sink.

" + }, "SourceConfiguration":{ "type":"structure", "members":{ @@ -1364,6 +2402,59 @@ }, "documentation":"

Source configuration for a specified media pipeline.

" }, + "SqsQueueSinkConfiguration":{ + "type":"structure", + "members":{ + "InsightsTarget":{ + "shape":"Arn", + "documentation":"

The URL of the SQS sink, https://aws.amazon.com/kinesis/data-streams/.

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

The URL of the SQS sink.

" + }, + "StreamChannelDefinition":{ + "type":"structure", + "required":["NumberOfChannels"], + "members":{ + "NumberOfChannels":{ + "shape":"NumberOfChannels", + "documentation":"

The number of channels in a streaming channel.

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

The definitions of the channels in a streaming channel.

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

Defines a streaming channel.

" + }, + "StreamConfiguration":{ + "type":"structure", + "required":[ + "StreamArn", + "StreamChannelDefinition" + ], + "members":{ + "StreamArn":{ + "shape":"KinesisVideoStreamArn", + "documentation":"

The ARN of the stream.

" + }, + "FragmentNumber":{ + "shape":"FragmentNumberString", + "documentation":"

The unique identifier of the fragment to begin processing.

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

The streaming channel definition in the stream configuration.

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

The configuration settings for a stream.

" + }, + "Streams":{ + "type":"list", + "member":{"shape":"StreamConfiguration"}, + "max":2, + "min":1 + }, "String":{ "type":"string", "max":4096, @@ -1395,13 +2486,13 @@ "TagKeyList":{ "type":"list", "member":{"shape":"TagKey"}, - "max":50, + "max":200, "min":1 }, "TagList":{ "type":"list", "member":{"shape":"Tag"}, - "max":50, + "max":200, "min":1 }, "TagResourceRequest":{ @@ -1438,13 +2529,32 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

The client exceeded its request rate limit.

", "error":{"httpStatusCode":429}, "exception":true }, + "Timestamp":{"type":"timestamp"}, + "TimestampRange":{ + "type":"structure", + "required":[ + "StartTimestamp", + "EndTimestamp" + ], + "members":{ + "StartTimestamp":{ + "shape":"Timestamp", + "documentation":"

The starting timestamp for the specified range.

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

The ending timestamp for the specified range.

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

The range of timestamps to return.

" + }, "TranscriptionMessagesConcatenationConfiguration":{ "type":"structure", "required":["State"], @@ -1463,7 +2573,7 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

The client is not currently authorized to make the request.

", @@ -1492,6 +2602,62 @@ "members":{ } }, + "UpdateMediaInsightsPipelineConfigurationRequest":{ + "type":"structure", + "required":[ + "Identifier", + "ResourceAccessRoleArn", + "Elements" + ], + "members":{ + "Identifier":{ + "shape":"NonEmptyString", + "documentation":"

The unique identifier for the resource to be updated. Valid values include the name and ARN of the media insights pipeline configuration.

", + "location":"uri", + "locationName":"identifier" + }, + "ResourceAccessRoleArn":{ + "shape":"Arn", + "documentation":"

The ARN of the role used by the service to access Amazon Web Services resources.

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

The configuration settings for real-time alerts for the media insights pipeline.

" + }, + "Elements":{ + "shape":"MediaInsightsPipelineConfigurationElements", + "documentation":"

The elements in the request, such as a processor for Amazon Transcribe or a sink for a Kinesis Data Stream..

" + } + } + }, + "UpdateMediaInsightsPipelineConfigurationResponse":{ + "type":"structure", + "members":{ + "MediaInsightsPipelineConfiguration":{ + "shape":"MediaInsightsPipelineConfiguration", + "documentation":"

The updated configuration settings.

" + } + } + }, + "UpdateMediaInsightsPipelineStatusRequest":{ + "type":"structure", + "required":[ + "Identifier", + "UpdateStatus" + ], + "members":{ + "Identifier":{ + "shape":"NonEmptyString", + "documentation":"

The unique identifier of the resource to be updated. Valid values include the ID and ARN of the media insights pipeline.

", + "location":"uri", + "locationName":"identifier" + }, + "UpdateStatus":{ + "shape":"MediaPipelineStatusUpdate", + "documentation":"

The requested status of the media insights pipeline.

" + } + } + }, "VideoArtifactsConfiguration":{ "type":"structure", "required":["State"], @@ -1516,12 +2682,53 @@ "documentation":"

Enables or disables the configuration object.

" } }, - "documentation":"

The configuration object of a video contacatentation pipeline.

" + "documentation":"

The configuration object of a video concatenation pipeline.

" }, "VideoMuxType":{ "type":"string", "enum":["VideoOnly"] + }, + "VocabularyFilterMethod":{ + "type":"string", + "enum":[ + "remove", + "mask", + "tag" + ] + }, + "VocabularyFilterName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[0-9a-zA-Z._-]+" + }, + "VocabularyName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[0-9a-zA-Z._-]+" + }, + "VoiceAnalyticsConfigurationStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "VoiceAnalyticsProcessorConfiguration":{ + "type":"structure", + "members":{ + "SpeakerSearchStatus":{ + "shape":"VoiceAnalyticsConfigurationStatus", + "documentation":"

The status of the speaker search task.

" + }, + "VoiceToneAnalysisStatus":{ + "shape":"VoiceAnalyticsConfigurationStatus", + "documentation":"

The status of the voice tone analysis task.

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

The configuration settings for a voice analytics processor.

" } }, - "documentation":"

The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines that capture, concatenate, or stream your Amazon Chime SDK meetings. For more information about media pipleines, see Amazon Chime SDK media pipelines.

" + "documentation":"

The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines that capture, concatenate, or stream your Amazon Chime SDK meetings. For more information about media pipelines, see Amazon Chime SDK media pipelines.

" } diff --git a/services/chimesdkmeetings/pom.xml b/services/chimesdkmeetings/pom.xml index 506584111c84..f0a56f77dc80 100644 --- a/services/chimesdkmeetings/pom.xml +++ b/services/chimesdkmeetings/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT chimesdkmeetings AWS Java SDK :: Services :: Chime SDK Meetings diff --git a/services/chimesdkmessaging/pom.xml b/services/chimesdkmessaging/pom.xml index f0e26bd7fd8c..b1329cd6b4d5 100644 --- a/services/chimesdkmessaging/pom.xml +++ b/services/chimesdkmessaging/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT chimesdkmessaging AWS Java SDK :: Services :: Chime SDK Messaging diff --git a/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-rule-set.json index 6d8cac40c70a..998720ae9d50 100644 --- a/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://messaging-chime.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://messaging-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://messaging-chime.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-tests.json b/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-tests.json index 32f7604fdad1..f5ff02b055d7 100644 --- a/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/chimesdkmessaging/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,120 +1,294 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://messaging-chime-fips.eu-central-1.api.aws" + "url": "https://messaging-chime-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://messaging-chime-fips.eu-central-1.amazonaws.com" + "url": "https://messaging-chime.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://messaging-chime.eu-central-1.api.aws" + "url": "https://messaging-chime.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://messaging-chime.eu-central-1.amazonaws.com" + "url": "https://messaging-chime.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://messaging-chime-fips.us-east-1.api.aws" + "url": "https://messaging-chime-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://messaging-chime-fips.us-east-1.amazonaws.com" + "url": "https://messaging-chime-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://messaging-chime.us-east-1.api.aws" + "url": "https://messaging-chime.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://messaging-chime.us-east-1.amazonaws.com" + "url": "https://messaging-chime.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -124,9 +298,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -136,11 +310,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/chimesdkmessaging/src/main/resources/codegen-resources/service-2.json b/services/chimesdkmessaging/src/main/resources/codegen-resources/service-2.json index 016f8eb43cee..d254cc88b64f 100644 --- a/services/chimesdkmessaging/src/main/resources/codegen-resources/service-2.json +++ b/services/chimesdkmessaging/src/main/resources/codegen-resources/service-2.json @@ -29,7 +29,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Associates a channel flow with a channel. Once associated, all messages to that channel go through channel flow processors. To stop processing, use the DisassociateChannelFlow API.

Only administrators or channel moderators can associate a channel flow. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Associates a channel flow with a channel. Once associated, all messages to that channel go through channel flow processors. To stop processing, use the DisassociateChannelFlow API.

Only administrators or channel moderators can associate a channel flow. The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "BatchCreateChannelMembership":{ "name":"BatchCreateChannelMembership", @@ -50,7 +50,7 @@ {"shape":"ThrottledClientException"}, {"shape":"ResourceLimitExceededException"} ], - "documentation":"

Adds a specified number of users to a channel.

" + "documentation":"

Adds a specified number of users and bots to a channel.

" }, "ChannelFlowCallback":{ "name":"ChannelFlowCallback", @@ -91,7 +91,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a channel to which you can add users and send messages.

Restriction: You can't change a channel's privacy.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Creates a channel to which you can add users and send messages.

Restriction: You can't change a channel's privacy.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "CreateChannelBan":{ "name":"CreateChannelBan", @@ -112,7 +112,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Permanently bans a member from a channel. Moderators can't add banned members to a channel. To undo a ban, you first have to DeleteChannelBan, and then CreateChannelMembership. Bans are cleaned up when you delete users or channels.

If you ban a user who is already part of a channel, that user is automatically kicked from the channel.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Permanently bans a member from a channel. Moderators can't add banned members to a channel. To undo a ban, you first have to DeleteChannelBan, and then CreateChannelMembership. Bans are cleaned up when you delete users or channels.

If you ban a user who is already part of a channel, that user is automatically kicked from the channel.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "CreateChannelFlow":{ "name":"CreateChannelFlow", @@ -155,7 +155,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Adds a user to a channel. The InvitedBy field in ChannelMembership is derived from the request header. A channel member can:

  • List messages

  • Send messages

  • Receive messages

  • Edit their own messages

  • Leave the channel

Privacy settings impact this action as follows:

  • Public Channels: You do not need to be a member to list messages, but you must be a member to send messages.

  • Private Channels: You must be a member to list or send messages.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Adds a member to a channel. The InvitedBy field in ChannelMembership is derived from the request header. A channel member can:

  • List messages

  • Send messages

  • Receive messages

  • Edit their own messages

  • Leave the channel

Privacy settings impact this action as follows:

  • Public Channels: You do not need to be a member to list messages, but you must be a member to send messages.

  • Private Channels: You must be a member to list or send messages.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUserArn or AppInstanceBot that makes the API call as the value in the header.

" }, "CreateChannelModerator":{ "name":"CreateChannelModerator", @@ -176,7 +176,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a new ChannelModerator. A channel moderator can:

  • Add and remove other members of the channel.

  • Add and remove other moderators of the channel.

  • Add and remove user bans for the channel.

  • Redact messages in the channel.

  • List messages in the channel.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Creates a new ChannelModerator. A channel moderator can:

  • Add and remove other members of the channel.

  • Add and remove other moderators of the channel.

  • Add and remove user bans for the channel.

  • Redact messages in the channel.

  • List messages in the channel.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBotof the user that makes the API call as the value in the header.

" }, "DeleteChannel":{ "name":"DeleteChannel", @@ -194,7 +194,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Immediately makes a channel and its memberships inaccessible and marks them for deletion. This is an irreversible process.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Immediately makes a channel and its memberships inaccessible and marks them for deletion. This is an irreversible process.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUserArn or AppInstanceBot that makes the API call as the value in the header.

" }, "DeleteChannelBan":{ "name":"DeleteChannelBan", @@ -212,7 +212,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Removes a user from a channel's ban list.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Removes a member from a channel's ban list.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "DeleteChannelFlow":{ "name":"DeleteChannelFlow", @@ -268,7 +268,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes a channel message. Only admins can perform this action. Deletion makes messages inaccessible immediately. A background process deletes any revisions created by UpdateChannelMessage.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Deletes a channel message. Only admins can perform this action. Deletion makes messages inaccessible immediately. A background process deletes any revisions created by UpdateChannelMessage.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "DeleteChannelModerator":{ "name":"DeleteChannelModerator", @@ -286,7 +286,24 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes a channel moderator.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Deletes a channel moderator.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" + }, + "DeleteMessagingStreamingConfigurations":{ + "name":"DeleteMessagingStreamingConfigurations", + "http":{ + "method":"DELETE", + "requestUri":"/app-instances/{appInstanceArn}/streaming-configurations", + "responseCode":204 + }, + "input":{"shape":"DeleteMessagingStreamingConfigurationsRequest"}, + "errors":[ + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Deletes the streaming configurations for an AppInstance. For more information, see Streaming messaging data in the Amazon Chime SDK Developer Guide.

" }, "DescribeChannel":{ "name":"DescribeChannel", @@ -305,7 +322,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Returns the full details of a channel in an Amazon Chime AppInstance.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Returns the full details of a channel in an Amazon Chime AppInstance.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "DescribeChannelBan":{ "name":"DescribeChannelBan", @@ -325,7 +342,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Returns the full details of a channel ban.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Returns the full details of a channel ban.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "DescribeChannelFlow":{ "name":"DescribeChannelFlow", @@ -364,7 +381,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Returns the full details of a user's channel membership.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Returns the full details of a user's channel membership.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "DescribeChannelMembershipForAppInstanceUser":{ "name":"DescribeChannelMembershipForAppInstanceUser", @@ -383,7 +400,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Returns the details of a channel based on the membership of the specified AppInstanceUser.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Returns the details of a channel based on the membership of the specified AppInstanceUser or AppInstanceBot.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "DescribeChannelModeratedByAppInstanceUser":{ "name":"DescribeChannelModeratedByAppInstanceUser", @@ -402,7 +419,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Returns the full details of a channel moderated by the specified AppInstanceUser.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Returns the full details of a channel moderated by the specified AppInstanceUser or AppInstanceBot.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "DescribeChannelModerator":{ "name":"DescribeChannelModerator", @@ -442,7 +459,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Disassociates a channel flow from all its channels. Once disassociated, all messages to that channel stop going through the channel flow processor.

Only administrators or channel moderators can disassociate a channel flow. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Disassociates a channel flow from all its channels. Once disassociated, all messages to that channel stop going through the channel flow processor.

Only administrators or channel moderators can disassociate a channel flow.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "GetChannelMembershipPreferences":{ "name":"GetChannelMembershipPreferences", @@ -461,7 +478,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Gets the membership preferences of an AppInstanceUser for the specified channel. The AppInstanceUser must be a member of the channel. Only the AppInstanceUser who owns the membership can retrieve preferences. Users in the AppInstanceAdmin and channel moderator roles can't retrieve preferences for other users. Banned users can't retrieve membership preferences for the channel from which they are banned.

" + "documentation":"

Gets the membership preferences of an AppInstanceUser or AppInstanceBot for the specified channel. A user or a bot must be a member of the channel and own the membership to be able to retrieve membership preferences. Users or bots in the AppInstanceAdmin and channel moderator roles can't retrieve preferences for other users or bots. Banned users or bots can't retrieve membership preferences for the channel from which they are banned.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "GetChannelMessage":{ "name":"GetChannelMessage", @@ -481,7 +498,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Gets the full details of a channel message.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Gets the full details of a channel message.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "GetChannelMessageStatus":{ "name":"GetChannelMessageStatus", @@ -500,7 +517,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Gets message status for a specified messageId. Use this API to determine the intermediate status of messages going through channel flow processing. The API provides an alternative to retrieving message status if the event was not received because a client wasn't connected to a websocket.

Messages can have any one of these statuses.

SENT

Message processed successfully

PENDING

Ongoing processing

FAILED

Processing failed

DENIED

Messasge denied by the processor

  • This API does not return statuses for denied messages, because we don't store them once the processor denies them.

  • Only the message sender can invoke this API.

  • The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header

" + "documentation":"

Gets message status for a specified messageId. Use this API to determine the intermediate status of messages going through channel flow processing. The API provides an alternative to retrieving message status if the event was not received because a client wasn't connected to a websocket.

Messages can have any one of these statuses.

SENT

Message processed successfully

PENDING

Ongoing processing

FAILED

Processing failed

DENIED

Messasge denied by the processor

  • This API does not return statuses for denied messages, because we don't store them once the processor denies them.

  • Only the message sender can invoke this API.

  • The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "GetMessagingSessionEndpoint":{ "name":"GetMessagingSessionEndpoint", @@ -520,6 +537,26 @@ ], "documentation":"

The details of the endpoint for the messaging session.

" }, + "GetMessagingStreamingConfigurations":{ + "name":"GetMessagingStreamingConfigurations", + "http":{ + "method":"GET", + "requestUri":"/app-instances/{appInstanceArn}/streaming-configurations", + "responseCode":200 + }, + "input":{"shape":"GetMessagingStreamingConfigurationsRequest"}, + "output":{"shape":"GetMessagingStreamingConfigurationsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Retrieves the data streaming configuration for an AppInstance. For more information, see Streaming messaging data in the Amazon Chime SDK Developer Guide.

" + }, "ListChannelBans":{ "name":"ListChannelBans", "http":{ @@ -537,7 +574,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all the users banned from a particular channel.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Lists all the users and bots banned from a particular channel.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "ListChannelFlows":{ "name":"ListChannelFlows", @@ -575,7 +612,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all channel memberships in a channel.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

If you want to list the channels to which a specific app instance user belongs, see the ListChannelMembershipsForAppInstanceUser API.

" + "documentation":"

Lists all channel memberships in a channel.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

If you want to list the channels to which a specific app instance user belongs, see the ListChannelMembershipsForAppInstanceUser API.

" }, "ListChannelMembershipsForAppInstanceUser":{ "name":"ListChannelMembershipsForAppInstanceUser", @@ -594,7 +631,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all channels that a particular AppInstanceUser is a part of. Only an AppInstanceAdmin can call the API with a user ARN that is not their own.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Lists all channels that anr AppInstanceUser or AppInstanceBot is a part of. Only an AppInstanceAdmin can call the API with a user ARN that is not their own.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "ListChannelMessages":{ "name":"ListChannelMessages", @@ -613,7 +650,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

List all the messages in a channel. Returns a paginated list of ChannelMessages. By default, sorted by creation timestamp in descending order.

Redacted messages appear in the results as empty, since they are only redacted, not deleted. Deleted messages do not appear in the results. This action always returns the latest version of an edited message.

Also, the x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

List all the messages in a channel. Returns a paginated list of ChannelMessages. By default, sorted by creation timestamp in descending order.

Redacted messages appear in the results as empty, since they are only redacted, not deleted. Deleted messages do not appear in the results. This action always returns the latest version of an edited message.

Also, the x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "ListChannelModerators":{ "name":"ListChannelModerators", @@ -632,7 +669,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all the moderators for a channel.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Lists all the moderators for a channel.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "ListChannels":{ "name":"ListChannels", @@ -651,7 +688,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists all Channels created under a single Chime App as a paginated list. You can specify filters to narrow results.

Functionality & restrictions

  • Use privacy = PUBLIC to retrieve all public channels in the account.

  • Only an AppInstanceAdmin can set privacy = PRIVATE to list the private channels in an account.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Lists all Channels created under a single Chime App as a paginated list. You can specify filters to narrow results.

Functionality & restrictions

  • Use privacy = PUBLIC to retrieve all public channels in the account.

  • Only an AppInstanceAdmin can set privacy = PRIVATE to list the private channels in an account.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "ListChannelsAssociatedWithChannelFlow":{ "name":"ListChannelsAssociatedWithChannelFlow", @@ -689,7 +726,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

A list of the channels moderated by an AppInstanceUser.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

A list of the channels moderated by an AppInstanceUser.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "ListSubChannels":{ "name":"ListSubChannels", @@ -729,6 +766,26 @@ ], "documentation":"

Lists the tags applied to an Amazon Chime SDK messaging resource.

" }, + "PutChannelExpirationSettings":{ + "name":"PutChannelExpirationSettings", + "http":{ + "method":"PUT", + "requestUri":"/channels/{channelArn}/expiration-settings", + "responseCode":200 + }, + "input":{"shape":"PutChannelExpirationSettingsRequest"}, + "output":{"shape":"PutChannelExpirationSettingsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ConflictException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Sets the number of days before the channel is automatically deleted.

  • A background process deletes expired channels within 6 hours of expiration. Actual deletion times may vary.

  • Expired channels that have not yet been deleted appear as active, and you can update their expiration settings. The system honors the new settings.

  • The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" + }, "PutChannelMembershipPreferences":{ "name":"PutChannelMembershipPreferences", "http":{ @@ -747,7 +804,28 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Sets the membership preferences of an AppInstanceUser for the specified channel. The AppInstanceUser must be a member of the channel. Only the AppInstanceUser who owns the membership can set preferences. Users in the AppInstanceAdmin and channel moderator roles can't set preferences for other users. Banned users can't set membership preferences for the channel from which they are banned.

" + "documentation":"

Sets the membership preferences of an AppInstanceUser or AppIntanceBot for the specified channel. The user or bot must be a member of the channel. Only the user or bot who owns the membership can set preferences. Users or bots in the AppInstanceAdmin and channel moderator roles can't set preferences for other users or users. Banned users or bots can't set membership preferences for the channel from which they are banned.

The x-amz-chime-bearer request header is mandatory. Use the ARN of an AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" + }, + "PutMessagingStreamingConfigurations":{ + "name":"PutMessagingStreamingConfigurations", + "http":{ + "method":"PUT", + "requestUri":"/app-instances/{appInstanceArn}/streaming-configurations", + "responseCode":200 + }, + "input":{"shape":"PutMessagingStreamingConfigurationsRequest"}, + "output":{"shape":"PutMessagingStreamingConfigurationsResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Sets the data streaming configuration for an AppInstance. For more information, see Streaming messaging data in the Amazon Chime SDK Developer Guide.

" }, "RedactChannelMessage":{ "name":"RedactChannelMessage", @@ -767,7 +845,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Redacts message content, but not metadata. The message exists in the back end, but the action returns null content, and the state shows as redacted.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Redacts message content, but not metadata. The message exists in the back end, but the action returns null content, and the state shows as redacted.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "SearchChannels":{ "name":"SearchChannels", @@ -786,7 +864,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Allows ChimeBearer to search channels by channel members. AppInstanceUsers can search across the channels that they belong to. AppInstanceAdmins can search across all channels.

" + "documentation":"

Allows the ChimeBearer to search channels by channel members. Users or bots can search across the channels that they belong to. Users in the AppInstanceAdmin role can search across all channels.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "SendChannelMessage":{ "name":"SendChannelMessage", @@ -806,7 +884,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Sends a message to a particular channel that the member is a part of.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

Also, STANDARD messages can contain 4KB of data and the 1KB of metadata. CONTROL messages can contain 30 bytes of data and no metadata.

" + "documentation":"

Sends a message to a particular channel that the member is a part of.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

Also, STANDARD messages can contain 4KB of data and the 1KB of metadata. CONTROL messages can contain 30 bytes of data and no metadata.

" }, "TagResource":{ "name":"TagResource", @@ -863,7 +941,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Update a channel's attributes.

Restriction: You can't change a channel's privacy.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Update a channel's attributes.

Restriction: You can't change a channel's privacy.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "UpdateChannelFlow":{ "name":"UpdateChannelFlow", @@ -903,7 +981,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Updates the content of a message.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

Updates the content of a message.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" }, "UpdateChannelReadMarker":{ "name":"UpdateChannelReadMarker", @@ -923,7 +1001,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

The details of the time when a user last read messages in a channel.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" + "documentation":"

The details of the time when a user last read messages in a channel.

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

" } }, "shapes":{ @@ -998,7 +1076,7 @@ }, "Type":{ "shape":"ChannelMembershipType", - "documentation":"

The membership types set for the channel users.

" + "documentation":"

The membership types set for the channel members.

" }, "Members":{ "shape":"Members", @@ -1006,7 +1084,7 @@ }, "ChannelArn":{ "shape":"ChimeArn", - "documentation":"

The ARN of the channel to which you're adding users.

" + "documentation":"

The ARN of the channel to which you're adding members.

" }, "SubChannelId":{ "shape":"SubChannelId", @@ -1047,7 +1125,7 @@ "members":{ "ChannelArn":{ "shape":"ChimeArn", - "documentation":"

The ARN of the channel to which you're adding users.

", + "documentation":"

The ARN of the channel to which you're adding users or bots.

", "location":"uri", "locationName":"channelArn" }, @@ -1057,11 +1135,11 @@ }, "MemberArns":{ "shape":"MemberArns", - "documentation":"

The AppInstanceUserArns of the members you want to add to the channel.

" + "documentation":"

The ARNs of the members you want to add to the channel. Only AppInstanceUsers and AppInstanceBots can be added as a channel member.

" }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -1135,6 +1213,10 @@ "ElasticChannelConfiguration":{ "shape":"ElasticChannelConfiguration", "documentation":"

The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million members.

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

Settings that control when a channel expires.

" } }, "documentation":"

The details of a channel.

" @@ -1454,6 +1536,10 @@ "SubChannelId":{ "shape":"SubChannelId", "documentation":"

The ID of the SubChannel.

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

The content type of the channel message.

" } }, "documentation":"

The details of a message in a channel.

" @@ -1485,6 +1571,10 @@ "SubChannelId":{ "shape":"SubChannelId", "documentation":"

The ID of the SubChannel.

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

The content type of the call-back message.

" } }, "documentation":"

Stores information about a callback.

" @@ -1565,6 +1655,10 @@ "MessageAttributes":{ "shape":"MessageAttributeMap", "documentation":"

The message attribues listed in a the summary of a channel message.

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

The content type of the channel messsage listed in the summary.

" } }, "documentation":"

Summary of the messages in a Channel.

" @@ -1714,6 +1808,13 @@ "pattern":"[\\s\\S]*", "sensitive":true }, + "ContentType":{ + "type":"string", + "max":45, + "min":0, + "pattern":"[\\s\\S]*", + "sensitive":true + }, "CreateChannelBanRequest":{ "type":"structure", "required":[ @@ -1734,7 +1835,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -1818,7 +1919,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -1865,7 +1966,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -1924,7 +2025,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -1943,6 +2044,10 @@ "ElasticChannelConfiguration":{ "shape":"ElasticChannelConfiguration", "documentation":"

The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million users, excluding moderators.

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

Settings that control the interval after which the channel is automatically deleted.

" } } }, @@ -1977,7 +2082,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2017,7 +2122,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -2051,7 +2156,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -2085,7 +2190,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2106,7 +2211,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -2118,6 +2223,18 @@ } } }, + "DeleteMessagingStreamingConfigurationsRequest":{ + "type":"structure", + "required":["AppInstanceArn"], + "members":{ + "AppInstanceArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the streaming configurations being deleted.

", + "location":"uri", + "locationName":"appInstanceArn" + } + } + }, "DescribeChannelBanRequest":{ "type":"structure", "required":[ @@ -2140,7 +2257,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2192,13 +2309,13 @@ }, "AppInstanceUserArn":{ "shape":"ChimeArn", - "documentation":"

The ARN of the user in a channel.

", + "documentation":"

The ARN of the user or bot in a channel.

", "location":"querystring", "locationName":"app-instance-user-arn" }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2235,7 +2352,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -2272,13 +2389,13 @@ }, "AppInstanceUserArn":{ "shape":"ChimeArn", - "documentation":"

The ARN of the AppInstanceUser in the moderated channel.

", + "documentation":"

The ARN of the user or bot in the moderated channel.

", "location":"querystring", "locationName":"app-instance-user-arn" }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2315,7 +2432,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2345,7 +2462,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2431,6 +2548,36 @@ "PhoneNumberAssociationsExist" ] }, + "ExpirationCriterion":{ + "type":"string", + "enum":[ + "CREATED_TIMESTAMP", + "LAST_MESSAGE_TIMESTAMP" + ] + }, + "ExpirationDays":{ + "type":"integer", + "max":5475, + "min":1 + }, + "ExpirationSettings":{ + "type":"structure", + "required":[ + "ExpirationDays", + "ExpirationCriterion" + ], + "members":{ + "ExpirationDays":{ + "shape":"ExpirationDays", + "documentation":"

The period in days after which the system automatically deletes a channel.

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

The conditions that must be met for a channel to expire.

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

Settings that control the interval after which a channel is deleted.

" + }, "FallbackAction":{ "type":"string", "enum":[ @@ -2476,7 +2623,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserARN of the user making the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2521,7 +2668,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -2599,6 +2746,27 @@ } } }, + "GetMessagingStreamingConfigurationsRequest":{ + "type":"structure", + "required":["AppInstanceArn"], + "members":{ + "AppInstanceArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the streaming configurations.

", + "location":"uri", + "locationName":"appInstanceArn" + } + } + }, + "GetMessagingStreamingConfigurationsResponse":{ + "type":"structure", + "members":{ + "StreamingConfigurations":{ + "shape":"StreamingConfigurationList", + "documentation":"

The streaming settings.

" + } + } + }, "Identity":{ "type":"structure", "members":{ @@ -2611,7 +2779,7 @@ "documentation":"

The name in an Identity.

" } }, - "documentation":"

The details of a user.

" + "documentation":"

The details of a user or bot.

" }, "InvocationType":{ "type":"string", @@ -2668,7 +2836,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2734,7 +2902,7 @@ "members":{ "AppInstanceUserArn":{ "shape":"ChimeArn", - "documentation":"

The ARN of the AppInstanceUsers

", + "documentation":"

The ARN of the user or bot.

", "location":"querystring", "locationName":"app-instance-user-arn" }, @@ -2752,7 +2920,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -2804,7 +2972,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -2878,7 +3046,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -2938,7 +3106,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -3004,7 +3172,7 @@ "members":{ "AppInstanceUserArn":{ "shape":"ChimeArn", - "documentation":"

The ARN of the user in the moderated channel.

", + "documentation":"

The ARN of the user or bot in the moderated channel.

", "location":"querystring", "locationName":"app-instance-user-arn" }, @@ -3022,7 +3190,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -3074,7 +3242,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } @@ -3223,6 +3391,13 @@ "min":1, "pattern":"[-_a-zA-Z0-9]*" }, + "MessagingDataType":{ + "type":"string", + "enum":[ + "Channel", + "ChannelMessage" + ] + }, "MessagingSessionEndpoint":{ "type":"structure", "members":{ @@ -3324,7 +3499,7 @@ "PushNotificationBody":{ "type":"string", "max":150, - "min":0, + "min":1, "pattern":"[\\s\\S]*", "sensitive":true }, @@ -3364,7 +3539,7 @@ "PushNotificationTitle":{ "type":"string", "max":50, - "min":0, + "min":1, "pattern":".*", "sensitive":true }, @@ -3375,6 +3550,41 @@ "VOIP" ] }, + "PutChannelExpirationSettingsRequest":{ + "type":"structure", + "required":["ChannelArn"], + "members":{ + "ChannelArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the channel.

", + "location":"uri", + "locationName":"channelArn" + }, + "ChimeBearer":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", + "location":"header", + "locationName":"x-amz-chime-bearer" + }, + "ExpirationSettings":{ + "shape":"ExpirationSettings", + "documentation":"

Settings that control the interval after which a channel is deleted.

" + } + } + }, + "PutChannelExpirationSettingsResponse":{ + "type":"structure", + "members":{ + "ChannelArn":{ + "shape":"ChimeArn", + "documentation":"

The channel ARN.

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

Settings that control the interval after which a channel is deleted.

" + } + } + }, "PutChannelMembershipPreferencesRequest":{ "type":"structure", "required":[ @@ -3392,13 +3602,13 @@ }, "MemberArn":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the member setting the preferences.

", + "documentation":"

The ARN of the member setting the preferences.

", "location":"uri", "locationName":"memberArn" }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserARN of the user making the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -3425,6 +3635,34 @@ } } }, + "PutMessagingStreamingConfigurationsRequest":{ + "type":"structure", + "required":[ + "AppInstanceArn", + "StreamingConfigurations" + ], + "members":{ + "AppInstanceArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the streaming configuration.

", + "location":"uri", + "locationName":"appInstanceArn" + }, + "StreamingConfigurations":{ + "shape":"StreamingConfigurationList", + "documentation":"

The streaming configurations.

" + } + } + }, + "PutMessagingStreamingConfigurationsResponse":{ + "type":"structure", + "members":{ + "StreamingConfigurations":{ + "shape":"StreamingConfigurationList", + "documentation":"

The requested streaming configurations.

" + } + } + }, "RedactChannelMessageRequest":{ "type":"structure", "required":[ @@ -3447,7 +3685,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -3624,7 +3862,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -3639,6 +3877,10 @@ "SubChannelId":{ "shape":"SubChannelId", "documentation":"

The ID of the SubChannel in the request.

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

The content type of the channel message.

" } } }, @@ -3698,6 +3940,30 @@ "min":0, "pattern":"[\\s\\S]*" }, + "StreamingConfiguration":{ + "type":"structure", + "required":[ + "DataType", + "ResourceArn" + ], + "members":{ + "DataType":{ + "shape":"MessagingDataType", + "documentation":"

The data type of the configuration.

" + }, + "ResourceArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of the resource in the configuration.

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

The configuration for connecting a messaging stream to Amazon Kinesis.

" + }, + "StreamingConfigurationList":{ + "type":"list", + "member":{"shape":"StreamingConfiguration"}, + "max":2, + "min":1 + }, "String":{"type":"string"}, "SubChannelId":{ "type":"string", @@ -3862,6 +4128,7 @@ "required":[ "ChannelArn", "MessageId", + "Content", "ChimeBearer" ], "members":{ @@ -3878,7 +4145,7 @@ "locationName":"messageId" }, "Content":{ - "shape":"Content", + "shape":"NonEmptyContent", "documentation":"

The content of the message being updated.

" }, "Metadata":{ @@ -3887,13 +4154,17 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, "SubChannelId":{ "shape":"SubChannelId", "documentation":"

The ID of the SubChannel in the request.

Only required when updating messages in a SubChannel that the user belongs to.

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

The content type of the channel message.

" } } }, @@ -3933,7 +4204,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" }, @@ -3983,7 +4254,7 @@ }, "ChimeBearer":{ "shape":"ChimeArn", - "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", + "documentation":"

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" } diff --git a/services/chimesdkvoice/pom.xml b/services/chimesdkvoice/pom.xml index fb700b922fba..607544998ac6 100644 --- a/services/chimesdkvoice/pom.xml +++ b/services/chimesdkvoice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT chimesdkvoice AWS Java SDK :: Services :: Chime SDK Voice diff --git a/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-rule-set.json index a3e2b59aaa9e..70607cca0c34 100644 --- a/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://voice-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://voice-chime-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://voice-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://voice-chime.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-tests.json b/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-tests.json index 9150af502072..efca5932bf49 100644 --- a/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/chimesdkvoice/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { @@ -21,9 +21,9 @@ } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { @@ -34,9 +34,9 @@ } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { @@ -47,9 +47,9 @@ } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { @@ -60,9 +60,9 @@ } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": true } }, { @@ -73,9 +73,9 @@ } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": true } }, { @@ -86,9 +86,9 @@ } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" + "UseFIPS": false } }, { @@ -99,9 +99,9 @@ } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "UseFIPS": false } }, { @@ -110,9 +110,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseFIPS": true } }, { @@ -123,9 +123,9 @@ } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseFIPS": true } }, { @@ -134,9 +134,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { @@ -147,9 +147,9 @@ } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { @@ -160,9 +160,9 @@ } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { @@ -173,9 +173,9 @@ } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { @@ -186,9 +186,9 @@ } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { @@ -199,9 +199,9 @@ } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { @@ -210,9 +210,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-isob-east-1" + "UseFIPS": true } }, { @@ -223,9 +223,9 @@ } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" + "UseFIPS": true } }, { @@ -234,9 +234,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-isob-east-1" + "UseFIPS": false } }, { @@ -247,9 +247,9 @@ } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "UseFIPS": false } }, { @@ -260,9 +260,9 @@ } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -272,9 +272,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -284,9 +284,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/chimesdkvoice/src/main/resources/codegen-resources/paginators-1.json b/services/chimesdkvoice/src/main/resources/codegen-resources/paginators-1.json index c4bd02906ba9..9468bfaf124f 100644 --- a/services/chimesdkvoice/src/main/resources/codegen-resources/paginators-1.json +++ b/services/chimesdkvoice/src/main/resources/codegen-resources/paginators-1.json @@ -37,6 +37,16 @@ "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListVoiceProfileDomains": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListVoiceProfiles": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "SearchAvailablePhoneNumbers": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/chimesdkvoice/src/main/resources/codegen-resources/service-2.json b/services/chimesdkvoice/src/main/resources/codegen-resources/service-2.json index 28a447516e7b..5cbb54463d98 100644 --- a/services/chimesdkvoice/src/main/resources/codegen-resources/service-2.json +++ b/services/chimesdkvoice/src/main/resources/codegen-resources/service-2.json @@ -29,7 +29,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Associates phone numbers with the specified Amazon Chime SDK Voice Connector.

" }, "AssociatePhoneNumbersWithVoiceConnectorGroup":{ "name":"AssociatePhoneNumbersWithVoiceConnectorGroup", @@ -49,7 +50,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Associates phone numbers with the specified Amazon Chime SDK Voice Connector group.

" }, "BatchDeletePhoneNumber":{ "name":"BatchDeletePhoneNumber", @@ -68,7 +70,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Moves phone numbers into the Deletion queue. Phone numbers must be disassociated from any users or Amazon Chime SDK Voice Connectors before they can be deleted.

Phone numbers remain in the Deletion queue for 7 days before they are deleted permanently.

" }, "BatchUpdatePhoneNumber":{ "name":"BatchUpdatePhoneNumber", @@ -87,7 +90,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates one or more phone numbers.

" }, "CreatePhoneNumberOrder":{ "name":"CreatePhoneNumberOrder", @@ -107,7 +111,8 @@ {"shape":"ResourceLimitExceededException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Creates an order for phone numbers to be provisioned. For numbers outside the U.S., you must use the Amazon Chime SDK SIP media application dial-in product type.

" }, "CreateProxySession":{ "name":"CreateProxySession", @@ -126,7 +131,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Creates a proxy session for the specified Amazon Chime SDK Voice Connector for the specified participant phone numbers.

" }, "CreateSipMediaApplication":{ "name":"CreateSipMediaApplication", @@ -147,7 +153,8 @@ {"shape":"ConflictException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Creates a SIP media application. For more information about SIP media applications, see Managing SIP media applications and rules in the Amazon Chime SDK Administrator Guide.

" }, "CreateSipMediaApplicationCall":{ "name":"CreateSipMediaApplicationCall", @@ -167,7 +174,8 @@ {"shape":"AccessDeniedException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Creates an outbound call to a phone number from the phone number specified in the request, and it invokes the endpoint of the specified sipMediaApplicationId.

" }, "CreateSipRule":{ "name":"CreateSipRule", @@ -188,7 +196,8 @@ {"shape":"ConflictException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Creates a SIP rule, which can be used to run a SIP media application as a target for a specific trigger type. For more information about SIP rules, see Managing SIP media applications and rules in the Amazon Chime SDK Administrator Guide.

" }, "CreateVoiceConnector":{ "name":"CreateVoiceConnector", @@ -208,7 +217,8 @@ {"shape":"ResourceLimitExceededException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Creates an Amazon Chime SDK Voice Connector. For more information about Voice Connectors, see Managing Amazon Chime SDK Voice Connector groups in the Amazon Chime SDK Administrator Guide.

" }, "CreateVoiceConnectorGroup":{ "name":"CreateVoiceConnectorGroup", @@ -228,7 +238,54 @@ {"shape":"ResourceLimitExceededException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Creates an Amazon Chime SDK Voice Connector group under the administrator's AWS account. You can associate Amazon Chime SDK Voice Connectors with the Voice Connector group by including VoiceConnectorItems in the request.

You can include Voice Connectors from different AWS Regions in your group. This creates a fault tolerant mechanism for fallback in case of availability events.

" + }, + "CreateVoiceProfile":{ + "name":"CreateVoiceProfile", + "http":{ + "method":"POST", + "requestUri":"/voice-profiles", + "responseCode":201 + }, + "input":{"shape":"CreateVoiceProfileRequest"}, + "output":{"shape":"CreateVoiceProfileResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"GoneException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Creates a voice profile, which consists of an enrolled user and their latest voice print.

Before creating any voice profiles, you must provide all notices and obtain all consents from the speaker as required under applicable privacy and biometrics laws, and as required under the AWS service terms for the Amazon Chime SDK.

For more information about voice profiles and voice analytics, see Using Amazon Chime SDK Voice Analytics in the Amazon Chime SDK Developer Guide.

" + }, + "CreateVoiceProfileDomain":{ + "name":"CreateVoiceProfileDomain", + "http":{ + "method":"POST", + "requestUri":"/voice-profile-domains", + "responseCode":201 + }, + "input":{"shape":"CreateVoiceProfileDomainRequest"}, + "output":{"shape":"CreateVoiceProfileDomainResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Creates a voice profile domain, a collection of voice profiles, their voice prints, and encrypted enrollment audio.

Before creating any voice profiles, you must provide all notices and obtain all consents from the speaker as required under applicable privacy and biometrics laws, and as required under the AWS service terms for the Amazon Chime SDK.

For more information about voice profile domains, see Using Amazon Chime SDK Voice Analytics in the Amazon Chime SDK Developer Guide.

" }, "DeletePhoneNumber":{ "name":"DeletePhoneNumber", @@ -246,7 +303,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Moves the specified phone number into the Deletion queue. A phone number must be disassociated from any users or Amazon Chime SDK Voice Connectors before it can be deleted.

Deleted phone numbers remain in the Deletion queue queue for 7 days before they are deleted permanently.

" }, "DeleteProxySession":{ "name":"DeleteProxySession", @@ -264,7 +322,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes the specified proxy session from the specified Amazon Chime SDK Voice Connector.

" }, "DeleteSipMediaApplication":{ "name":"DeleteSipMediaApplication", @@ -283,7 +342,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes a SIP media application.

" }, "DeleteSipRule":{ "name":"DeleteSipRule", @@ -302,7 +362,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes a SIP rule.

" }, "DeleteVoiceConnector":{ "name":"DeleteVoiceConnector", @@ -321,7 +382,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes an Amazon Chime SDK Voice Connector. Any phone numbers associated with the Amazon Chime SDK Voice Connector must be disassociated from it before it can be deleted.

" }, "DeleteVoiceConnectorEmergencyCallingConfiguration":{ "name":"DeleteVoiceConnectorEmergencyCallingConfiguration", @@ -339,7 +401,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes the emergency calling details from the specified Amazon Chime SDK Voice Connector.

" }, "DeleteVoiceConnectorGroup":{ "name":"DeleteVoiceConnectorGroup", @@ -358,7 +421,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes an Amazon Chime SDK Voice Connector group. Any VoiceConnectorItems and phone numbers associated with the group must be removed before it can be deleted.

" }, "DeleteVoiceConnectorOrigination":{ "name":"DeleteVoiceConnectorOrigination", @@ -376,7 +440,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes the origination settings for the specified Amazon Chime SDK Voice Connector.

If emergency calling is configured for the Voice Connector, it must be deleted prior to deleting the origination settings.

" }, "DeleteVoiceConnectorProxy":{ "name":"DeleteVoiceConnectorProxy", @@ -394,7 +459,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes the proxy configuration from the specified Amazon Chime SDK Voice Connector.

" }, "DeleteVoiceConnectorStreamingConfiguration":{ "name":"DeleteVoiceConnectorStreamingConfiguration", @@ -412,7 +478,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes a Voice Connector's streaming configuration.

" }, "DeleteVoiceConnectorTermination":{ "name":"DeleteVoiceConnectorTermination", @@ -430,7 +497,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes the termination settings for the specified Amazon Chime SDK Voice Connector.

If emergency calling is configured for the Voice Connector, it must be deleted prior to deleting the termination settings.

" }, "DeleteVoiceConnectorTerminationCredentials":{ "name":"DeleteVoiceConnectorTerminationCredentials", @@ -448,7 +516,50 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Deletes the specified SIP credentials used by your equipment to authenticate during call termination.

" + }, + "DeleteVoiceProfile":{ + "name":"DeleteVoiceProfile", + "http":{ + "method":"DELETE", + "requestUri":"/voice-profiles/{VoiceProfileId}", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceProfileRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Deletes a voice profile, including its voice print and enrollment data. WARNING: This action is not reversible.

" + }, + "DeleteVoiceProfileDomain":{ + "name":"DeleteVoiceProfileDomain", + "http":{ + "method":"DELETE", + "requestUri":"/voice-profile-domains/{VoiceProfileDomainId}", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceProfileDomainRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Deletes all voice profiles in the domain. WARNING: This action is not reversible.

" }, "DisassociatePhoneNumbersFromVoiceConnector":{ "name":"DisassociatePhoneNumbersFromVoiceConnector", @@ -467,7 +578,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Disassociates the specified phone numbers from the specified Amazon Chime SDK Voice Connector.

" }, "DisassociatePhoneNumbersFromVoiceConnectorGroup":{ "name":"DisassociatePhoneNumbersFromVoiceConnectorGroup", @@ -486,7 +598,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Disassociates the specified phone numbers from the specified Amazon Chime SDK Voice Connector group.

" }, "GetGlobalSettings":{ "name":"GetGlobalSettings", @@ -503,7 +616,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the global settings for the Amazon Chime SDK Voice Connectors in an AWS account.

" }, "GetPhoneNumber":{ "name":"GetPhoneNumber", @@ -521,7 +635,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves details for the specified phone number ID, such as associations, capabilities, and product type.

" }, "GetPhoneNumberOrder":{ "name":"GetPhoneNumberOrder", @@ -540,7 +655,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves details for the specified phone number order, such as the order creation timestamp, phone numbers in E.164 format, product type, and order status.

" }, "GetPhoneNumberSettings":{ "name":"GetPhoneNumberSettings", @@ -557,7 +673,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the phone number settings for the administrator's AWS account, such as the default outbound calling name.

" }, "GetProxySession":{ "name":"GetProxySession", @@ -576,7 +693,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the specified proxy session details for the specified Amazon Chime SDK Voice Connector.

" }, "GetSipMediaApplication":{ "name":"GetSipMediaApplication", @@ -595,7 +713,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the information for a SIP media application, including name, AWS Region, and endpoints.

" }, "GetSipMediaApplicationAlexaSkillConfiguration":{ "name":"GetSipMediaApplicationAlexaSkillConfiguration", @@ -614,7 +733,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Gets the Alexa Skill configuration for the SIP media application.

" }, "GetSipMediaApplicationLoggingConfiguration":{ "name":"GetSipMediaApplicationLoggingConfiguration", @@ -633,7 +753,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the logging configuration for the specified SIP media application.

" }, "GetSipRule":{ "name":"GetSipRule", @@ -652,7 +773,30 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the details of a SIP rule, such as the rule ID, name, triggers, and target endpoints.

" + }, + "GetSpeakerSearchTask":{ + "name":"GetSpeakerSearchTask", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{VoiceConnectorId}/speaker-search-tasks/{SpeakerSearchTaskId}", + "responseCode":200 + }, + "input":{"shape":"GetSpeakerSearchTaskRequest"}, + "output":{"shape":"GetSpeakerSearchTaskResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceFailureException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Retrieves the details of the specified speaker search task.

" }, "GetVoiceConnector":{ "name":"GetVoiceConnector", @@ -671,7 +815,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves details for the specified Amazon Chime SDK Voice Connector, such as timestamps,name, outbound host, and encryption requirements.

" }, "GetVoiceConnectorEmergencyCallingConfiguration":{ "name":"GetVoiceConnectorEmergencyCallingConfiguration", @@ -690,7 +835,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the emergency calling configuration details for the specified Voice Connector.

" }, "GetVoiceConnectorGroup":{ "name":"GetVoiceConnectorGroup", @@ -709,7 +855,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves details for the specified Amazon Chime SDK Voice Connector group, such as timestamps,name, and associated VoiceConnectorItems.

" }, "GetVoiceConnectorLoggingConfiguration":{ "name":"GetVoiceConnectorLoggingConfiguration", @@ -728,7 +875,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the logging configuration settings for the specified Voice Connector. Shows whether SIP message logs are enabled for sending to Amazon CloudWatch Logs.

" }, "GetVoiceConnectorOrigination":{ "name":"GetVoiceConnectorOrigination", @@ -747,7 +895,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the origination settings for the specified Voice Connector.

" }, "GetVoiceConnectorProxy":{ "name":"GetVoiceConnectorProxy", @@ -766,7 +915,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the proxy configuration details for the specified Amazon Chime SDK Voice Connector.

" }, "GetVoiceConnectorStreamingConfiguration":{ "name":"GetVoiceConnectorStreamingConfiguration", @@ -785,7 +935,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the streaming configuration details for the specified Amazon Chime SDK Voice Connector. Shows whether media streaming is enabled for sending to Amazon Kinesis. It also shows the retention period, in hours, for the Amazon Kinesis data.

" }, "GetVoiceConnectorTermination":{ "name":"GetVoiceConnectorTermination", @@ -804,7 +955,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves the termination setting details for the specified Voice Connector.

" }, "GetVoiceConnectorTerminationHealth":{ "name":"GetVoiceConnectorTerminationHealth", @@ -823,7 +975,72 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Retrieves information about the last time a SIP OPTIONS ping was received from your SIP infrastructure for the specified Amazon Chime SDK Voice Connector.

" + }, + "GetVoiceProfile":{ + "name":"GetVoiceProfile", + "http":{ + "method":"GET", + "requestUri":"/voice-profiles/{VoiceProfileId}", + "responseCode":200 + }, + "input":{"shape":"GetVoiceProfileRequest"}, + "output":{"shape":"GetVoiceProfileResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Retrieves the details of the specified voice profile.

" + }, + "GetVoiceProfileDomain":{ + "name":"GetVoiceProfileDomain", + "http":{ + "method":"GET", + "requestUri":"/voice-profile-domains/{VoiceProfileDomainId}", + "responseCode":200 + }, + "input":{"shape":"GetVoiceProfileDomainRequest"}, + "output":{"shape":"GetVoiceProfileDomainResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Retrieves the details of the specified voice profile domain.

" + }, + "GetVoiceToneAnalysisTask":{ + "name":"GetVoiceToneAnalysisTask", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{VoiceConnectorId}/voice-tone-analysis-tasks/{VoiceToneAnalysisTaskId}", + "responseCode":200 + }, + "input":{"shape":"GetVoiceToneAnalysisTaskRequest"}, + "output":{"shape":"GetVoiceToneAnalysisTaskResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceFailureException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Retrieves the details of a voice tone analysis task.

" }, "ListAvailableVoiceConnectorRegions":{ "name":"ListAvailableVoiceConnectorRegions", @@ -840,7 +1057,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the available AWS Regions in which you can create an Amazon Chime SDK Voice Connector.

" }, "ListPhoneNumberOrders":{ "name":"ListPhoneNumberOrders", @@ -858,7 +1076,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the phone numbers for an administrator's Amazon Chime SDK account.

" }, "ListPhoneNumbers":{ "name":"ListPhoneNumbers", @@ -876,7 +1095,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the phone numbers for the specified Amazon Chime SDK account, Amazon Chime SDK user, Amazon Chime SDK Voice Connector, or Amazon Chime SDK Voice Connector group.

" }, "ListProxySessions":{ "name":"ListProxySessions", @@ -895,7 +1115,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the proxy sessions for the specified Amazon Chime SDK Voice Connector.

" }, "ListSipMediaApplications":{ "name":"ListSipMediaApplications", @@ -913,7 +1134,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the SIP media applications under the administrator's AWS account.

" }, "ListSipRules":{ "name":"ListSipRules", @@ -931,7 +1153,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the SIP rules under the administrator's AWS account.

" }, "ListSupportedPhoneNumberCountries":{ "name":"ListSupportedPhoneNumberCountries", @@ -950,7 +1173,26 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the countries that you can order phone numbers from.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Returns a list of the tags in a given resource.

" }, "ListVoiceConnectorGroups":{ "name":"ListVoiceConnectorGroups", @@ -968,7 +1210,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the Amazon Chime SDK Voice Connector groups in the administrator's AWS account.

" }, "ListVoiceConnectorTerminationCredentials":{ "name":"ListVoiceConnectorTerminationCredentials", @@ -987,7 +1230,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the SIP credentials for the specified Amazon Chime SDK Voice Connector.

" }, "ListVoiceConnectors":{ "name":"ListVoiceConnectors", @@ -1005,32 +1249,74 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the Amazon Chime SDK Voice Connectors in the administrators AWS account.

" }, - "PutSipMediaApplicationAlexaSkillConfiguration":{ - "name":"PutSipMediaApplicationAlexaSkillConfiguration", + "ListVoiceProfileDomains":{ + "name":"ListVoiceProfileDomains", "http":{ - "method":"PUT", - "requestUri":"/sip-media-applications/{sipMediaApplicationId}/alexa-skill-configuration", + "method":"GET", + "requestUri":"/voice-profile-domains", "responseCode":200 }, - "input":{"shape":"PutSipMediaApplicationAlexaSkillConfigurationRequest"}, - "output":{"shape":"PutSipMediaApplicationAlexaSkillConfigurationResponse"}, + "input":{"shape":"ListVoiceProfileDomainsRequest"}, + "output":{"shape":"ListVoiceProfileDomainsResponse"}, "errors":[ - {"shape":"UnauthorizedClientException"}, {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, {"shape":"ForbiddenException"}, {"shape":"BadRequestException"}, {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Lists the specified voice profile domains in the administrator's AWS account.

" }, - "PutSipMediaApplicationLoggingConfiguration":{ - "name":"PutSipMediaApplicationLoggingConfiguration", + "ListVoiceProfiles":{ + "name":"ListVoiceProfiles", "http":{ - "method":"PUT", - "requestUri":"/sip-media-applications/{sipMediaApplicationId}/logging-configuration", + "method":"GET", + "requestUri":"/voice-profiles", + "responseCode":200 + }, + "input":{"shape":"ListVoiceProfilesRequest"}, + "output":{"shape":"ListVoiceProfilesResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Lists the voice profiles in a voice profile domain.

" + }, + "PutSipMediaApplicationAlexaSkillConfiguration":{ + "name":"PutSipMediaApplicationAlexaSkillConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/alexa-skill-configuration", + "responseCode":200 + }, + "input":{"shape":"PutSipMediaApplicationAlexaSkillConfigurationRequest"}, + "output":{"shape":"PutSipMediaApplicationAlexaSkillConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Updates the Alexa Skill configuration for the SIP media application.

" + }, + "PutSipMediaApplicationLoggingConfiguration":{ + "name":"PutSipMediaApplicationLoggingConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/logging-configuration", "responseCode":200 }, "input":{"shape":"PutSipMediaApplicationLoggingConfigurationRequest"}, @@ -1043,7 +1329,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates the logging configuration for the specified SIP media application.

" }, "PutVoiceConnectorEmergencyCallingConfiguration":{ "name":"PutVoiceConnectorEmergencyCallingConfiguration", @@ -1062,7 +1349,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates a Voice Connector's emergency calling configuration.

" }, "PutVoiceConnectorLoggingConfiguration":{ "name":"PutVoiceConnectorLoggingConfiguration", @@ -1081,7 +1369,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates a Voice Connector's logging configuration.

" }, "PutVoiceConnectorOrigination":{ "name":"PutVoiceConnectorOrigination", @@ -1100,7 +1389,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates a Voice Connector's origination settings.

" }, "PutVoiceConnectorProxy":{ "name":"PutVoiceConnectorProxy", @@ -1119,7 +1409,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Puts the specified proxy configuration to the specified Amazon Chime SDK Voice Connector.

" }, "PutVoiceConnectorStreamingConfiguration":{ "name":"PutVoiceConnectorStreamingConfiguration", @@ -1138,7 +1429,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates a Voice Connector's streaming configuration settings.

" }, "PutVoiceConnectorTermination":{ "name":"PutVoiceConnectorTermination", @@ -1158,7 +1450,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates a Voice Connector's termination settings.

" }, "PutVoiceConnectorTerminationCredentials":{ "name":"PutVoiceConnectorTerminationCredentials", @@ -1176,7 +1469,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates a Voice Connector's termination credentials.

" }, "RestorePhoneNumber":{ "name":"RestorePhoneNumber", @@ -1196,7 +1490,8 @@ {"shape":"ResourceLimitExceededException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Restores a deleted phone number.

" }, "SearchAvailablePhoneNumbers":{ "name":"SearchAvailablePhoneNumbers", @@ -1214,7 +1509,139 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Searches the provisioned phone numbers in an organization.

" + }, + "StartSpeakerSearchTask":{ + "name":"StartSpeakerSearchTask", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{VoiceConnectorId}/speaker-search-tasks", + "responseCode":201 + }, + "input":{"shape":"StartSpeakerSearchTaskRequest"}, + "output":{"shape":"StartSpeakerSearchTaskResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"GoneException"}, + {"shape":"UnprocessableEntityException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Starts a speaker search task.

Before starting any speaker search tasks, you must provide all notices and obtain all consents from the speaker as required under applicable privacy and biometrics laws, and as required under the AWS service terms for the Amazon Chime SDK.

" + }, + "StartVoiceToneAnalysisTask":{ + "name":"StartVoiceToneAnalysisTask", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{VoiceConnectorId}/voice-tone-analysis-tasks", + "responseCode":201 + }, + "input":{"shape":"StartVoiceToneAnalysisTaskRequest"}, + "output":{"shape":"StartVoiceToneAnalysisTaskResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"GoneException"}, + {"shape":"UnprocessableEntityException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Starts a voice tone analysis task. For more information about voice tone analysis, see Using Amazon Chime SDK voice analytics in the Amazon Chime SDK Developer Guide.

Before starting any voice tone analysis tasks, you must provide all notices and obtain all consents from the speaker as required under applicable privacy and biometrics laws, and as required under the AWS service terms for the Amazon Chime SDK.

" + }, + "StopSpeakerSearchTask":{ + "name":"StopSpeakerSearchTask", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{VoiceConnectorId}/speaker-search-tasks/{SpeakerSearchTaskId}?operation=stop", + "responseCode":204 + }, + "input":{"shape":"StopSpeakerSearchTaskRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"UnprocessableEntityException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Stops a speaker search task.

" + }, + "StopVoiceToneAnalysisTask":{ + "name":"StopVoiceToneAnalysisTask", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{VoiceConnectorId}/voice-tone-analysis-tasks/{VoiceToneAnalysisTaskId}?operation=stop", + "responseCode":204 + }, + "input":{"shape":"StopVoiceToneAnalysisTaskRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"UnprocessableEntityException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Stops a voice tone analysis task.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags?operation=tag-resource", + "responseCode":204 + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Adds a tag to the specified resource.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/tags?operation=untag-resource", + "responseCode":204 + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Removes tags from a resource.

" }, "UpdateGlobalSettings":{ "name":"UpdateGlobalSettings", @@ -1231,7 +1658,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates global settings for the Amazon Chime SDK Voice Connectors in an AWS account.

" }, "UpdatePhoneNumber":{ "name":"UpdatePhoneNumber", @@ -1251,7 +1679,8 @@ {"shape":"ConflictException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates phone number details, such as product type or calling name, for the specified phone number ID. You can update one phone number detail at a time. For example, you can update either the product type or the calling name in one action.

For numbers outside the U.S., you must use the Amazon Chime SDK SIP Media Application Dial-In product type.

Updates to outbound calling names can take 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update.

" }, "UpdatePhoneNumberSettings":{ "name":"UpdatePhoneNumberSettings", @@ -1268,7 +1697,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates the phone number settings for the administrator's AWS account, such as the default outbound calling name. You can update the default outbound calling name once every seven days. Outbound calling names can take up to 72 hours to update.

" }, "UpdateProxySession":{ "name":"UpdateProxySession", @@ -1287,7 +1717,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates the specified proxy session details, such as voice or SMS capabilities.

" }, "UpdateSipMediaApplication":{ "name":"UpdateSipMediaApplication", @@ -1307,7 +1738,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates the details of the specified SIP media application.

" }, "UpdateSipMediaApplicationCall":{ "name":"UpdateSipMediaApplicationCall", @@ -1327,7 +1759,8 @@ {"shape":"UnauthorizedClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Invokes the AWS Lambda function associated with the SIP media application and transaction ID in an update request. The Lambda function can then return a new set of actions.

" }, "UpdateSipRule":{ "name":"UpdateSipRule", @@ -1348,7 +1781,8 @@ {"shape":"ResourceLimitExceededException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates the details of the specified SIP rule.

" }, "UpdateVoiceConnector":{ "name":"UpdateVoiceConnector", @@ -1367,7 +1801,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates the details for the specified Amazon Chime SDK Voice Connector.

" }, "UpdateVoiceConnectorGroup":{ "name":"UpdateVoiceConnectorGroup", @@ -1387,7 +1822,52 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Updates the settings for the specified Amazon Chime SDK Voice Connector group.

" + }, + "UpdateVoiceProfile":{ + "name":"UpdateVoiceProfile", + "http":{ + "method":"PUT", + "requestUri":"/voice-profiles/{VoiceProfileId}", + "responseCode":200 + }, + "input":{"shape":"UpdateVoiceProfileRequest"}, + "output":{"shape":"UpdateVoiceProfileResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"GoneException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Updates the specified voice profile’s voice print and refreshes its expiration timestamp.

As a condition of using this feature, you acknowledge that the collection, use, storage, and retention of your caller’s biometric identifiers and biometric information (“biometric data”) in the form of a digital voiceprint requires the caller’s informed consent via a written release. Such consent is required under various state laws, including biometrics laws in Illinois, Texas, Washington and other state privacy laws.

You must provide a written release to each caller through a process that clearly reflects each caller’s informed consent before using Amazon Chime SDK Voice Insights service, as required under the terms of your agreement with AWS governing your use of the service.

" + }, + "UpdateVoiceProfileDomain":{ + "name":"UpdateVoiceProfileDomain", + "http":{ + "method":"PUT", + "requestUri":"/voice-profile-domains/{VoiceProfileDomainId}", + "responseCode":200 + }, + "input":{"shape":"UpdateVoiceProfileDomainRequest"}, + "output":{"shape":"UpdateVoiceProfileDomainResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Updates the settings for the specified voice profile domain.

" }, "ValidateE911Address":{ "name":"ValidateE911Address", @@ -1406,7 +1886,8 @@ {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} - ] + ], + "documentation":"

Validates an address to be used for 911 calls made with Amazon Chime SDK Voice Connectors. You can use validated addresses in a Presence Information Data Format Location Object file that you include in SIP requests. That helps ensure that addresses are routed to the appropriate Public Safety Answering Point.

" } }, "shapes":{ @@ -1414,23 +1895,55 @@ "type":"structure", "members":{ }, + "documentation":"

You don't have the permissions needed to run this action.

", "error":{"httpStatusCode":403}, "exception":true }, "Address":{ "type":"structure", "members":{ - "streetName":{"shape":"SensitiveNonEmptyString"}, - "streetSuffix":{"shape":"SensitiveNonEmptyString"}, - "postDirectional":{"shape":"SensitiveNonEmptyString"}, - "preDirectional":{"shape":"SensitiveNonEmptyString"}, - "streetNumber":{"shape":"SensitiveNonEmptyString"}, - "city":{"shape":"SensitiveNonEmptyString"}, - "state":{"shape":"SensitiveNonEmptyString"}, - "postalCode":{"shape":"SensitiveNonEmptyString"}, - "postalCodePlus4":{"shape":"SensitiveNonEmptyString"}, - "country":{"shape":"SensitiveNonEmptyString"} - } + "streetName":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address street, such as 8th Avenue.

" + }, + "streetSuffix":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address suffix, such as the N in 8th Avenue N.

" + }, + "postDirectional":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

An address suffix location, such as the S. Unit A in Central Park S. Unit A.

" + }, + "preDirectional":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

An address prefix location, such as the N in N. Third St.

" + }, + "streetNumber":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The numeric portion of an address.

" + }, + "city":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The city of an address.

" + }, + "state":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The state of an address.

" + }, + "postalCode":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The postal code of an address.

" + }, + "postalCodePlus4":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The zip + 4 or postal code + 4 of an address.

" + }, + "country":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The country of an address.

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

A validated address.

" }, "AlexaSkillId":{ "type":"string", @@ -1459,6 +1972,13 @@ "type":"string", "pattern":"^$|^[0-9]{3,3}$" }, + "Arn":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^arn[\\/\\:\\-\\_\\.a-zA-Z0-9]+$", + "sensitive":true + }, "AssociatePhoneNumbersWithVoiceConnectorGroupRequest":{ "type":"structure", "required":[ @@ -1468,17 +1988,27 @@ "members":{ "VoiceConnectorGroupId":{ "shape":"NonEmptyString", + "documentation":"

The Amazon Chime SDK Voice Connector group ID.

", "location":"uri", "locationName":"voiceConnectorGroupId" }, - "E164PhoneNumbers":{"shape":"E164PhoneNumberList"}, - "ForceAssociate":{"shape":"NullableBoolean"} + "E164PhoneNumbers":{ + "shape":"E164PhoneNumberList", + "documentation":"

List of phone numbers, in E.164 format.

" + }, + "ForceAssociate":{ + "shape":"NullableBoolean", + "documentation":"

If true, associates the provided phone numbers with the provided Amazon Chime SDK Voice Connector Group and removes any previously existing associations. If false, does not associate any phone numbers that have previously existing associations.

" + } } }, "AssociatePhoneNumbersWithVoiceConnectorGroupResponse":{ "type":"structure", "members":{ - "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + "PhoneNumberErrors":{ + "shape":"PhoneNumberErrorList", + "documentation":"

If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.

" + } } }, "AssociatePhoneNumbersWithVoiceConnectorRequest":{ @@ -1490,23 +2020,34 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "E164PhoneNumbers":{"shape":"E164PhoneNumberList"}, - "ForceAssociate":{"shape":"NullableBoolean"} + "E164PhoneNumbers":{ + "shape":"E164PhoneNumberList", + "documentation":"

List of phone numbers, in E.164 format.

" + }, + "ForceAssociate":{ + "shape":"NullableBoolean", + "documentation":"

If true, associates the provided phone numbers with the provided Amazon Chime SDK Voice Connector and removes any previously existing associations. If false, does not associate any phone numbers that have previously existing associations.

" + } } }, "AssociatePhoneNumbersWithVoiceConnectorResponse":{ "type":"structure", "members":{ - "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + "PhoneNumberErrors":{ + "shape":"PhoneNumberErrorList", + "documentation":"

If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.

" + } } }, "BadRequestException":{ "type":"structure", "members":{ }, + "documentation":"

The input parameters don't match the service's restrictions.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -1514,29 +2055,59 @@ "type":"structure", "required":["PhoneNumberIds"], "members":{ - "PhoneNumberIds":{"shape":"NonEmptyStringList"} + "PhoneNumberIds":{ + "shape":"NonEmptyStringList", + "documentation":"

List of phone number IDs.

" + } } }, "BatchDeletePhoneNumberResponse":{ "type":"structure", "members":{ - "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + "PhoneNumberErrors":{ + "shape":"PhoneNumberErrorList", + "documentation":"

If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.

" + } } }, "BatchUpdatePhoneNumberRequest":{ "type":"structure", "required":["UpdatePhoneNumberRequestItems"], "members":{ - "UpdatePhoneNumberRequestItems":{"shape":"UpdatePhoneNumberRequestItemList"} + "UpdatePhoneNumberRequestItems":{ + "shape":"UpdatePhoneNumberRequestItemList", + "documentation":"

Lists the phone numbers in the update request.

" + } } }, "BatchUpdatePhoneNumberResponse":{ "type":"structure", "members":{ - "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + "PhoneNumberErrors":{ + "shape":"PhoneNumberErrorList", + "documentation":"

A list of failed phone numbers and their error messages.

" + } } }, "Boolean":{"type":"boolean"}, + "CallDetails":{ + "type":"structure", + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

" + }, + "TransactionId":{ + "shape":"NonEmptyString256", + "documentation":"

The transaction ID of a Voice Connector call.

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

Identifies a person as the caller or the callee.

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

The details of an Amazon Chime SDK Voice Connector call.

" + }, "CallingName":{ "type":"string", "pattern":"^$|^[a-zA-Z0-9 ]{2,15}$", @@ -1559,22 +2130,44 @@ "CandidateAddress":{ "type":"structure", "members":{ - "streetInfo":{"shape":"SensitiveNonEmptyString"}, - "streetNumber":{"shape":"SensitiveNonEmptyString"}, - "city":{"shape":"SensitiveNonEmptyString"}, - "state":{"shape":"SensitiveNonEmptyString"}, - "postalCode":{"shape":"SensitiveNonEmptyString"}, - "postalCodePlus4":{"shape":"SensitiveNonEmptyString"}, - "country":{"shape":"SensitiveNonEmptyString"} - } - }, - "CandidateAddressList":{ - "type":"list", - "member":{"shape":"CandidateAddress"} - }, - "Capability":{ - "type":"string", - "enum":[ + "streetInfo":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The street information of the candidate address.

" + }, + "streetNumber":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The numeric portion of the candidate address.

" + }, + "city":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The city of the candidate address.

" + }, + "state":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The state of the candidate address.

" + }, + "postalCode":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The postal code of the candidate address.

" + }, + "postalCodePlus4":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The zip + 4 or postal code +4 of the candidate address.

" + }, + "country":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The country of the candidate address.

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

A suggested address.

" + }, + "CandidateAddressList":{ + "type":"list", + "member":{"shape":"CandidateAddress"} + }, + "Capability":{ + "type":"string", + "enum":[ "Voice", "SMS" ] @@ -1583,10 +2176,20 @@ "type":"list", "member":{"shape":"Capability"} }, + "ClientRequestId":{ + "type":"string", + "pattern":"^[-_a-zA-Z0-9]*${2,64}$" + }, + "ConfidenceScore":{ + "type":"float", + "max":1, + "min":0 + }, "ConflictException":{ "type":"structure", "members":{ }, + "documentation":"

Multiple instances of the same request were made simultaneously.

", "error":{"httpStatusCode":409}, "exception":true }, @@ -1611,14 +2214,23 @@ "E164PhoneNumbers" ], "members":{ - "ProductType":{"shape":"PhoneNumberProductType"}, - "E164PhoneNumbers":{"shape":"E164PhoneNumberList"} + "ProductType":{ + "shape":"PhoneNumberProductType", + "documentation":"

The phone number product type.

" + }, + "E164PhoneNumbers":{ + "shape":"E164PhoneNumberList", + "documentation":"

List of phone numbers, in E.164 format.

" + } } }, "CreatePhoneNumberOrderResponse":{ "type":"structure", "members":{ - "PhoneNumberOrder":{"shape":"PhoneNumberOrder"} + "PhoneNumberOrder":{ + "shape":"PhoneNumberOrder", + "documentation":"

The phone number order details.

" + } } }, "CreateProxySessionRequest":{ @@ -1631,22 +2243,47 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "ParticipantPhoneNumbers":{"shape":"ParticipantPhoneNumberList"}, - "Name":{"shape":"ProxySessionNameString"}, - "ExpiryMinutes":{"shape":"PositiveInteger"}, - "Capabilities":{"shape":"CapabilityList"}, - "NumberSelectionBehavior":{"shape":"NumberSelectionBehavior"}, - "GeoMatchLevel":{"shape":"GeoMatchLevel"}, - "GeoMatchParams":{"shape":"GeoMatchParams"} + "ParticipantPhoneNumbers":{ + "shape":"ParticipantPhoneNumberList", + "documentation":"

The participant phone numbers.

" + }, + "Name":{ + "shape":"ProxySessionNameString", + "documentation":"

The name of the proxy session.

" + }, + "ExpiryMinutes":{ + "shape":"PositiveInteger", + "documentation":"

The number of minutes allowed for the proxy session.

" + }, + "Capabilities":{ + "shape":"CapabilityList", + "documentation":"

The proxy session's capabilities.

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

The preference for proxy phone number reuse, or stickiness, between the same participants across sessions.

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

The preference for matching the country or area code of the proxy phone number with that of the first participant.

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

The country and area code for the proxy phone number.

" + } } }, "CreateProxySessionResponse":{ "type":"structure", "members":{ - "ProxySession":{"shape":"ProxySession"} + "ProxySession":{ + "shape":"ProxySession", + "documentation":"

The proxy session details.

" + } } }, "CreateSipMediaApplicationCallRequest":{ @@ -1657,21 +2294,37 @@ "SipMediaApplicationId" ], "members":{ - "FromPhoneNumber":{"shape":"E164PhoneNumber"}, - "ToPhoneNumber":{"shape":"E164PhoneNumber"}, + "FromPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The phone number that a user calls from. This is a phone number in your Amazon Chime SDK phone number inventory.

" + }, + "ToPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The phone number that the service should call.

" + }, "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The ID of the SIP media application.

", "location":"uri", "locationName":"sipMediaApplicationId" }, - "SipHeaders":{"shape":"SipHeadersMap"}, - "ArgumentsMap":{"shape":"SMACreateCallArgumentsMap"} + "SipHeaders":{ + "shape":"SipHeadersMap", + "documentation":"

The SIP headers added to an outbound call leg.

" + }, + "ArgumentsMap":{ + "shape":"SMACreateCallArgumentsMap", + "documentation":"

Context passed to a CreateSipMediaApplication API call. For example, you could pass key-value pairs such as: \"FirstName\": \"John\", \"LastName\": \"Doe\"

" + } } }, "CreateSipMediaApplicationCallResponse":{ "type":"structure", "members":{ - "SipMediaApplicationCall":{"shape":"SipMediaApplicationCall"} + "SipMediaApplicationCall":{ + "shape":"SipMediaApplicationCall", + "documentation":"

The actual call.

" + } } }, "CreateSipMediaApplicationRequest":{ @@ -1682,15 +2335,31 @@ "Endpoints" ], "members":{ - "AwsRegion":{"shape":"String"}, - "Name":{"shape":"SipMediaApplicationName"}, - "Endpoints":{"shape":"SipMediaApplicationEndpointList"} + "AwsRegion":{ + "shape":"String", + "documentation":"

The AWS Region assigned to the SIP media application.

" + }, + "Name":{ + "shape":"SipMediaApplicationName", + "documentation":"

The SIP media application's name.

" + }, + "Endpoints":{ + "shape":"SipMediaApplicationEndpointList", + "documentation":"

List of endpoints (Lambda ARNs) specified for the SIP media application.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags assigned to the SIP media application.

" + } } }, "CreateSipMediaApplicationResponse":{ "type":"structure", "members":{ - "SipMediaApplication":{"shape":"SipMediaApplication"} + "SipMediaApplication":{ + "shape":"SipMediaApplication", + "documentation":"

The SIP media application details.

" + } } }, "CreateSipRuleRequest":{ @@ -1701,31 +2370,58 @@ "TriggerValue" ], "members":{ - "Name":{"shape":"SipRuleName"}, - "TriggerType":{"shape":"SipRuleTriggerType"}, - "TriggerValue":{"shape":"NonEmptyString"}, - "Disabled":{"shape":"NullableBoolean"}, - "TargetApplications":{"shape":"SipRuleTargetApplicationList"} + "Name":{ + "shape":"SipRuleName", + "documentation":"

The name of the SIP rule.

" + }, + "TriggerType":{ + "shape":"SipRuleTriggerType", + "documentation":"

The type of trigger assigned to the SIP rule in TriggerValue, currently RequestUriHostname or ToPhoneNumber.

" + }, + "TriggerValue":{ + "shape":"NonEmptyString", + "documentation":"

If TriggerType is RequestUriHostname, the value can be the outbound host name of a Voice Connector. If TriggerType is ToPhoneNumber, the value can be a customer-owned phone number in the E164 format. The SipMediaApplication specified in the SipRule is triggered if the request URI in an incoming SIP request matches the RequestUriHostname, or if the To header in the incoming SIP request matches the ToPhoneNumber value.

" + }, + "Disabled":{ + "shape":"NullableBoolean", + "documentation":"

Disables or enables a SIP rule. You must disable SIP rules before you can delete them.

" + }, + "TargetApplications":{ + "shape":"SipRuleTargetApplicationList", + "documentation":"

List of SIP media applications, with priority and AWS Region. Only one SIP application per AWS Region can be used.

" + } } }, "CreateSipRuleResponse":{ "type":"structure", "members":{ - "SipRule":{"shape":"SipRule"} + "SipRule":{ + "shape":"SipRule", + "documentation":"

The SIP rule information, including the rule ID, triggers, and target applications.

" + } } }, "CreateVoiceConnectorGroupRequest":{ "type":"structure", "required":["Name"], "members":{ - "Name":{"shape":"VoiceConnectorGroupName"}, - "VoiceConnectorItems":{"shape":"VoiceConnectorItemList"} + "Name":{ + "shape":"VoiceConnectorGroupName", + "documentation":"

The name of the Voice Connector group.

" + }, + "VoiceConnectorItems":{ + "shape":"VoiceConnectorItemList", + "documentation":"

Lists the Voice Connectors that inbound calls are routed to.

" + } } }, "CreateVoiceConnectorGroupResponse":{ "type":"structure", "members":{ - "VoiceConnectorGroup":{"shape":"VoiceConnectorGroup"} + "VoiceConnectorGroup":{ + "shape":"VoiceConnectorGroup", + "documentation":"

The details of the Voice Connector group.

" + } } }, "CreateVoiceConnectorRequest":{ @@ -1735,24 +2431,104 @@ "RequireEncryption" ], "members":{ - "Name":{"shape":"VoiceConnectorName"}, - "AwsRegion":{"shape":"VoiceConnectorAwsRegion"}, - "RequireEncryption":{"shape":"Boolean"} + "Name":{ + "shape":"VoiceConnectorName", + "documentation":"

The name of the Voice Connector.

" + }, + "AwsRegion":{ + "shape":"VoiceConnectorAwsRegion", + "documentation":"

The AWS Region in which the Amazon Chime SDK Voice Connector is created. Default value: us-east-1 .

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

Enables or disables encryption for the Voice Connector.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags assigned to the Voice Connector.

" + } } }, "CreateVoiceConnectorResponse":{ "type":"structure", "members":{ - "VoiceConnector":{"shape":"VoiceConnector"} + "VoiceConnector":{ + "shape":"VoiceConnector", + "documentation":"

The details of the Voice Connector.

" + } } }, - "Credential":{ + "CreateVoiceProfileDomainRequest":{ + "type":"structure", + "required":[ + "Name", + "ServerSideEncryptionConfiguration" + ], + "members":{ + "Name":{ + "shape":"VoiceProfileDomainName", + "documentation":"

The name of the voice profile domain.

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

A description of the voice profile domain.

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

The server-side encryption configuration for the request.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestId", + "documentation":"

The unique identifier for the client request. Use a different token for different domain creation requests.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags assigned to the domain.

" + } + } + }, + "CreateVoiceProfileDomainResponse":{ "type":"structure", "members":{ - "Username":{"shape":"SensitiveString"}, - "Password":{"shape":"SensitiveString"} + "VoiceProfileDomain":{ + "shape":"VoiceProfileDomain", + "documentation":"

The requested voice profile domain.

" + } + } + }, + "CreateVoiceProfileRequest":{ + "type":"structure", + "required":["SpeakerSearchTaskId"], + "members":{ + "SpeakerSearchTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the speaker search task.

" + } + } + }, + "CreateVoiceProfileResponse":{ + "type":"structure", + "members":{ + "VoiceProfile":{ + "shape":"VoiceProfile", + "documentation":"

The requested voice profile.

" + } } }, + "Credential":{ + "type":"structure", + "members":{ + "Username":{ + "shape":"SensitiveString", + "documentation":"

The RFC2617 compliant user name associated with the SIP credentials, in US-ASCII format.

" + }, + "Password":{ + "shape":"SensitiveString", + "documentation":"

The RFC2617 compliant password associated with the SIP credentials, in US-ASCII format.

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

The SIP credentials used to authenticate requests to an Amazon Chime SDK Voice Connector.

" + }, "CredentialList":{ "type":"list", "member":{"shape":"Credential"} @@ -1764,10 +2540,20 @@ "CallingCountry" ], "members":{ - "EmergencyPhoneNumber":{"shape":"E164PhoneNumber"}, - "TestPhoneNumber":{"shape":"E164PhoneNumber"}, - "CallingCountry":{"shape":"Alpha2CountryCode"} - } + "EmergencyPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The DNIS phone number that you route emergency calls to, in E.164 format.

" + }, + "TestPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The DNIS phone number for routing test emergency calls to, in E.164 format.

" + }, + "CallingCountry":{ + "shape":"Alpha2CountryCode", + "documentation":"

The country from which emergency calls are allowed, in ISO 3166-1 alpha-2 format.

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

The Dialed Number Identification Service (DNIS) emergency calling configuration details associated with an Amazon Chime SDK Voice Connector's emergency calling configuration.

" }, "DNISEmergencyCallingConfigurationList":{ "type":"list", @@ -1783,6 +2569,7 @@ "members":{ "PhoneNumberId":{ "shape":"SensitiveNonEmptyString", + "documentation":"

The phone number ID.

", "location":"uri", "locationName":"phoneNumberId" } @@ -1797,11 +2584,13 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, "ProxySessionId":{ "shape":"NonEmptyString128", + "documentation":"

The proxy session ID.

", "location":"uri", "locationName":"proxySessionId" } @@ -1813,6 +2602,7 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID.

", "location":"uri", "locationName":"sipMediaApplicationId" } @@ -1824,6 +2614,7 @@ "members":{ "SipRuleId":{ "shape":"NonEmptyString", + "documentation":"

The SIP rule ID.

", "location":"uri", "locationName":"sipRuleId" } @@ -1835,6 +2626,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -1846,6 +2638,7 @@ "members":{ "VoiceConnectorGroupId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector Group ID.

", "location":"uri", "locationName":"voiceConnectorGroupId" } @@ -1857,6 +2650,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -1868,6 +2662,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -1879,6 +2674,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -1890,6 +2686,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -1904,10 +2701,14 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "Usernames":{"shape":"SensitiveStringList"} + "Usernames":{ + "shape":"SensitiveStringList", + "documentation":"

The RFC2617 compliant username associated with the SIP credentials, in US-ASCII format.

" + } } }, "DeleteVoiceConnectorTerminationRequest":{ @@ -1916,11 +2717,36 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } } }, + "DeleteVoiceProfileDomainRequest":{ + "type":"structure", + "required":["VoiceProfileDomainId"], + "members":{ + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The voice profile domain ID.

", + "location":"uri", + "locationName":"VoiceProfileDomainId" + } + } + }, + "DeleteVoiceProfileRequest":{ + "type":"structure", + "required":["VoiceProfileId"], + "members":{ + "VoiceProfileId":{ + "shape":"NonEmptyString256", + "documentation":"

The voice profile ID.

", + "location":"uri", + "locationName":"VoiceProfileId" + } + } + }, "DisassociatePhoneNumbersFromVoiceConnectorGroupRequest":{ "type":"structure", "required":[ @@ -1930,16 +2756,23 @@ "members":{ "VoiceConnectorGroupId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector group ID.

", "location":"uri", "locationName":"voiceConnectorGroupId" }, - "E164PhoneNumbers":{"shape":"E164PhoneNumberList"} + "E164PhoneNumbers":{ + "shape":"E164PhoneNumberList", + "documentation":"

The list of phone numbers, in E.164 format.

" + } } }, "DisassociatePhoneNumbersFromVoiceConnectorGroupResponse":{ "type":"structure", "members":{ - "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + "PhoneNumberErrors":{ + "shape":"PhoneNumberErrorList", + "documentation":"

If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.

" + } } }, "DisassociatePhoneNumbersFromVoiceConnectorRequest":{ @@ -1951,16 +2784,23 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "E164PhoneNumbers":{"shape":"E164PhoneNumberList"} + "E164PhoneNumbers":{ + "shape":"E164PhoneNumberList", + "documentation":"

List of phone numbers, in E.164 format.

" + } } }, "DisassociatePhoneNumbersFromVoiceConnectorResponse":{ "type":"structure", "members":{ - "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + "PhoneNumberErrors":{ + "shape":"PhoneNumberErrorList", + "documentation":"

If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.

" + } } }, "E164PhoneNumber":{ @@ -1975,8 +2815,12 @@ "EmergencyCallingConfiguration":{ "type":"structure", "members":{ - "DNIS":{"shape":"DNISEmergencyCallingConfigurationList"} - } + "DNIS":{ + "shape":"DNISEmergencyCallingConfigurationList", + "documentation":"

The Dialed Number Identification Service (DNIS) emergency calling configuration details.

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

The emergency calling configuration details associated with an Amazon Chime SDK Voice Connector.

" }, "ErrorCode":{ "type":"string", @@ -2003,6 +2847,7 @@ "type":"structure", "members":{ }, + "documentation":"

The client is permanently forbidden from making the request.

", "error":{"httpStatusCode":403}, "exception":true }, @@ -2026,14 +2871,24 @@ "AreaCode" ], "members":{ - "Country":{"shape":"Country"}, - "AreaCode":{"shape":"AreaCode"} - } + "Country":{ + "shape":"Country", + "documentation":"

The country.

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

The area code.

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

The country and area code for a proxy phone number in a proxy phone session.

" }, "GetGlobalSettingsResponse":{ "type":"structure", "members":{ - "VoiceConnector":{"shape":"VoiceConnectorSettings"} + "VoiceConnector":{ + "shape":"VoiceConnectorSettings", + "documentation":"

The Voice Connector settings.

" + } } }, "GetPhoneNumberOrderRequest":{ @@ -2042,6 +2897,7 @@ "members":{ "PhoneNumberOrderId":{ "shape":"GuidString", + "documentation":"

The ID of the phone number order .

", "location":"uri", "locationName":"phoneNumberOrderId" } @@ -2050,7 +2906,10 @@ "GetPhoneNumberOrderResponse":{ "type":"structure", "members":{ - "PhoneNumberOrder":{"shape":"PhoneNumberOrder"} + "PhoneNumberOrder":{ + "shape":"PhoneNumberOrder", + "documentation":"

The phone number order details.

" + } } }, "GetPhoneNumberRequest":{ @@ -2059,6 +2918,7 @@ "members":{ "PhoneNumberId":{ "shape":"SensitiveNonEmptyString", + "documentation":"

The phone number ID.

", "location":"uri", "locationName":"phoneNumberId" } @@ -2067,14 +2927,23 @@ "GetPhoneNumberResponse":{ "type":"structure", "members":{ - "PhoneNumber":{"shape":"PhoneNumber"} + "PhoneNumber":{ + "shape":"PhoneNumber", + "documentation":"

The phone number details.

" + } } }, "GetPhoneNumberSettingsResponse":{ "type":"structure", "members":{ - "CallingName":{"shape":"CallingName"}, - "CallingNameUpdatedTimestamp":{"shape":"Iso8601Timestamp"} + "CallingName":{ + "shape":"CallingName", + "documentation":"

The default outbound calling name for the account.

" + }, + "CallingNameUpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The updated outbound calling name timestamp, in ISO 8601 format.

" + } } }, "GetProxySessionRequest":{ @@ -2086,11 +2955,13 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, "ProxySessionId":{ "shape":"NonEmptyString128", + "documentation":"

The proxy session ID.

", "location":"uri", "locationName":"proxySessionId" } @@ -2099,7 +2970,10 @@ "GetProxySessionResponse":{ "type":"structure", "members":{ - "ProxySession":{"shape":"ProxySession"} + "ProxySession":{ + "shape":"ProxySession", + "documentation":"

The proxy session details.

" + } } }, "GetSipMediaApplicationAlexaSkillConfigurationRequest":{ @@ -2108,6 +2982,7 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID.

", "location":"uri", "locationName":"sipMediaApplicationId" } @@ -2116,7 +2991,10 @@ "GetSipMediaApplicationAlexaSkillConfigurationResponse":{ "type":"structure", "members":{ - "SipMediaApplicationAlexaSkillConfiguration":{"shape":"SipMediaApplicationAlexaSkillConfiguration"} + "SipMediaApplicationAlexaSkillConfiguration":{ + "shape":"SipMediaApplicationAlexaSkillConfiguration", + "documentation":"

Returns the Alexa Skill configuration.

" + } } }, "GetSipMediaApplicationLoggingConfigurationRequest":{ @@ -2125,6 +3003,7 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID.

", "location":"uri", "locationName":"sipMediaApplicationId" } @@ -2133,7 +3012,10 @@ "GetSipMediaApplicationLoggingConfigurationResponse":{ "type":"structure", "members":{ - "SipMediaApplicationLoggingConfiguration":{"shape":"SipMediaApplicationLoggingConfiguration"} + "SipMediaApplicationLoggingConfiguration":{ + "shape":"SipMediaApplicationLoggingConfiguration", + "documentation":"

The actual logging configuration.

" + } } }, "GetSipMediaApplicationRequest":{ @@ -2142,6 +3024,7 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID .

", "location":"uri", "locationName":"sipMediaApplicationId" } @@ -2150,7 +3033,10 @@ "GetSipMediaApplicationResponse":{ "type":"structure", "members":{ - "SipMediaApplication":{"shape":"SipMediaApplication"} + "SipMediaApplication":{ + "shape":"SipMediaApplication", + "documentation":"

The details of the SIP media application.

" + } } }, "GetSipRuleRequest":{ @@ -2159,6 +3045,7 @@ "members":{ "SipRuleId":{ "shape":"NonEmptyString", + "documentation":"

The SIP rule ID.

", "location":"uri", "locationName":"sipRuleId" } @@ -2167,7 +3054,40 @@ "GetSipRuleResponse":{ "type":"structure", "members":{ - "SipRule":{"shape":"SipRule"} + "SipRule":{ + "shape":"SipRule", + "documentation":"

The SIP rule details.

" + } + } + }, + "GetSpeakerSearchTaskRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "SpeakerSearchTaskId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", + "location":"uri", + "locationName":"VoiceConnectorId" + }, + "SpeakerSearchTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the speaker search task.

", + "location":"uri", + "locationName":"SpeakerSearchTaskId" + } + } + }, + "GetSpeakerSearchTaskResponse":{ + "type":"structure", + "members":{ + "SpeakerSearchTask":{ + "shape":"SpeakerSearchTask", + "documentation":"

The details of the speaker search task.

" + } } }, "GetVoiceConnectorEmergencyCallingConfigurationRequest":{ @@ -2176,6 +3096,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2184,7 +3105,10 @@ "GetVoiceConnectorEmergencyCallingConfigurationResponse":{ "type":"structure", "members":{ - "EmergencyCallingConfiguration":{"shape":"EmergencyCallingConfiguration"} + "EmergencyCallingConfiguration":{ + "shape":"EmergencyCallingConfiguration", + "documentation":"

The details of the emergency calling configuration.

" + } } }, "GetVoiceConnectorGroupRequest":{ @@ -2193,6 +3117,7 @@ "members":{ "VoiceConnectorGroupId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector group ID.

", "location":"uri", "locationName":"voiceConnectorGroupId" } @@ -2201,7 +3126,10 @@ "GetVoiceConnectorGroupResponse":{ "type":"structure", "members":{ - "VoiceConnectorGroup":{"shape":"VoiceConnectorGroup"} + "VoiceConnectorGroup":{ + "shape":"VoiceConnectorGroup", + "documentation":"

The details of the Voice Connector group.

" + } } }, "GetVoiceConnectorLoggingConfigurationRequest":{ @@ -2210,6 +3138,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2218,7 +3147,10 @@ "GetVoiceConnectorLoggingConfigurationResponse":{ "type":"structure", "members":{ - "LoggingConfiguration":{"shape":"LoggingConfiguration"} + "LoggingConfiguration":{ + "shape":"LoggingConfiguration", + "documentation":"

The logging configuration details .

" + } } }, "GetVoiceConnectorOriginationRequest":{ @@ -2227,6 +3159,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2235,7 +3168,10 @@ "GetVoiceConnectorOriginationResponse":{ "type":"structure", "members":{ - "Origination":{"shape":"Origination"} + "Origination":{ + "shape":"Origination", + "documentation":"

The origination setting details.

" + } } }, "GetVoiceConnectorProxyRequest":{ @@ -2244,6 +3180,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2252,7 +3189,10 @@ "GetVoiceConnectorProxyResponse":{ "type":"structure", "members":{ - "Proxy":{"shape":"Proxy"} + "Proxy":{ + "shape":"Proxy", + "documentation":"

The proxy configuration details.

" + } } }, "GetVoiceConnectorRequest":{ @@ -2261,6 +3201,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2269,7 +3210,10 @@ "GetVoiceConnectorResponse":{ "type":"structure", "members":{ - "VoiceConnector":{"shape":"VoiceConnector"} + "VoiceConnector":{ + "shape":"VoiceConnector", + "documentation":"

The Voice Connector details.

" + } } }, "GetVoiceConnectorStreamingConfigurationRequest":{ @@ -2278,6 +3222,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2286,7 +3231,10 @@ "GetVoiceConnectorStreamingConfigurationResponse":{ "type":"structure", "members":{ - "StreamingConfiguration":{"shape":"StreamingConfiguration"} + "StreamingConfiguration":{ + "shape":"StreamingConfiguration", + "documentation":"

The details of the streaming configuration.

" + } } }, "GetVoiceConnectorTerminationHealthRequest":{ @@ -2295,6 +3243,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2303,7 +3252,10 @@ "GetVoiceConnectorTerminationHealthResponse":{ "type":"structure", "members":{ - "TerminationHealth":{"shape":"TerminationHealth"} + "TerminationHealth":{ + "shape":"TerminationHealth", + "documentation":"

The termination health details.

" + } } }, "GetVoiceConnectorTerminationRequest":{ @@ -2312,6 +3264,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2320,9 +3273,99 @@ "GetVoiceConnectorTerminationResponse":{ "type":"structure", "members":{ - "Termination":{"shape":"Termination"} + "Termination":{ + "shape":"Termination", + "documentation":"

The termination setting details.

" + } + } + }, + "GetVoiceProfileDomainRequest":{ + "type":"structure", + "required":["VoiceProfileDomainId"], + "members":{ + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The voice profile domain ID.

", + "location":"uri", + "locationName":"VoiceProfileDomainId" + } + } + }, + "GetVoiceProfileDomainResponse":{ + "type":"structure", + "members":{ + "VoiceProfileDomain":{ + "shape":"VoiceProfileDomain", + "documentation":"

The details of the voice profile domain.

" + } + } + }, + "GetVoiceProfileRequest":{ + "type":"structure", + "required":["VoiceProfileId"], + "members":{ + "VoiceProfileId":{ + "shape":"NonEmptyString256", + "documentation":"

The voice profile ID.

", + "location":"uri", + "locationName":"VoiceProfileId" + } + } + }, + "GetVoiceProfileResponse":{ + "type":"structure", + "members":{ + "VoiceProfile":{ + "shape":"VoiceProfile", + "documentation":"

The voice profile details.

" + } + } + }, + "GetVoiceToneAnalysisTaskRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "VoiceToneAnalysisTaskId", + "IsCaller" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", + "location":"uri", + "locationName":"VoiceConnectorId" + }, + "VoiceToneAnalysisTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice tone anlysis task.

", + "location":"uri", + "locationName":"VoiceToneAnalysisTaskId" + }, + "IsCaller":{ + "shape":"Boolean", + "documentation":"

Specifies whether the voice being analyzed is the caller (originator) or the callee (responder).

", + "location":"querystring", + "locationName":"isCaller" + } + } + }, + "GetVoiceToneAnalysisTaskResponse":{ + "type":"structure", + "members":{ + "VoiceToneAnalysisTask":{ + "shape":"VoiceToneAnalysisTask", + "documentation":"

The details of the voice tone analysis task.

" + } } }, + "GoneException":{ + "type":"structure", + "members":{ + }, + "documentation":"

Access to the target resource is no longer available at the origin server. This condition is likely to be permanent.

", + "error":{"httpStatusCode":410}, + "exception":true + }, "GuidString":{ "type":"string", "pattern":"[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}" @@ -2332,10 +3375,17 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "LanguageCode":{ + "type":"string", + "enum":["en-US"] + }, "ListAvailableVoiceConnectorRegionsResponse":{ "type":"structure", "members":{ - "VoiceConnectorRegions":{"shape":"VoiceConnectorAwsRegionList"} + "VoiceConnectorRegions":{ + "shape":"VoiceConnectorAwsRegionList", + "documentation":"

The list of AWS Regions.

" + } } }, "ListPhoneNumberOrdersRequest":{ @@ -2343,11 +3393,13 @@ "members":{ "NextToken":{ "shape":"String", + "documentation":"

The token used to retrieve the next page of results.

", "location":"querystring", "locationName":"next-token" }, "MaxResults":{ "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call.

", "location":"querystring", "locationName":"max-results" } @@ -2356,8 +3408,14 @@ "ListPhoneNumberOrdersResponse":{ "type":"structure", "members":{ - "PhoneNumberOrders":{"shape":"PhoneNumberOrderList"}, - "NextToken":{"shape":"String"} + "PhoneNumberOrders":{ + "shape":"PhoneNumberOrderList", + "documentation":"

The phone number order details.

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

The token used to retrieve the next page of results.

" + } } }, "ListPhoneNumbersRequest":{ @@ -2365,31 +3423,37 @@ "members":{ "Status":{ "shape":"String", + "documentation":"

The status of your organization's phone numbers.

", "location":"querystring", "locationName":"status" }, "ProductType":{ "shape":"PhoneNumberProductType", + "documentation":"

The phone number product types.

", "location":"querystring", "locationName":"product-type" }, "FilterName":{ "shape":"PhoneNumberAssociationName", + "documentation":"

The filter to limit the number of results.

", "location":"querystring", "locationName":"filter-name" }, "FilterValue":{ "shape":"String", + "documentation":"

The filter value.

", "location":"querystring", "locationName":"filter-value" }, "MaxResults":{ "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call.

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

The token used to return the next page of results.

", "location":"querystring", "locationName":"next-token" } @@ -2398,8 +3462,14 @@ "ListPhoneNumbersResponse":{ "type":"structure", "members":{ - "PhoneNumbers":{"shape":"PhoneNumberList"}, - "NextToken":{"shape":"String"} + "PhoneNumbers":{ + "shape":"PhoneNumberList", + "documentation":"

The phone number details.

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

The token used to return the next page of results.

" + } } }, "ListProxySessionsRequest":{ @@ -2408,21 +3478,25 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, "Status":{ "shape":"ProxySessionStatus", + "documentation":"

The proxy session status.

", "location":"querystring", "locationName":"status" }, "NextToken":{ "shape":"NextTokenString", + "documentation":"

The token used to retrieve the next page of results.

", "location":"querystring", "locationName":"next-token" }, "MaxResults":{ "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call.

", "location":"querystring", "locationName":"max-results" } @@ -2431,8 +3505,14 @@ "ListProxySessionsResponse":{ "type":"structure", "members":{ - "ProxySessions":{"shape":"ProxySessions"}, - "NextToken":{"shape":"NextTokenString"} + "ProxySessions":{ + "shape":"ProxySessions", + "documentation":"

The proxy sessions' details.

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

The token used to retrieve the next page of results.

" + } } }, "ListSipMediaApplicationsRequest":{ @@ -2440,11 +3520,13 @@ "members":{ "MaxResults":{ "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call. Defaults to 100.

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

The token used to return the next page of results.

", "location":"querystring", "locationName":"next-token" } @@ -2453,8 +3535,14 @@ "ListSipMediaApplicationsResponse":{ "type":"structure", "members":{ - "SipMediaApplications":{"shape":"SipMediaApplicationList"}, - "NextToken":{"shape":"NextTokenString"} + "SipMediaApplications":{ + "shape":"SipMediaApplicationList", + "documentation":"

The list of SIP media applications and application details.

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

The token used to return the next page of results.

" + } } }, "ListSipRulesRequest":{ @@ -2462,16 +3550,19 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID.

", "location":"querystring", "locationName":"sip-media-application" }, "MaxResults":{ "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call. Defaults to 100.

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

The token used to return the next page of results.

", "location":"querystring", "locationName":"next-token" } @@ -2480,8 +3571,14 @@ "ListSipRulesResponse":{ "type":"structure", "members":{ - "SipRules":{"shape":"SipRuleList"}, - "NextToken":{"shape":"NextTokenString"} + "SipRules":{ + "shape":"SipRuleList", + "documentation":"

The list of SIP rules and details.

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

The token used to return the next page of results.

" + } } }, "ListSupportedPhoneNumberCountriesRequest":{ @@ -2490,6 +3587,7 @@ "members":{ "ProductType":{ "shape":"PhoneNumberProductType", + "documentation":"

The phone number product type.

", "location":"querystring", "locationName":"product-type" } @@ -2498,7 +3596,31 @@ "ListSupportedPhoneNumberCountriesResponse":{ "type":"structure", "members":{ - "PhoneNumberCountries":{"shape":"PhoneNumberCountriesList"} + "PhoneNumberCountries":{ + "shape":"PhoneNumberCountriesList", + "documentation":"

The supported phone number countries.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "ResourceARN":{ + "shape":"Arn", + "documentation":"

The resource ARN.

", + "location":"querystring", + "locationName":"arn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

The tags in the list.

" + } } }, "ListVoiceConnectorGroupsRequest":{ @@ -2506,11 +3628,13 @@ "members":{ "NextToken":{ "shape":"String", + "documentation":"

The token used to return the next page of results.

", "location":"querystring", "locationName":"next-token" }, "MaxResults":{ "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call.

", "location":"querystring", "locationName":"max-results" } @@ -2519,8 +3643,14 @@ "ListVoiceConnectorGroupsResponse":{ "type":"structure", "members":{ - "VoiceConnectorGroups":{"shape":"VoiceConnectorGroupList"}, - "NextToken":{"shape":"String"} + "VoiceConnectorGroups":{ + "shape":"VoiceConnectorGroupList", + "documentation":"

The details of the Voice Connector groups.

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

The token used to return the next page of results.

" + } } }, "ListVoiceConnectorTerminationCredentialsRequest":{ @@ -2529,6 +3659,7 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" } @@ -2537,7 +3668,10 @@ "ListVoiceConnectorTerminationCredentialsResponse":{ "type":"structure", "members":{ - "Usernames":{"shape":"SensitiveStringList"} + "Usernames":{ + "shape":"SensitiveStringList", + "documentation":"

A list of user names.

" + } } }, "ListVoiceConnectorsRequest":{ @@ -2545,11 +3679,13 @@ "members":{ "NextToken":{ "shape":"String", + "documentation":"

The token used to return the next page of results.

", "location":"querystring", "locationName":"next-token" }, "MaxResults":{ "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call.

", "location":"querystring", "locationName":"max-results" } @@ -2558,16 +3694,111 @@ "ListVoiceConnectorsResponse":{ "type":"structure", "members":{ - "VoiceConnectors":{"shape":"VoiceConnectorList"}, - "NextToken":{"shape":"String"} - } - }, - "LoggingConfiguration":{ + "VoiceConnectors":{ + "shape":"VoiceConnectorList", + "documentation":"

The details of the Voice Connectors.

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

The token used to return the next page of results.

" + } + } + }, + "ListVoiceProfileDomainsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The token used to return the next page of results.

", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call.

", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListVoiceProfileDomainsResponse":{ + "type":"structure", + "members":{ + "VoiceProfileDomains":{ + "shape":"VoiceProfileDomainSummaryList", + "documentation":"

The list of voice profile domains.

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

The token used to return the next page of results.

" + } + } + }, + "ListVoiceProfilesRequest":{ + "type":"structure", + "required":["VoiceProfileDomainId"], + "members":{ + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice profile domain.

", + "location":"querystring", + "locationName":"voice-profile-domain-id" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token used to retrieve the next page of results.

", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "documentation":"

The maximum number of results in the request.

", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListVoiceProfilesResponse":{ "type":"structure", "members":{ - "EnableSIPLogs":{"shape":"Boolean"} + "VoiceProfiles":{ + "shape":"VoiceProfileSummaryList", + "documentation":"

The list of voice profiles.

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

The token used to retrieve the next page of results.

" + } } }, + "LoggingConfiguration":{ + "type":"structure", + "members":{ + "EnableSIPLogs":{ + "shape":"Boolean", + "documentation":"

Boolean that enables sending SIP message logs to Amazon CloudWatch.

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

Enables or disables media metrics logging.

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

The logging configuration associated with an Amazon Chime SDK Voice Connector. Specifies whether SIP message logs can be sent to Amazon CloudWatch Logs.

" + }, + "MediaInsightsConfiguration":{ + "type":"structure", + "members":{ + "Disabled":{ + "shape":"Boolean", + "documentation":"

Denotes the configration as enabled or disabled.

" + }, + "ConfigurationArn":{ + "shape":"Arn", + "documentation":"

The configuration's ARN.

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

The configuration for a call analytics task.

" + }, "NextTokenString":{ "type":"string", "max":65535 @@ -2582,6 +3813,12 @@ "min":1, "pattern":".*\\S.*" }, + "NonEmptyString256":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*\\S.*" + }, "NonEmptyStringList":{ "type":"list", "member":{"shape":"String"}, @@ -2591,6 +3828,7 @@ "type":"structure", "members":{ }, + "documentation":"

The requested resource couldn't be found.

", "error":{"httpStatusCode":404}, "exception":true }, @@ -2613,9 +3851,16 @@ "OrderedPhoneNumber":{ "type":"structure", "members":{ - "E164PhoneNumber":{"shape":"E164PhoneNumber"}, - "Status":{"shape":"OrderedPhoneNumberStatus"} - } + "E164PhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The phone number, in E.164 format.

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

The phone number status.

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

A phone number for which an order has been placed.

" }, "OrderedPhoneNumberList":{ "type":"list", @@ -2632,19 +3877,42 @@ "Origination":{ "type":"structure", "members":{ - "Routes":{"shape":"OriginationRouteList"}, - "Disabled":{"shape":"Boolean"} - } + "Routes":{ + "shape":"OriginationRouteList", + "documentation":"

The call distribution properties defined for your SIP hosts. Valid range: Minimum value of 1. Maximum value of 20. This parameter is not required, but you must specify this parameter or Disabled.

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

When origination settings are disabled, inbound calls are not enabled for your Amazon Chime SDK Voice Connector. This parameter is not required, but you must specify this parameter or Routes.

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

Origination settings enable your SIP hosts to receive inbound calls using your Amazon Chime SDK Voice Connector.

The parameters listed below are not required, but you must use at least one.

" }, "OriginationRoute":{ "type":"structure", "members":{ - "Host":{"shape":"String"}, - "Port":{"shape":"Port"}, - "Protocol":{"shape":"OriginationRouteProtocol"}, - "Priority":{"shape":"OriginationRoutePriority"}, - "Weight":{"shape":"OriginationRouteWeight"} - } + "Host":{ + "shape":"String", + "documentation":"

The FQDN or IP address to contact for origination traffic.

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

The designated origination route port. Defaults to 5060.

" + }, + "Protocol":{ + "shape":"OriginationRouteProtocol", + "documentation":"

The protocol to use for the origination route. Encryption-enabled Amazon Chime SDK Voice Connectors use TCP protocol by default.

" + }, + "Priority":{ + "shape":"OriginationRoutePriority", + "documentation":"

The priority associated with the host, with 1 being the highest priority. Higher priority hosts are attempted first.

" + }, + "Weight":{ + "shape":"OriginationRouteWeight", + "documentation":"

The weight assigned to an origination route. When hosts have equal priority, calls are distributed between them based on their relative weights.

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

Origination routes define call distribution properties for your SIP hosts to receive inbound calls using an Amazon Chime SDK Voice Connector. Limit: Ten origination routes for each Voice Connector.

The parameters listed below are not required, but you must use at least one.

" }, "OriginationRouteList":{ "type":"list", @@ -2670,9 +3938,16 @@ "Participant":{ "type":"structure", "members":{ - "PhoneNumber":{"shape":"E164PhoneNumber"}, - "ProxyPhoneNumber":{"shape":"E164PhoneNumber"} - } + "PhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The participant's phone number.

" + }, + "ProxyPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The participant's proxy phone number.

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

The phone number and proxy phone number for a participant in an Amazon Chime SDK Voice Connector proxy session.

" }, "ParticipantPhoneNumberList":{ "type":"list", @@ -2687,29 +3962,82 @@ "PhoneNumber":{ "type":"structure", "members":{ - "PhoneNumberId":{"shape":"SensitiveNonEmptyString"}, - "E164PhoneNumber":{"shape":"E164PhoneNumber"}, - "Country":{"shape":"Alpha2CountryCode"}, - "Type":{"shape":"PhoneNumberType"}, - "ProductType":{"shape":"PhoneNumberProductType"}, - "Status":{"shape":"PhoneNumberStatus"}, - "Capabilities":{"shape":"PhoneNumberCapabilities"}, - "Associations":{"shape":"PhoneNumberAssociationList"}, - "CallingName":{"shape":"CallingName"}, - "CallingNameStatus":{"shape":"CallingNameStatus"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, - "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, - "DeletionTimestamp":{"shape":"Iso8601Timestamp"}, - "OrderId":{"shape":"GuidString"} - } + "PhoneNumberId":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The phone number's ID.

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

The phone number, in E.164 format.

" + }, + "Country":{ + "shape":"Alpha2CountryCode", + "documentation":"

The phone number's country. Format: ISO 3166-1 alpha-2.

" + }, + "Type":{ + "shape":"PhoneNumberType", + "documentation":"

The phone number's type.

" + }, + "ProductType":{ + "shape":"PhoneNumberProductType", + "documentation":"

The phone number's product type.

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

The phone number's status.

" + }, + "Capabilities":{ + "shape":"PhoneNumberCapabilities", + "documentation":"

The phone number's capabilities.

" + }, + "Associations":{ + "shape":"PhoneNumberAssociationList", + "documentation":"

The phone number's associations.

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

The outbound calling name associated with the phone number.

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

The outbound calling name status.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The phone number creation timestamp, in ISO 8601 format.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The updated phone number timestamp, in ISO 8601 format.

" + }, + "DeletionTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The deleted phone number timestamp, in ISO 8601 format.

" + }, + "OrderId":{ + "shape":"GuidString", + "documentation":"

The phone number's order ID.

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

A phone number used to call an Amazon Chime SDK Voice Connector.

" }, "PhoneNumberAssociation":{ "type":"structure", "members":{ - "Value":{"shape":"String"}, - "Name":{"shape":"PhoneNumberAssociationName"}, - "AssociatedTimestamp":{"shape":"Iso8601Timestamp"} - } + "Value":{ + "shape":"String", + "documentation":"

Contains the ID for the entity specified in Name.

" + }, + "Name":{ + "shape":"PhoneNumberAssociationName", + "documentation":"

Defines the association with an Amazon Chime SDK account ID, user ID, Voice Connector ID, or Voice Connector group ID.

" + }, + "AssociatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The timestamp of the phone number association, in ISO 8601 format.

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

The phone number associations, such as an Amazon Chime SDK account ID, user ID, Voice Connector ID, or Voice Connector group ID.

" }, "PhoneNumberAssociationList":{ "type":"list", @@ -2726,13 +4054,32 @@ "PhoneNumberCapabilities":{ "type":"structure", "members":{ - "InboundCall":{"shape":"NullableBoolean"}, - "OutboundCall":{"shape":"NullableBoolean"}, - "InboundSMS":{"shape":"NullableBoolean"}, - "OutboundSMS":{"shape":"NullableBoolean"}, - "InboundMMS":{"shape":"NullableBoolean"}, - "OutboundMMS":{"shape":"NullableBoolean"} - } + "InboundCall":{ + "shape":"NullableBoolean", + "documentation":"

Allows or denies inbound calling for the specified phone number.

" + }, + "OutboundCall":{ + "shape":"NullableBoolean", + "documentation":"

Allows or denies outbound calling for the specified phone number.

" + }, + "InboundSMS":{ + "shape":"NullableBoolean", + "documentation":"

Allows or denies inbound SMS messaging for the specified phone number.

" + }, + "OutboundSMS":{ + "shape":"NullableBoolean", + "documentation":"

Allows or denies outbound SMS messaging for the specified phone number.

" + }, + "InboundMMS":{ + "shape":"NullableBoolean", + "documentation":"

Allows or denies inbound MMS messaging for the specified phone number.

" + }, + "OutboundMMS":{ + "shape":"NullableBoolean", + "documentation":"

Allows or denies inbound MMS messaging for the specified phone number.

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

The phone number capabilities for Amazon Chime SDK phone numbers, such as enabled inbound and outbound calling, and text messaging.

" }, "PhoneNumberCountriesList":{ "type":"list", @@ -2741,17 +4088,34 @@ "PhoneNumberCountry":{ "type":"structure", "members":{ - "CountryCode":{"shape":"Alpha2CountryCode"}, - "SupportedPhoneNumberTypes":{"shape":"PhoneNumberTypeList"} - } + "CountryCode":{ + "shape":"Alpha2CountryCode", + "documentation":"

The phone number country code. Format: ISO 3166-1 alpha-2.

" + }, + "SupportedPhoneNumberTypes":{ + "shape":"PhoneNumberTypeList", + "documentation":"

The supported phone number types.

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

The phone number's country.

" }, "PhoneNumberError":{ "type":"structure", "members":{ - "PhoneNumberId":{"shape":"SensitiveNonEmptyString"}, - "ErrorCode":{"shape":"ErrorCode"}, - "ErrorMessage":{"shape":"String"} - } + "PhoneNumberId":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The phone number ID for which the action failed.

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

The error code.

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

The error message.

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

If a phone number action fails for one or more of the phone numbers in a request, a list of the failed phone numbers is returned, along with error codes and error messages.

" }, "PhoneNumberErrorList":{ "type":"list", @@ -2769,14 +4133,36 @@ "PhoneNumberOrder":{ "type":"structure", "members":{ - "PhoneNumberOrderId":{"shape":"GuidString"}, - "ProductType":{"shape":"PhoneNumberProductType"}, - "Status":{"shape":"PhoneNumberOrderStatus"}, - "OrderType":{"shape":"PhoneNumberOrderType"}, - "OrderedPhoneNumbers":{"shape":"OrderedPhoneNumberList"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, - "UpdatedTimestamp":{"shape":"Iso8601Timestamp"} - } + "PhoneNumberOrderId":{ + "shape":"GuidString", + "documentation":"

The ID of the phone order.

" + }, + "ProductType":{ + "shape":"PhoneNumberProductType", + "documentation":"

The phone number order product type.

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

The status of the phone number order.

" + }, + "OrderType":{ + "shape":"PhoneNumberOrderType", + "documentation":"

The type of phone number being ordered, local or toll-free.

" + }, + "OrderedPhoneNumbers":{ + "shape":"OrderedPhoneNumberList", + "documentation":"

The ordered phone number details, such as the phone number in E.164 format and the phone number status.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The phone number order creation time stamp, in ISO 8601 format.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The updated phone number order time stamp, in ISO 8601 format.

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

The details of an Amazon Chime SDK phone number order.

" }, "PhoneNumberOrderList":{ "type":"list", @@ -2851,29 +4237,82 @@ "Proxy":{ "type":"structure", "members":{ - "DefaultSessionExpiryMinutes":{"shape":"Integer"}, - "Disabled":{"shape":"Boolean"}, - "FallBackPhoneNumber":{"shape":"E164PhoneNumber"}, - "PhoneNumberCountries":{"shape":"StringList"} - } + "DefaultSessionExpiryMinutes":{ + "shape":"Integer", + "documentation":"

The default number of minutes allowed for proxy sessions.

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

When true, stops proxy sessions from being created on the specified Amazon Chime SDK Voice Connector.

" + }, + "FallBackPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The phone number to route calls to after a proxy session expires.

" + }, + "PhoneNumberCountries":{ + "shape":"StringList", + "documentation":"

The countries for proxy phone numbers to be selected from.

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

The proxy configuration for an Amazon Chime SDK Voice Connector.

" }, "ProxySession":{ "type":"structure", "members":{ - "VoiceConnectorId":{"shape":"NonEmptyString128"}, - "ProxySessionId":{"shape":"NonEmptyString128"}, - "Name":{"shape":"String128"}, - "Status":{"shape":"ProxySessionStatus"}, - "ExpiryMinutes":{"shape":"PositiveInteger"}, - "Capabilities":{"shape":"CapabilityList"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, - "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, - "EndedTimestamp":{"shape":"Iso8601Timestamp"}, - "Participants":{"shape":"Participants"}, - "NumberSelectionBehavior":{"shape":"NumberSelectionBehavior"}, - "GeoMatchLevel":{"shape":"GeoMatchLevel"}, - "GeoMatchParams":{"shape":"GeoMatchParams"} - } + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

" + }, + "ProxySessionId":{ + "shape":"NonEmptyString128", + "documentation":"

The proxy session ID.

" + }, + "Name":{ + "shape":"String128", + "documentation":"

The proxy session name.

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

The proxy session status.

" + }, + "ExpiryMinutes":{ + "shape":"PositiveInteger", + "documentation":"

The number of minutes allowed for the proxy session.

" + }, + "Capabilities":{ + "shape":"CapabilityList", + "documentation":"

The proxy session capabilities.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The created time stamp, in ISO 8601 format.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The updated time stamp, in ISO 8601 format.

" + }, + "EndedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The ended time stamp, in ISO 8601 format.

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

The proxy session participants.

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

The preference for proxy phone number reuse, or stickiness, between the same participants across sessions.

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

The preference for matching the country or area code of the proxy phone number with that of the first participant.

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

The country and area code for the proxy phone number.

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

The proxy session for an Amazon Chime SDK Voice Connector.

" }, "ProxySessionNameString":{ "type":"string", @@ -2898,16 +4337,23 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID.

", "location":"uri", "locationName":"sipMediaApplicationId" }, - "SipMediaApplicationAlexaSkillConfiguration":{"shape":"SipMediaApplicationAlexaSkillConfiguration"} + "SipMediaApplicationAlexaSkillConfiguration":{ + "shape":"SipMediaApplicationAlexaSkillConfiguration", + "documentation":"

The Alexa Skill configuration.

" + } } }, "PutSipMediaApplicationAlexaSkillConfigurationResponse":{ "type":"structure", "members":{ - "SipMediaApplicationAlexaSkillConfiguration":{"shape":"SipMediaApplicationAlexaSkillConfiguration"} + "SipMediaApplicationAlexaSkillConfiguration":{ + "shape":"SipMediaApplicationAlexaSkillConfiguration", + "documentation":"

Returns the Alexa Skill configuration.

" + } } }, "PutSipMediaApplicationLoggingConfigurationRequest":{ @@ -2916,16 +4362,23 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID.

", "location":"uri", "locationName":"sipMediaApplicationId" }, - "SipMediaApplicationLoggingConfiguration":{"shape":"SipMediaApplicationLoggingConfiguration"} + "SipMediaApplicationLoggingConfiguration":{ + "shape":"SipMediaApplicationLoggingConfiguration", + "documentation":"

The logging configuration for the specified SIP media application.

" + } } }, "PutSipMediaApplicationLoggingConfigurationResponse":{ "type":"structure", "members":{ - "SipMediaApplicationLoggingConfiguration":{"shape":"SipMediaApplicationLoggingConfiguration"} + "SipMediaApplicationLoggingConfiguration":{ + "shape":"SipMediaApplicationLoggingConfiguration", + "documentation":"

The updated logging configuration for the specified SIP media application.

" + } } }, "PutVoiceConnectorEmergencyCallingConfigurationRequest":{ @@ -2937,16 +4390,23 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "EmergencyCallingConfiguration":{"shape":"EmergencyCallingConfiguration"} + "EmergencyCallingConfiguration":{ + "shape":"EmergencyCallingConfiguration", + "documentation":"

The configuration being updated.

" + } } }, "PutVoiceConnectorEmergencyCallingConfigurationResponse":{ "type":"structure", "members":{ - "EmergencyCallingConfiguration":{"shape":"EmergencyCallingConfiguration"} + "EmergencyCallingConfiguration":{ + "shape":"EmergencyCallingConfiguration", + "documentation":"

The updated configuration.

" + } } }, "PutVoiceConnectorLoggingConfigurationRequest":{ @@ -2958,16 +4418,23 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "LoggingConfiguration":{"shape":"LoggingConfiguration"} + "LoggingConfiguration":{ + "shape":"LoggingConfiguration", + "documentation":"

The logging configuration being updated.

" + } } }, "PutVoiceConnectorLoggingConfigurationResponse":{ "type":"structure", "members":{ - "LoggingConfiguration":{"shape":"LoggingConfiguration"} + "LoggingConfiguration":{ + "shape":"LoggingConfiguration", + "documentation":"

The updated logging configuration.

" + } } }, "PutVoiceConnectorOriginationRequest":{ @@ -2979,16 +4446,23 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "Origination":{"shape":"Origination"} + "Origination":{ + "shape":"Origination", + "documentation":"

The origination settings being updated.

" + } } }, "PutVoiceConnectorOriginationResponse":{ "type":"structure", "members":{ - "Origination":{"shape":"Origination"} + "Origination":{ + "shape":"Origination", + "documentation":"

The updated origination settings.

" + } } }, "PutVoiceConnectorProxyRequest":{ @@ -3001,19 +4475,35 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "DefaultSessionExpiryMinutes":{"shape":"Integer"}, - "PhoneNumberPoolCountries":{"shape":"CountryList"}, - "FallBackPhoneNumber":{"shape":"E164PhoneNumber"}, - "Disabled":{"shape":"Boolean"} + "DefaultSessionExpiryMinutes":{ + "shape":"Integer", + "documentation":"

The default number of minutes allowed for proxy session.

" + }, + "PhoneNumberPoolCountries":{ + "shape":"CountryList", + "documentation":"

The countries for proxy phone numbers to be selected from.

" + }, + "FallBackPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The phone number to route calls to after a proxy session expires.

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

When true, stops proxy sessions from being created on the specified Amazon Chime SDK Voice Connector.

" + } } }, "PutVoiceConnectorProxyResponse":{ "type":"structure", "members":{ - "Proxy":{"shape":"Proxy"} + "Proxy":{ + "shape":"Proxy", + "documentation":"

The proxy configuration details.

" + } } }, "PutVoiceConnectorStreamingConfigurationRequest":{ @@ -3025,16 +4515,23 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "StreamingConfiguration":{"shape":"StreamingConfiguration"} + "StreamingConfiguration":{ + "shape":"StreamingConfiguration", + "documentation":"

The streaming settings being updated.

" + } } }, "PutVoiceConnectorStreamingConfigurationResponse":{ "type":"structure", "members":{ - "StreamingConfiguration":{"shape":"StreamingConfiguration"} + "StreamingConfiguration":{ + "shape":"StreamingConfiguration", + "documentation":"

The updated streaming settings.

" + } } }, "PutVoiceConnectorTerminationCredentialsRequest":{ @@ -3043,10 +4540,14 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "Credentials":{"shape":"CredentialList"} + "Credentials":{ + "shape":"CredentialList", + "documentation":"

The termination credentials being updated.

" + } } }, "PutVoiceConnectorTerminationRequest":{ @@ -3058,22 +4559,30 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "Termination":{"shape":"Termination"} + "Termination":{ + "shape":"Termination", + "documentation":"

The termination settings to be updated.

" + } } }, "PutVoiceConnectorTerminationResponse":{ "type":"structure", "members":{ - "Termination":{"shape":"Termination"} + "Termination":{ + "shape":"Termination", + "documentation":"

The updated termination settings.

" + } } }, "ResourceLimitExceededException":{ "type":"structure", "members":{ }, + "documentation":"

The request exceeds the resource limit.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -3083,6 +4592,7 @@ "members":{ "PhoneNumberId":{ "shape":"SensitiveNonEmptyString", + "documentation":"

The ID of the phone number being restored.

", "location":"uri", "locationName":"phoneNumberId" } @@ -3091,7 +4601,10 @@ "RestorePhoneNumberResponse":{ "type":"structure", "members":{ - "PhoneNumber":{"shape":"PhoneNumber"} + "PhoneNumber":{ + "shape":"PhoneNumber", + "documentation":"

The restored phone number.

" + } } }, "ResultMax":{ @@ -3118,41 +4631,49 @@ "members":{ "AreaCode":{ "shape":"String", + "documentation":"

Confines a search to just the phone numbers associated with the specified area code.

", "location":"querystring", "locationName":"area-code" }, "City":{ "shape":"String", + "documentation":"

Confines a search to just the phone numbers associated with the specified city.

", "location":"querystring", "locationName":"city" }, "Country":{ "shape":"Alpha2CountryCode", + "documentation":"

Confines a search to just the phone numbers associated with the specified country.

", "location":"querystring", "locationName":"country" }, "State":{ "shape":"String", + "documentation":"

Confines a search to just the phone numbers associated with the specified state.

", "location":"querystring", "locationName":"state" }, "TollFreePrefix":{ "shape":"TollFreePrefix", + "documentation":"

Confines a search to just the phone numbers associated with the specified toll-free prefix.

", "location":"querystring", "locationName":"toll-free-prefix" }, "PhoneNumberType":{ "shape":"PhoneNumberType", + "documentation":"

Confines a search to just the phone numbers associated with the specified phone number type, either local or toll-free.

", "location":"querystring", "locationName":"phone-number-type" }, "MaxResults":{ "shape":"PhoneNumberMaxResults", + "documentation":"

The maximum number of results to return.

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

The token used to return the next page of results.

", "location":"querystring", "locationName":"next-token" } @@ -3161,8 +4682,14 @@ "SearchAvailablePhoneNumbersResponse":{ "type":"structure", "members":{ - "E164PhoneNumbers":{"shape":"E164PhoneNumberList"}, - "NextToken":{"shape":"String"} + "E164PhoneNumbers":{ + "shape":"E164PhoneNumberList", + "documentation":"

Confines a search to just the phone numbers in the E.164 format.

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

The token used to return the next page of results.

" + } } }, "SensitiveNonEmptyString":{ @@ -3178,10 +4705,22 @@ "type":"list", "member":{"shape":"SensitiveString"} }, + "ServerSideEncryptionConfiguration":{ + "type":"structure", + "required":["KmsKeyArn"], + "members":{ + "KmsKeyArn":{ + "shape":"Arn", + "documentation":"

The ARN of the KMS key used to encrypt the enrollment data in a voice profile domain. Asymmetric customer managed keys are not supported.

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

A structure that contains the configuration settings for server-side encryption.

We only support symmetric keys. Do not use asymmetric or HMAC keys, or KMS aliases.

" + }, "ServiceFailureException":{ "type":"structure", "members":{ }, + "documentation":"

The service encountered an unexpected error.

", "error":{"httpStatusCode":500}, "exception":true, "fault":true @@ -3190,6 +4729,7 @@ "type":"structure", "members":{ }, + "documentation":"

The service is currently unavailable.

", "error":{"httpStatusCode":503}, "exception":true, "fault":true @@ -3208,13 +4748,36 @@ "SipMediaApplication":{ "type":"structure", "members":{ - "SipMediaApplicationId":{"shape":"NonEmptyString"}, - "AwsRegion":{"shape":"String"}, - "Name":{"shape":"SipMediaApplicationName"}, - "Endpoints":{"shape":"SipMediaApplicationEndpointList"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, - "UpdatedTimestamp":{"shape":"Iso8601Timestamp"} - } + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "documentation":"

A SIP media application's ID.

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

The AWS Region in which the SIP media application is created.

" + }, + "Name":{ + "shape":"SipMediaApplicationName", + "documentation":"

The SIP media application's name.

" + }, + "Endpoints":{ + "shape":"SipMediaApplicationEndpointList", + "documentation":"

List of endpoints for a SIP media application. Currently, only one endpoint per SIP media application is permitted.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The SIP media application creation timestamp, in ISO 8601 format.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the SIP media application was updated.

" + }, + "SipMediaApplicationArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN of the SIP media application.

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

The details of the SIP media application, including name and endpoints. An AWS account can have multiple SIP media applications.

" }, "SipMediaApplicationAlexaSkillConfiguration":{ "type":"structure", @@ -3223,21 +4786,36 @@ "AlexaSkillIds" ], "members":{ - "AlexaSkillStatus":{"shape":"AlexaSkillStatus"}, - "AlexaSkillIds":{"shape":"AlexaSkillIdList"} - } + "AlexaSkillStatus":{ + "shape":"AlexaSkillStatus", + "documentation":"

The status of the Alexa Skill configuration.

" + }, + "AlexaSkillIds":{ + "shape":"AlexaSkillIdList", + "documentation":"

The ID of the Alexa Skill configuration.

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

The Alexa Skill configuration of a SIP media application.

" }, "SipMediaApplicationCall":{ "type":"structure", "members":{ - "TransactionId":{"shape":"GuidString"} - } + "TransactionId":{ + "shape":"GuidString", + "documentation":"

The call's transaction ID.

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

A Call instance for a SIP media application.

" }, "SipMediaApplicationEndpoint":{ "type":"structure", "members":{ - "LambdaArn":{"shape":"FunctionArn"} - } + "LambdaArn":{ + "shape":"FunctionArn", + "documentation":"

Valid Amazon Resource Name (ARN) of the Lambda function, version, or alias. The function must be created in the same AWS Region as the SIP media application.

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

The endpoint assigned to a SIP media application.

" }, "SipMediaApplicationEndpointList":{ "type":"list", @@ -3252,26 +4830,56 @@ "SipMediaApplicationLoggingConfiguration":{ "type":"structure", "members":{ - "EnableSipMediaApplicationMessageLogs":{"shape":"Boolean"} - } + "EnableSipMediaApplicationMessageLogs":{ + "shape":"Boolean", + "documentation":"

Enables message logging for the specified SIP media application.

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

The logging configuration of a SIP media application.

" }, "SipMediaApplicationName":{ "type":"string", "max":256, - "min":1 + "min":1, + "pattern":"[a-zA-Z0-9 _.-]+" }, "SipRule":{ "type":"structure", "members":{ - "SipRuleId":{"shape":"NonEmptyString"}, - "Name":{"shape":"SipRuleName"}, - "Disabled":{"shape":"Boolean"}, - "TriggerType":{"shape":"SipRuleTriggerType"}, - "TriggerValue":{"shape":"NonEmptyString"}, - "TargetApplications":{"shape":"SipRuleTargetApplicationList"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, - "UpdatedTimestamp":{"shape":"Iso8601Timestamp"} - } + "SipRuleId":{ + "shape":"NonEmptyString", + "documentation":"

A SIP rule's ID.

" + }, + "Name":{ + "shape":"SipRuleName", + "documentation":"

A SIP rule's name.

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

Indicates whether the SIP rule is enabled or disabled. You must disable a rule before you can delete it.

" + }, + "TriggerType":{ + "shape":"SipRuleTriggerType", + "documentation":"

The type of trigger set for a SIP rule, either a phone number or a URI request host name.

" + }, + "TriggerValue":{ + "shape":"NonEmptyString", + "documentation":"

The value set for a SIP rule's trigger type. Either a phone number or a URI hostname.

" + }, + "TargetApplications":{ + "shape":"SipRuleTargetApplicationList", + "documentation":"

The target SIP media application and other details, such as priority and AWS Region, to be specified in the SIP rule. Only one SIP rule per AWS Region can be provided.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the SIP rule was created, in ISO 8601 format.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the SIP rule was updated, in ISO 8601 format.

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

The details of a SIP rule, including name, triggers, and target applications. An AWS account can have multiple SIP rules.

" }, "SipRuleList":{ "type":"list", @@ -3280,15 +4888,26 @@ "SipRuleName":{ "type":"string", "max":256, - "min":1 + "min":1, + "pattern":"[a-zA-Z0-9 _.-]+" }, "SipRuleTargetApplication":{ "type":"structure", "members":{ - "SipMediaApplicationId":{"shape":"NonEmptyString"}, - "Priority":{"shape":"SipApplicationPriority"}, - "AwsRegion":{"shape":"String"} - } + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of a rule's target SIP media application.

" + }, + "Priority":{ + "shape":"SipApplicationPriority", + "documentation":"

The priority setting of a rule's target SIP media application.

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

The AWS Region of a rule's target SIP media application.

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

A target SIP media application and other details, such as priority and AWS Region, to be specified in the SIP rule. Only one SIP rule per AWS Region can be provided.

" }, "SipRuleTargetApplicationList":{ "type":"list", @@ -3303,6 +4922,192 @@ "RequestUriHostname" ] }, + "SpeakerSearchDetails":{ + "type":"structure", + "members":{ + "Results":{ + "shape":"SpeakerSearchResultList", + "documentation":"

The result value in the speaker search details.

" + }, + "VoiceprintGenerationStatus":{ + "shape":"NonEmptyString256", + "documentation":"

The status of a voice print generation operation, VoiceprintGenerationSuccess or VoiceprintGenerationFailure..

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

The details of a speaker search task.

" + }, + "SpeakerSearchResult":{ + "type":"structure", + "members":{ + "ConfidenceScore":{ + "shape":"ConfidenceScore", + "documentation":"

The confidence score in the speaker search analysis.

" + }, + "VoiceProfileId":{ + "shape":"NonEmptyString256", + "documentation":"

The voice profile ID.

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

The result of a speaker search analysis.

" + }, + "SpeakerSearchResultList":{ + "type":"list", + "member":{"shape":"SpeakerSearchResult"} + }, + "SpeakerSearchTask":{ + "type":"structure", + "members":{ + "SpeakerSearchTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The speaker search task ID.

" + }, + "SpeakerSearchTaskStatus":{ + "shape":"NonEmptyString", + "documentation":"

The status of the speaker search task, IN_QUEUE, IN_PROGRESS, PARTIAL_SUCCESS, SUCCEEDED, FAILED, or STOPPED.

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

The call details of a speaker search task.

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

The details of a speaker search task.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a speaker search task was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a speaker search task was updated.

" + }, + "StartedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the speaker search task began.

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

A detailed message about the status of a speaker search.

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

A representation of an asynchronous request to perform speaker search analysis on a Voice Connector call.

" + }, + "StartSpeakerSearchTaskRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "TransactionId", + "VoiceProfileDomainId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", + "location":"uri", + "locationName":"VoiceConnectorId" + }, + "TransactionId":{ + "shape":"NonEmptyString256", + "documentation":"

The transaction ID of the call being analyzed.

" + }, + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice profile domain that will store the voice profile.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestId", + "documentation":"

The unique identifier for the client request. Use a different token for different speaker search tasks.

" + } + } + }, + "StartSpeakerSearchTaskResponse":{ + "type":"structure", + "members":{ + "SpeakerSearchTask":{ + "shape":"SpeakerSearchTask", + "documentation":"

The details of the speaker search task.

" + } + } + }, + "StartVoiceToneAnalysisTaskRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "TransactionId", + "LanguageCode" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", + "location":"uri", + "locationName":"VoiceConnectorId" + }, + "TransactionId":{ + "shape":"NonEmptyString256", + "documentation":"

The transaction ID.

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

The language code.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestId", + "documentation":"

The unique identifier for the client request. Use a different token for different voice tone analysis tasks.

" + } + } + }, + "StartVoiceToneAnalysisTaskResponse":{ + "type":"structure", + "members":{ + "VoiceToneAnalysisTask":{ + "shape":"VoiceToneAnalysisTask", + "documentation":"

The details of the voice tone analysis task.

" + } + } + }, + "StopSpeakerSearchTaskRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "SpeakerSearchTaskId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", + "location":"uri", + "locationName":"VoiceConnectorId" + }, + "SpeakerSearchTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The speaker search task ID.

", + "location":"uri", + "locationName":"SpeakerSearchTaskId" + } + } + }, + "StopVoiceToneAnalysisTaskRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "VoiceToneAnalysisTaskId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", + "location":"uri", + "locationName":"VoiceConnectorId" + }, + "VoiceToneAnalysisTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice tone analysis task.

", + "location":"uri", + "locationName":"VoiceToneAnalysisTaskId" + } + } + }, "StreamingConfiguration":{ "type":"structure", "required":[ @@ -3310,16 +5115,34 @@ "Disabled" ], "members":{ - "DataRetentionInHours":{"shape":"DataRetentionInHours"}, - "Disabled":{"shape":"Boolean"}, - "StreamingNotificationTargets":{"shape":"StreamingNotificationTargetList"} - } + "DataRetentionInHours":{ + "shape":"DataRetentionInHours", + "documentation":"

The amount of time, in hours, to the Kinesis data.

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

When true, streaming to Kinesis is off.

" + }, + "StreamingNotificationTargets":{ + "shape":"StreamingNotificationTargetList", + "documentation":"

The streaming notification targets.

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

The call analytics configuration.

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

The streaming configuration associated with an Amazon Chime SDK Voice Connector. Specifies whether media streaming is enabled for sending to Amazon Kinesis, and shows the retention period for the Amazon Kinesis data, in hours.

" }, "StreamingNotificationTarget":{ "type":"structure", "members":{ - "NotificationTarget":{"shape":"NotificationTarget"} - } + "NotificationTarget":{ + "shape":"NotificationTarget", + "documentation":"

The streaming notification target.

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

The target recipient for a streaming configuration notification.

" }, "StreamingNotificationTargetList":{ "type":"list", @@ -3336,27 +5159,110 @@ "type":"list", "member":{"shape":"String"} }, - "Termination":{ + "Tag":{ "type":"structure", + "required":[ + "Key", + "Value" + ], "members":{ - "CpsLimit":{"shape":"CpsLimit"}, - "DefaultPhoneNumber":{"shape":"E164PhoneNumber"}, - "CallingRegions":{"shape":"CallingRegionList"}, - "CidrAllowedList":{"shape":"StringList"}, - "Disabled":{"shape":"Boolean"} + "Key":{ + "shape":"TagKey", + "documentation":"

The tag's key.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The tag's value.

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

Describes a tag applied to a resource.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "sensitive":true + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "Tags" + ], + "members":{ + "ResourceARN":{ + "shape":"Arn", + "documentation":"

The ARN of the resource being tagged.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

A list of the tags being added to the resource.

" + } } }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "sensitive":true + }, + "Termination":{ + "type":"structure", + "members":{ + "CpsLimit":{ + "shape":"CpsLimit", + "documentation":"

The limit on calls per second. Max value based on account service quota. Default value of 1.

" + }, + "DefaultPhoneNumber":{ + "shape":"E164PhoneNumber", + "documentation":"

The default outbound calling number.

" + }, + "CallingRegions":{ + "shape":"CallingRegionList", + "documentation":"

The countries to which calls are allowed, in ISO 3166-1 alpha-2 format. Required.

" + }, + "CidrAllowedList":{ + "shape":"StringList", + "documentation":"

The IP addresses allowed to make calls, in CIDR format.

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

When termination is disabled, outbound calls cannot be made.

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

Termination settings enable SIP hosts to make outbound calls using an Amazon Chime SDK Voice Connector.

" + }, "TerminationHealth":{ "type":"structure", "members":{ - "Timestamp":{"shape":"Iso8601Timestamp"}, - "Source":{"shape":"String"} - } + "Timestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The timestamp, in ISO 8601 format.

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

The source IP address.

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

The termination health details, including the source IP address and timestamp of the last successful SIP OPTIONS message from your SIP infrastructure.

" }, "ThrottledClientException":{ "type":"structure", "members":{ }, + "documentation":"

The number of customer requests exceeds the request rate limit.

", "error":{"httpStatusCode":429}, "exception":true }, @@ -3370,13 +5276,42 @@ "type":"structure", "members":{ }, + "documentation":"

The client isn't authorized to request a resource.

", "error":{"httpStatusCode":401}, "exception":true }, + "UnprocessableEntityException":{ + "type":"structure", + "members":{ + }, + "documentation":"

A well-formed request couldn't be followed due to semantic errors.

", + "error":{"httpStatusCode":422}, + "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeys" + ], + "members":{ + "ResourceARN":{ + "shape":"Arn", + "documentation":"

The ARN of the resource having its tags removed.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

The keys of the tags being removed from the resource.

" + } + } + }, "UpdateGlobalSettingsRequest":{ "type":"structure", "members":{ - "VoiceConnector":{"shape":"VoiceConnectorSettings"} + "VoiceConnector":{ + "shape":"VoiceConnectorSettings", + "documentation":"

The Voice Connector settings.

" + } } }, "UpdatePhoneNumberRequest":{ @@ -3385,21 +5320,38 @@ "members":{ "PhoneNumberId":{ "shape":"SensitiveNonEmptyString", + "documentation":"

The phone number ID.

", "location":"uri", "locationName":"phoneNumberId" }, - "ProductType":{"shape":"PhoneNumberProductType"}, - "CallingName":{"shape":"CallingName"} + "ProductType":{ + "shape":"PhoneNumberProductType", + "documentation":"

The product type.

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

The outbound calling name associated with the phone number.

" + } } }, "UpdatePhoneNumberRequestItem":{ "type":"structure", "required":["PhoneNumberId"], "members":{ - "PhoneNumberId":{"shape":"SensitiveNonEmptyString"}, - "ProductType":{"shape":"PhoneNumberProductType"}, - "CallingName":{"shape":"CallingName"} - } + "PhoneNumberId":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The phone number ID to update.

" + }, + "ProductType":{ + "shape":"PhoneNumberProductType", + "documentation":"

The product type to update.

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

The outbound calling name to update.

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

The phone number ID, product type, or calling name fields to update, used with the BatchUpdatePhoneNumber and UpdatePhoneNumber actions.

" }, "UpdatePhoneNumberRequestItemList":{ "type":"list", @@ -3408,14 +5360,20 @@ "UpdatePhoneNumberResponse":{ "type":"structure", "members":{ - "PhoneNumber":{"shape":"PhoneNumber"} + "PhoneNumber":{ + "shape":"PhoneNumber", + "documentation":"

The updated phone number details.

" + } } }, "UpdatePhoneNumberSettingsRequest":{ "type":"structure", "required":["CallingName"], "members":{ - "CallingName":{"shape":"CallingName"} + "CallingName":{ + "shape":"CallingName", + "documentation":"

The default outbound calling name for the account.

" + } } }, "UpdateProxySessionRequest":{ @@ -3428,22 +5386,33 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString128", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, "ProxySessionId":{ "shape":"NonEmptyString128", + "documentation":"

The proxy session ID.

", "location":"uri", "locationName":"proxySessionId" }, - "Capabilities":{"shape":"CapabilityList"}, - "ExpiryMinutes":{"shape":"PositiveInteger"} + "Capabilities":{ + "shape":"CapabilityList", + "documentation":"

The proxy session capabilities.

" + }, + "ExpiryMinutes":{ + "shape":"PositiveInteger", + "documentation":"

The number of minutes allowed for the proxy session.

" + } } }, "UpdateProxySessionResponse":{ "type":"structure", "members":{ - "ProxySession":{"shape":"ProxySession"} + "ProxySession":{ + "shape":"ProxySession", + "documentation":"

The updated proxy session details.

" + } } }, "UpdateSipMediaApplicationCallRequest":{ @@ -3456,21 +5425,29 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The ID of the SIP media application handling the call.

", "location":"uri", "locationName":"sipMediaApplicationId" }, "TransactionId":{ "shape":"NonEmptyString", + "documentation":"

The ID of the call transaction.

", "location":"uri", "locationName":"transactionId" }, - "Arguments":{"shape":"SMAUpdateCallArgumentsMap"} + "Arguments":{ + "shape":"SMAUpdateCallArgumentsMap", + "documentation":"

Arguments made available to the Lambda function as part of the CALL_UPDATE_REQUESTED event. Can contain 0-20 key-value pairs.

" + } } }, "UpdateSipMediaApplicationCallResponse":{ "type":"structure", "members":{ - "SipMediaApplicationCall":{"shape":"SipMediaApplicationCall"} + "SipMediaApplicationCall":{ + "shape":"SipMediaApplicationCall", + "documentation":"

A Call instance for a SIP media application.

" + } } }, "UpdateSipMediaApplicationRequest":{ @@ -3479,17 +5456,27 @@ "members":{ "SipMediaApplicationId":{ "shape":"NonEmptyString", + "documentation":"

The SIP media application ID.

", "location":"uri", "locationName":"sipMediaApplicationId" }, - "Name":{"shape":"SipMediaApplicationName"}, - "Endpoints":{"shape":"SipMediaApplicationEndpointList"} + "Name":{ + "shape":"SipMediaApplicationName", + "documentation":"

The new name for the specified SIP media application.

" + }, + "Endpoints":{ + "shape":"SipMediaApplicationEndpointList", + "documentation":"

The new set of endpoints for the specified SIP media application.

" + } } }, "UpdateSipMediaApplicationResponse":{ "type":"structure", "members":{ - "SipMediaApplication":{"shape":"SipMediaApplication"} + "SipMediaApplication":{ + "shape":"SipMediaApplication", + "documentation":"

The updated SIP media application’s details.

" + } } }, "UpdateSipRuleRequest":{ @@ -3501,18 +5488,31 @@ "members":{ "SipRuleId":{ "shape":"NonEmptyString", + "documentation":"

The SIP rule ID.

", "location":"uri", "locationName":"sipRuleId" }, - "Name":{"shape":"SipRuleName"}, - "Disabled":{"shape":"NullableBoolean"}, - "TargetApplications":{"shape":"SipRuleTargetApplicationList"} + "Name":{ + "shape":"SipRuleName", + "documentation":"

The new name for the specified SIP rule.

" + }, + "Disabled":{ + "shape":"NullableBoolean", + "documentation":"

The new value that indicates whether the rule is disabled.

" + }, + "TargetApplications":{ + "shape":"SipRuleTargetApplicationList", + "documentation":"

The new list of target applications.

" + } } }, "UpdateSipRuleResponse":{ "type":"structure", "members":{ - "SipRule":{"shape":"SipRule"} + "SipRule":{ + "shape":"SipRule", + "documentation":"

The updated SIP rule details.

" + } } }, "UpdateVoiceConnectorGroupRequest":{ @@ -3525,17 +5525,27 @@ "members":{ "VoiceConnectorGroupId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorGroupId" }, - "Name":{"shape":"VoiceConnectorGroupName"}, - "VoiceConnectorItems":{"shape":"VoiceConnectorItemList"} + "Name":{ + "shape":"VoiceConnectorGroupName", + "documentation":"

The name of the Voice Connector group.

" + }, + "VoiceConnectorItems":{ + "shape":"VoiceConnectorItemList", + "documentation":"

The VoiceConnectorItems to associate with the Voice Connector group.

" + } } }, "UpdateVoiceConnectorGroupResponse":{ "type":"structure", "members":{ - "VoiceConnectorGroup":{"shape":"VoiceConnectorGroup"} + "VoiceConnectorGroup":{ + "shape":"VoiceConnectorGroup", + "documentation":"

The updated Voice Connector group.

" + } } }, "UpdateVoiceConnectorRequest":{ @@ -3548,17 +5558,84 @@ "members":{ "VoiceConnectorId":{ "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

", "location":"uri", "locationName":"voiceConnectorId" }, - "Name":{"shape":"VoiceConnectorName"}, - "RequireEncryption":{"shape":"Boolean"} + "Name":{ + "shape":"VoiceConnectorName", + "documentation":"

The name of the Voice Connector.

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

When enabled, requires encryption for the Voice Connector.

" + } } }, "UpdateVoiceConnectorResponse":{ "type":"structure", "members":{ - "VoiceConnector":{"shape":"VoiceConnector"} + "VoiceConnector":{ + "shape":"VoiceConnector", + "documentation":"

The updated Voice Connector details.

" + } + } + }, + "UpdateVoiceProfileDomainRequest":{ + "type":"structure", + "required":["VoiceProfileDomainId"], + "members":{ + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The domain ID.

", + "location":"uri", + "locationName":"VoiceProfileDomainId" + }, + "Name":{ + "shape":"VoiceProfileDomainName", + "documentation":"

The name of the voice profile domain.

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

The description of the voice profile domain.

" + } + } + }, + "UpdateVoiceProfileDomainResponse":{ + "type":"structure", + "members":{ + "VoiceProfileDomain":{ + "shape":"VoiceProfileDomain", + "documentation":"

The updated details of the voice profile domain.

" + } + } + }, + "UpdateVoiceProfileRequest":{ + "type":"structure", + "required":[ + "VoiceProfileId", + "SpeakerSearchTaskId" + ], + "members":{ + "VoiceProfileId":{ + "shape":"NonEmptyString256", + "documentation":"

The profile ID.

", + "location":"uri", + "locationName":"VoiceProfileId" + }, + "SpeakerSearchTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the speaker search task.

" + } + } + }, + "UpdateVoiceProfileResponse":{ + "type":"structure", + "members":{ + "VoiceProfile":{ + "shape":"VoiceProfile", + "documentation":"

The updated voice profile settings.

" + } } }, "ValidateE911AddressRequest":{ @@ -3573,22 +5650,55 @@ "PostalCode" ], "members":{ - "AwsAccountId":{"shape":"NonEmptyString"}, - "StreetNumber":{"shape":"SensitiveNonEmptyString"}, - "StreetInfo":{"shape":"SensitiveNonEmptyString"}, - "City":{"shape":"SensitiveNonEmptyString"}, - "State":{"shape":"SensitiveNonEmptyString"}, - "Country":{"shape":"SensitiveNonEmptyString"}, - "PostalCode":{"shape":"SensitiveNonEmptyString"} + "AwsAccountId":{ + "shape":"NonEmptyString", + "documentation":"

The AWS account ID.

" + }, + "StreetNumber":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address street number, such as 200 or 2121.

" + }, + "StreetInfo":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address street information, such as 8th Avenue.

" + }, + "City":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address city, such as Portland.

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

The address state, such as ME.

" + }, + "Country":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The country in the address being validated.

" + }, + "PostalCode":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The dress postal code, such 04352.

" + } } }, "ValidateE911AddressResponse":{ "type":"structure", "members":{ - "ValidationResult":{"shape":"ValidationResult"}, - "AddressExternalId":{"shape":"String"}, - "Address":{"shape":"Address"}, - "CandidateAddressList":{"shape":"CandidateAddressList"} + "ValidationResult":{ + "shape":"ValidationResult", + "documentation":"

Number indicating the result of address validation. 0 means the address was perfect as-is and successfully validated. 1 means the address was corrected. 2 means the address sent was not close enough and was not validated.

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

The ID that represents the address.

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

The validated address.

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

The list of address suggestions..

" + } } }, "ValidationResult":{ @@ -3599,15 +5709,40 @@ "VoiceConnector":{ "type":"structure", "members":{ - "VoiceConnectorId":{"shape":"NonEmptyString"}, - "AwsRegion":{"shape":"VoiceConnectorAwsRegion"}, - "Name":{"shape":"VoiceConnectorName"}, - "OutboundHostName":{"shape":"String"}, - "RequireEncryption":{"shape":"Boolean"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, - "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, - "VoiceConnectorArn":{"shape":"NonEmptyString"} - } + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "documentation":"

The Voice Connector's ID.

" + }, + "AwsRegion":{ + "shape":"VoiceConnectorAwsRegion", + "documentation":"

The AWS Region in which the Voice Connector is created. Default: us-east-1.

" + }, + "Name":{ + "shape":"VoiceConnectorName", + "documentation":"

The Voice Connector's name.

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

The outbound host name for the Voice Connector.

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

Enables or disables encryption for the Voice Connector.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The Voice Connector's creation timestamp, in ISO 8601 format.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The Voice Connector's updated timestamp, in ISO 8601 format.

" + }, + "VoiceConnectorArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN of the Voice Connector.

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

The Amazon Chime SDK Voice Connector configuration, including outbound host name and encryption settings.

" }, "VoiceConnectorAwsRegion":{ "type":"string", @@ -3631,13 +5766,32 @@ "VoiceConnectorGroup":{ "type":"structure", "members":{ - "VoiceConnectorGroupId":{"shape":"NonEmptyString"}, - "Name":{"shape":"VoiceConnectorGroupName"}, - "VoiceConnectorItems":{"shape":"VoiceConnectorItemList"}, - "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, - "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, - "VoiceConnectorGroupArn":{"shape":"NonEmptyString"} - } + "VoiceConnectorGroupId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of a Voice Connector group.

" + }, + "Name":{ + "shape":"VoiceConnectorGroupName", + "documentation":"

The name of a Voice Connector group.

" + }, + "VoiceConnectorItems":{ + "shape":"VoiceConnectorItemList", + "documentation":"

The Voice Connectors to which you route inbound calls.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The Voice Connector group's creation time stamp, in ISO 8601 format.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The Voice Connector group's creation time stamp, in ISO 8601 format.

" + }, + "VoiceConnectorGroupArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN of the Voice Connector group.

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

The Amazon Chime SDK Voice Connector group configuration, including associated Voice Connectors. You can include Voice Connectors from different AWS Regions in a group. This creates a fault tolerant mechanism for fallback in case of availability events.

" }, "VoiceConnectorGroupList":{ "type":"list", @@ -3646,7 +5800,8 @@ "VoiceConnectorGroupName":{ "type":"string", "max":256, - "min":1 + "min":1, + "pattern":"[a-zA-Z0-9 _.-]+" }, "VoiceConnectorItem":{ "type":"structure", @@ -3655,9 +5810,16 @@ "Priority" ], "members":{ - "VoiceConnectorId":{"shape":"NonEmptyString"}, - "Priority":{"shape":"VoiceConnectorItemPriority"} - } + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "documentation":"

The Voice Connector ID.

" + }, + "Priority":{ + "shape":"VoiceConnectorItemPriority", + "documentation":"

The priority setting of a Voice Connector item. Calls are routed to hosts in priority order, with 1 as the highest priority. When hosts have equal priority, the system distributes calls among them based on their relative weight.

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

For Amazon Chime SDK Voice Connector groups, the Amazon Chime SDK Voice Connectors to which you route inbound calls. Includes priority configuration settings. Limit: 3 VoiceConnectorItems per Voice Connector group.

" }, "VoiceConnectorItemList":{ "type":"list", @@ -3675,13 +5837,196 @@ "VoiceConnectorName":{ "type":"string", "max":256, - "min":1 + "min":1, + "pattern":"[a-zA-Z0-9 _.-]+" }, "VoiceConnectorSettings":{ "type":"structure", "members":{ - "CdrBucket":{"shape":"String"} - } + "CdrBucket":{ + "shape":"String", + "documentation":"

The S3 bucket that stores the Voice Connector's call detail records.

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

The Amazon Chime SDK Voice Connector settings. Includes any Amazon S3 buckets designated for storing call detail records.

" + }, + "VoiceProfile":{ + "type":"structure", + "members":{ + "VoiceProfileId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice profile.

" + }, + "VoiceProfileArn":{ + "shape":"Arn", + "documentation":"

The ARN of the voice profile.

" + }, + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the domain that contains the voice profile.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the voice profile was created and enrolled.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the voice profile was last updated.

" + }, + "ExpirationTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a voice profile expires unless you re-enroll the caller via the UpdateVoiceProfile API.

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

The combination of a voice print and caller ID.

" + }, + "VoiceProfileDomain":{ + "type":"structure", + "members":{ + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice profile domain.

" + }, + "VoiceProfileDomainArn":{ + "shape":"Arn", + "documentation":"

The voice profile domain's Amazon Resource Number (ARN).

" + }, + "Name":{ + "shape":"VoiceProfileDomainName", + "documentation":"

The name of the voice profile domain.

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

The description of the voice profile domain.

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

A structure that contains the configuration settings for server-side encryption.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the voice profile domain was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the voice profile was last updated.

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

A collection of voice profiles.

" + }, + "VoiceProfileDomainDescription":{ + "type":"string", + "max":1024, + "min":0 + }, + "VoiceProfileDomainName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9 _.-]+" + }, + "VoiceProfileDomainSummary":{ + "type":"structure", + "members":{ + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice profile domain summary.

" + }, + "VoiceProfileDomainArn":{ + "shape":"Arn", + "documentation":"

The ARN of a voice profile in a voice profile domain summary.

" + }, + "Name":{ + "shape":"VoiceProfileDomainName", + "documentation":"

The name of the voice profile domain summary.

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

Describes the voice profile domain summary.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the voice profile domain summary was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the voice profile domain summary was last updated.

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

A high-level overview of a voice profile domain.

" + }, + "VoiceProfileDomainSummaryList":{ + "type":"list", + "member":{"shape":"VoiceProfileDomainSummary"} + }, + "VoiceProfileSummary":{ + "type":"structure", + "members":{ + "VoiceProfileId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice profile in a voice profile summary.

" + }, + "VoiceProfileArn":{ + "shape":"Arn", + "documentation":"

The ARN of the voice profile in a voice profile summary.

" + }, + "VoiceProfileDomainId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice profile domain in a voice profile summary.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a voice profile summary was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a voice profile summary was last updated.

" + }, + "ExpirationTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

Extends the life of the voice profile. You can use UpdateVoiceProfile to refresh an existing voice profile's voice print and extend the life of the summary.

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

A high-level summary of a voice profile.

" + }, + "VoiceProfileSummaryList":{ + "type":"list", + "member":{"shape":"VoiceProfileSummary"} + }, + "VoiceToneAnalysisTask":{ + "type":"structure", + "members":{ + "VoiceToneAnalysisTaskId":{ + "shape":"NonEmptyString256", + "documentation":"

The ID of the voice tone analysis task.

" + }, + "VoiceToneAnalysisTaskStatus":{ + "shape":"NonEmptyString", + "documentation":"

The status of a voice tone analysis task, IN_QUEUE, IN_PROGRESS, PARTIAL_SUCCESS, SUCCEEDED, FAILED, or STOPPED.

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

The call details of a voice tone analysis task.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a voice tone analysis task was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a voice tone analysis task was updated.

" + }, + "StartedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which a voice tone analysis task started.

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

The status of a voice tone analysis task.

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

A representation of an asynchronous request to perform voice tone analysis on a Voice Connector call.

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

The Amazon Chime SDK telephony APIs in this section enable developers to create PSTN calling solutions that use Amazon Chime SDK Voice Connectors, and Amazon Chime SDK SIP media applications. Developers can also order and manage phone numbers, create and manage Voice Connectors and SIP media applications, and run voice analytics.

" } diff --git a/services/cleanrooms/pom.xml b/services/cleanrooms/pom.xml index cf5afb71328d..eff39092e741 100644 --- a/services/cleanrooms/pom.xml +++ b/services/cleanrooms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cleanrooms AWS Java SDK :: Services :: Clean Rooms diff --git a/services/cleanrooms/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/cleanrooms/src/main/resources/codegen-resources/endpoint-rule-set.json index 10a0cadea839..5ff0ca71b0f9 100644 --- a/services/cleanrooms/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/cleanrooms/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cleanrooms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cleanrooms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cleanrooms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cleanrooms-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cleanrooms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://cleanrooms.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cleanrooms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://cleanrooms.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/cleanrooms/src/main/resources/codegen-resources/service-2.json b/services/cleanrooms/src/main/resources/codegen-resources/service-2.json index 0d457a9bf29e..edd5c21ec4c5 100644 --- a/services/cleanrooms/src/main/resources/codegen-resources/service-2.json +++ b/services/cleanrooms/src/main/resources/codegen-resources/service-2.json @@ -417,6 +417,7 @@ "input":{"shape":"ListConfiguredTableAssociationsInput"}, "output":{"shape":"ListConfiguredTableAssociationsOutput"}, "errors":[ + {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, @@ -486,6 +487,7 @@ "input":{"shape":"ListProtectedQueriesInput"}, "output":{"shape":"ListProtectedQueriesOutput"}, "errors":[ + {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, @@ -511,6 +513,21 @@ ], "documentation":"

Lists the schemas for relations within a collaboration.

" }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all of the tags that have been added to a resource.

" + }, "StartProtectedQuery":{ "name":"StartProtectedQuery", "http":{ @@ -530,6 +547,36 @@ ], "documentation":"

Creates a protected query that is started by AWS Clean Rooms.

" }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Tags a resource.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Removes a tag or list of tags from a resource.

" + }, "UpdateCollaboration":{ "name":"UpdateCollaboration", "http":{ @@ -730,6 +777,7 @@ "AggregationConstraintMinimumInteger":{ "type":"integer", "box":true, + "max":100000, "min":2 }, "AggregationConstraints":{ @@ -744,7 +792,7 @@ "AllowedColumnList":{ "type":"list", "member":{"shape":"ColumnName"}, - "max":250, + "max":100, "min":1 }, "AnalysisMethod":{ @@ -970,6 +1018,12 @@ "type":"boolean", "box":true }, + "CleanroomsArn":{ + "type":"string", + "max":100, + "min":0, + "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:[\\d\\w/-]+" + }, "Collaboration":{ "type":"structure", "required":[ @@ -1554,6 +1608,10 @@ "queryLogStatus":{ "shape":"CollaborationQueryLogStatus", "documentation":"

An indicator as to whether query logging has been enabled or disabled for the collaboration.

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

An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.

" } } }, @@ -1631,6 +1689,10 @@ "roleArn":{ "shape":"RoleArn", "documentation":"

The service will assume this role to access catalog metadata and query the table.

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

An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.

" } } }, @@ -1672,6 +1734,10 @@ "analysisMethod":{ "shape":"AnalysisMethod", "documentation":"

The analysis method for the configured tables. The only valid value is currently `DIRECT_QUERY`.

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

An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.

" } } }, @@ -1699,6 +1765,10 @@ "queryLogStatus":{ "shape":"MembershipQueryLogStatus", "documentation":"

An indicator as to whether query logging has been enabled or disabled for the collaboration.

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

An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.

" } } }, @@ -2427,6 +2497,28 @@ } } }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"CleanroomsArn", + "documentation":"

The Amazon Resource Name (ARN) associated with the resource you want to list tags on.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

A map of objects specifying each key name and value.

" + } + } + }, "Long":{ "type":"long", "box":true @@ -3036,7 +3128,7 @@ }, "partitionKeys":{ "shape":"ColumnList", - "documentation":"

The partition keys for the data set underlying this schema.

" + "documentation":"

The partition keys for the dataset underlying this schema.

" }, "analysisRuleTypes":{ "shape":"AnalysisRuleTypeList", @@ -3238,9 +3330,56 @@ "documentation":"

If present, a reference to the AWS Glue table referred to by this table reference.

" } }, - "documentation":"

A pointer to the data set that underlies this table. Currently, this can only be an AWS Glue table.

", + "documentation":"

A pointer to the dataset that underlies this table. Currently, this can only be an AWS Glue table.

", "union":true }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"(?!aws:).{1,128}" + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "documentation":"

Map of tags assigned to a resource

", + "max":200, + "min":0 + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"CleanroomsArn", + "documentation":"

The Amazon Resource Name (ARN) associated with the resource you want to tag.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A map of objects specifying each key name and value.

" + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, "TargetProtectedQueryStatus":{ "type":"string", "enum":["CANCELLED"] @@ -3264,6 +3403,32 @@ "min":36, "pattern":".*[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}.*" }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"CleanroomsArn", + "documentation":"

The Amazon Resource Name (ARN) associated with the resource you want to remove the tag from.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "documentation":"

A list of key names of tags to be removed.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, "UpdateCollaborationInput":{ "type":"structure", "required":["collaborationIdentifier"], @@ -3504,9 +3669,10 @@ "type":"string", "enum":[ "FIELD_VALIDATION_FAILED", - "INVALID_CONFIGURATION" + "INVALID_CONFIGURATION", + "INVALID_QUERY" ] } }, - "documentation":"

AWS Clean Rooms is in preview release and is subject to change.

Welcome to the AWS Clean Rooms API Reference.

AWS Clean Rooms is an AWS service that helps multiple parties to join their data together in a secure collaboration workspace. In the collaboration, members who can query and receive results can get insights into the combined data without either party getting access to the other party's raw data.

To learn more about AWS Clean Rooms concepts, procedures, and best practices, see the AWS Clean Rooms User Guide.

" + "documentation":"

Welcome to the AWS Clean Rooms API Reference.

AWS Clean Rooms is an AWS service that helps multiple parties to join their data together in a secure collaboration workspace. In the collaboration, members who can query and receive results can get insights into the collective datasets without either party getting access to the other party's raw data.

To learn more about AWS Clean Rooms concepts, procedures, and best practices, see the AWS Clean Rooms User Guide.

" } diff --git a/services/cloud9/pom.xml b/services/cloud9/pom.xml index 1ea201b85905..78cb9dc3256b 100644 --- a/services/cloud9/pom.xml +++ b/services/cloud9/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 cloud9 diff --git a/services/cloudcontrol/pom.xml b/services/cloudcontrol/pom.xml index 0d2b5c2d7995..817ce84c4a15 100644 --- a/services/cloudcontrol/pom.xml +++ b/services/cloudcontrol/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudcontrol AWS Java SDK :: Services :: Cloud Control diff --git a/services/clouddirectory/pom.xml b/services/clouddirectory/pom.xml index 12acdfff8b4a..008ca02e2513 100644 --- a/services/clouddirectory/pom.xml +++ b/services/clouddirectory/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT clouddirectory AWS Java SDK :: Services :: Amazon CloudDirectory diff --git a/services/cloudformation/pom.xml b/services/cloudformation/pom.xml index 60f568c97894..8d4f985c5cbe 100644 --- a/services/cloudformation/pom.xml +++ b/services/cloudformation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudformation AWS Java SDK :: Services :: AWS CloudFormation diff --git a/services/cloudformation/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/cloudformation/src/main/resources/codegen-resources/endpoint-rule-set.json index 28a360cb4b40..9cbca10387c8 100644 --- a/services/cloudformation/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/cloudformation/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://cloudformation.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://cloudformation.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://cloudformation.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,66 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://cloudformation.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://cloudformation.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://cloudformation.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/cloudformation/src/main/resources/codegen-resources/endpoint-tests.json b/services/cloudformation/src/main/resources/codegen-resources/endpoint-tests.json index 2abbc0cb689b..b20e6d8f1e7a 100644 --- a/services/cloudformation/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/cloudformation/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,16 +1,16 @@ { "testCases": [ { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.eu-south-1.amazonaws.com" + "url": "https://cloudformation.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "af-south-1", "UseFIPS": false, - "Region": "eu-south-1" + "UseDualStack": false } }, { @@ -21,321 +21,321 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.sa-east-1.amazonaws.com" + "url": "https://cloudformation.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-east-2.amazonaws.com" + "url": "https://cloudformation.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.us-east-2.amazonaws.com" + "url": "https://cloudformation.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.eu-north-1.amazonaws.com" + "url": "https://cloudformation.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "eu-north-1" + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.me-south-1.amazonaws.com" + "url": "https://cloudformation.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.eu-west-3.amazonaws.com" + "url": "https://cloudformation.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "eu-west-3" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.eu-west-2.amazonaws.com" + "url": "https://cloudformation.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.eu-west-1.amazonaws.com" + "url": "https://cloudformation.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-east-1.amazonaws.com" + "url": "https://cloudformation.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.us-east-1.amazonaws.com" + "url": "https://cloudformation.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ap-northeast-3.amazonaws.com" + "url": "https://cloudformation.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-south-1", "UseFIPS": false, - "Region": "ap-northeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ap-northeast-2.amazonaws.com" + "url": "https://cloudformation.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ap-northeast-1.amazonaws.com" + "url": "https://cloudformation.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ap-south-1.amazonaws.com" + "url": "https://cloudformation.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-3", "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.af-south-1.amazonaws.com" + "url": "https://cloudformation.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "me-south-1", "UseFIPS": false, - "Region": "af-south-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-west-2.amazonaws.com" + "url": "https://cloudformation.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "sa-east-1", "UseFIPS": false, - "Region": "us-west-2" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.us-west-2.amazonaws.com" + "url": "https://cloudformation.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-west-1.amazonaws.com" + "url": "https://cloudformation-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.us-west-1.amazonaws.com" + "url": "https://cloudformation.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ca-central-1.amazonaws.com" + "url": "https://cloudformation-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ap-southeast-3.amazonaws.com" + "url": "https://cloudformation.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-1", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ap-southeast-2.amazonaws.com" + "url": "https://cloudformation-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.ap-southeast-1.amazonaws.com" + "url": "https://cloudformation.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.eu-central-1.amazonaws.com" + "url": "https://cloudformation-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false } }, { @@ -346,9 +346,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -359,230 +359,287 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-iso-east-1.c2s.ic.gov" + "url": "https://cloudformation.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-iso-west-1.c2s.ic.gov" + "url": "https://cloudformation.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "us-iso-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://cloudformation-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": true } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.cn-north-1.amazonaws.com.cn" + "url": "https://cloudformation-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudformation.cn-northwest-1.amazonaws.com.cn" + "url": "https://cloudformation.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://cloudformation.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.cn-north-1.amazonaws.com.cn" + "url": "https://cloudformation.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://cloudformation.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-isob-east-1.sc2s.sgov.gov" + "url": "https://cloudformation.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://cloudformation-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-gov-east-1.amazonaws.com" + "url": "https://cloudformation.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-gov-east-1.amazonaws.com" + "url": "https://cloudformation.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-gov-west-1.amazonaws.com" + "url": "https://cloudformation.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-west-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-gov-west-1.amazonaws.com" + "url": "https://cloudformation-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation-fips.us-gov-east-1.api.aws" + "url": "https://cloudformation.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudformation.us-gov-east-1.api.aws" + "url": "https://cloudformation-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -592,9 +649,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -604,11 +661,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/cloudformation/src/main/resources/codegen-resources/waiters-2.json b/services/cloudformation/src/main/resources/codegen-resources/waiters-2.json index 73e1bf30b86a..a7a05590e9d3 100644 --- a/services/cloudformation/src/main/resources/codegen-resources/waiters-2.json +++ b/services/cloudformation/src/main/resources/codegen-resources/waiters-2.json @@ -119,6 +119,12 @@ "expected": "UPDATE_ROLLBACK_COMPLETE", "matcher": "pathAny", "state": "failure" + }, + { + "argument": "Stacks[].StackStatus", + "expected": "UPDATE_COMPLETE", + "matcher": "pathAny", + "state": "failure" } ] }, diff --git a/services/cloudfront/pom.xml b/services/cloudfront/pom.xml index 4d1050ae2944..cbf3e44fc36b 100644 --- a/services/cloudfront/pom.xml +++ b/services/cloudfront/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudfront AWS Java SDK :: Services :: Amazon CloudFront diff --git a/services/cloudfront/src/main/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilities.java b/services/cloudfront/src/main/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilities.java index fd58d1d90ee2..d73c0b67e0cf 100644 --- a/services/cloudfront/src/main/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilities.java +++ b/services/cloudfront/src/main/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilities.java @@ -145,8 +145,8 @@ public SignedUrl getSignedUrlWithCannedPolicy(CannedSignerRequest request) { URI uri = URI.create(resourceUrl); String protocol = uri.getScheme(); String domain = uri.getHost(); - String encodedPath = uri.getPath() - + (uri.getQuery() != null ? "?" + uri.getQuery() + "&" : "?") + String encodedPath = uri.getRawPath() + + (uri.getQuery() != null ? "?" + uri.getRawQuery() + "&" : "?") + "Expires=" + request.expirationDate().getEpochSecond() + "&Signature=" + urlSafeSignature + "&Key-Pair-Id=" + request.keyPairId(); @@ -254,8 +254,8 @@ public SignedUrl getSignedUrlWithCustomPolicy(CustomSignerRequest request) { URI uri = URI.create(resourceUrl); String protocol = uri.getScheme(); String domain = uri.getHost(); - String encodedPath = uri.getPath() - + (uri.getQuery() != null ? "?" + uri.getQuery() + "&" : "?") + String encodedPath = uri.getRawPath() + + (uri.getQuery() != null ? "?" + uri.getRawQuery() + "&" : "?") + "Policy=" + urlSafePolicy + "&Signature=" + urlSafeSignature + "&Key-Pair-Id=" + request.keyPairId(); diff --git a/services/cloudfront/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/cloudfront/src/main/resources/codegen-resources/endpoint-rule-set.json index b13d359bc0ee..2d908ad292a4 100644 --- a/services/cloudfront/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/cloudfront/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,64 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "isSet", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" + "ref": "Region" + } ] } ], @@ -128,22 +111,13 @@ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -151,48 +125,221 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, { "conditions": [], "endpoint": { - "url": "https://cloudfront-fips.{Region}.api.aws", + "url": "https://cloudfront.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "cloudfront" + "signingName": "cloudfront", + "signingRegion": "us-east-1" } ] }, @@ -202,117 +349,216 @@ } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] - } + }, + "aws-cn" ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://cloudfront-fips.{Region}.amazonaws.com", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "cloudfront" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, { - "ref": "UseDualStack" + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://cloudfront.{Region}.api.aws", + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "cloudfront" + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" } ] }, @@ -323,392 +569,292 @@ ] }, { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://cloudfront.amazonaws.com", - "properties": { - "authSchemes": [ + "conditions": [ { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "cloudfront" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] }, - "name" - ] - }, - "aws-cn" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { - "ref": "UseDualStack" + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, - true + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" }, - "supportsFIPS" + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseDualStack" + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "cloudfront" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] } ] - }, - "headers": {} - }, - "type": "endpoint" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] }, { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "stringEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "Region" }, - "supportsFIPS" + "aws-global" ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "endpoint": { - "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "url": "https://cloudfront.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "cloudfront" + "signingName": "cloudfront", + "signingRegion": "us-east-1" } ] }, "headers": {} }, "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "stringEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "Region" }, - "supportsDualStack" + "aws-cn-global" ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "endpoint": { - "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "cloudfront" + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" } ] }, "headers": {} }, "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "cloudfront" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -717,134 +863,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-global" - ] - } - ], - "endpoint": { - "url": "https://cloudfront.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "cloudfront" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-cn-global" - ] - } - ], - "endpoint": { - "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "cloudfront" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/cloudfront/src/main/resources/codegen-resources/endpoint-tests.json b/services/cloudfront/src/main/resources/codegen-resources/endpoint-tests.json index c2dbe731efc7..736cf87722f2 100644 --- a/services/cloudfront/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/cloudfront/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,5 +1,119 @@ { "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-global with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront-fips.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudfront-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront-fips.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudfront.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, { "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", "expect": { @@ -17,13 +131,52 @@ } }, "params": { + "Region": "aws-cn-global", "UseDualStack": false, - "UseFIPS": false, - "Region": "aws-cn-global" + "UseFIPS": false } }, { - "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudfront-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudfront-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudfront.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { @@ -31,21 +184,139 @@ { "name": "sigv4", "signingName": "cloudfront", - "signingRegion": "us-east-1" + "signingRegion": "cn-northwest-1" } ] }, - "url": "https://cloudfront.amazonaws.com" + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudfront-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudfront-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudfront.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudfront.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudfront-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudfront.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudfront-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudfront.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "aws-global" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -54,7 +325,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -64,9 +334,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -76,9 +346,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/cloudfront/src/main/resources/codegen-resources/service-2.json b/services/cloudfront/src/main/resources/codegen-resources/service-2.json index 99613efe4d8e..1ea9d33492cb 100644 --- a/services/cloudfront/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudfront/src/main/resources/codegen-resources/service-2.json @@ -128,7 +128,7 @@ {"shape":"TooManyCookiesInCachePolicy"}, {"shape":"TooManyQueryStringsInCachePolicy"} ], - "documentation":"

Creates a cache policy.

After you create a cache policy, you can attach it to one or more cache behaviors. When it's attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find an object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

For more information about cache policies, see Controlling the cache key in the Amazon CloudFront Developer Guide.

" + "documentation":"

Creates a cache policy.

After you create a cache policy, you can attach it to one or more cache behaviors. When it's attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find an object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

For more information about cache policies, see Controlling the cache key in the Amazon CloudFront Developer Guide.

" }, "CreateCloudFrontOriginAccessIdentity":{ "name":"CreateCloudFrontOriginAccessIdentity2020_05_31", @@ -2407,7 +2407,7 @@ "documentation":"

The cache policy configuration.

" } }, - "documentation":"

A cache policy.

When it's attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" + "documentation":"

A cache policy.

When it's attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" }, "CachePolicyAlreadyExists":{ "type":"structure", @@ -2447,10 +2447,10 @@ }, "ParametersInCacheKeyAndForwardedToOrigin":{ "shape":"ParametersInCacheKeyAndForwardedToOrigin", - "documentation":"

The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are also included in requests that CloudFront sends to the origin.

" } }, - "documentation":"

A cache policy configuration.

This configuration determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" + "documentation":"

A cache policy configuration.

This configuration determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" }, "CachePolicyCookieBehavior":{ "type":"string", @@ -2467,11 +2467,11 @@ "members":{ "CookieBehavior":{ "shape":"CachePolicyCookieBehavior", - "documentation":"

Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are:

  • none – Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – The cookies in viewer requests that are listed in the CookieNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin.

  • allExcept – All cookies in viewer requests that are not listed in the CookieNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin.

  • all – All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

Determines whether any cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin. Valid values are:

  • none – No cookies in viewer requests are included in the cache key or in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – Only the cookies in viewer requests that are listed in the CookieNames type are included in the cache key and in requests that CloudFront sends to the origin.

  • allExcept – All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, except for those that are listed in the CookieNames type, which are not included.

  • all – All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin.

" }, "Cookies":{"shape":"CookieNames"} }, - "documentation":"

An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and in requests that CloudFront sends to the origin.

" }, "CachePolicyHeaderBehavior":{ "type":"string", @@ -2486,11 +2486,11 @@ "members":{ "HeaderBehavior":{ "shape":"CachePolicyHeaderBehavior", - "documentation":"

Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are:

  • none – HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – The HTTP headers that are listed in the Headers type are included in the cache key and are automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

Determines whether any HTTP headers are included in the cache key and in requests that CloudFront sends to the origin. Valid values are:

  • none – No HTTP headers are included in the cache key or in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – Only the HTTP headers that are listed in the Headers type are included in the cache key and in requests that CloudFront sends to the origin.

" }, "Headers":{"shape":"Headers"} }, - "documentation":"

An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and in requests that CloudFront sends to the origin.

" }, "CachePolicyInUse":{ "type":"structure", @@ -2542,14 +2542,14 @@ "members":{ "QueryStringBehavior":{ "shape":"CachePolicyQueryStringBehavior", - "documentation":"

Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are:

  • none – Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – The query strings in viewer requests that are listed in the QueryStringNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin.

  • allExcept – All query strings in viewer requests that are not listed in the QueryStringNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin.

  • all – All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

Determines whether any URL query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin. Valid values are:

  • none – No query strings in viewer requests are included in the cache key or in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in an OriginRequestPolicy are included in origin requests.

  • whitelist – Only the query strings in viewer requests that are listed in the QueryStringNames type are included in the cache key and in requests that CloudFront sends to the origin.

  • allExcept – All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, except those that are listed in the QueryStringNames type, which are not included.

  • all – All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin.

" }, "QueryStrings":{ "shape":"QueryStringNames", - "documentation":"

Contains the specific query strings in viewer requests that either are or are not included in the cache key and automatically included in requests that CloudFront sends to the origin. The behavior depends on whether the QueryStringBehavior field in the CachePolicyQueryStringsConfig type is set to whitelist (the listed query strings are included) or allExcept (the listed query strings are not included, but all other query strings are).

" + "documentation":"

Contains the specific query strings in viewer requests that either are or are not included in the cache key and in requests that CloudFront sends to the origin. The behavior depends on whether the QueryStringBehavior field in the CachePolicyQueryStringsConfig type is set to whitelist (the listed query strings are included) or allExcept (the listed query strings are not included, but all other query strings are).

" } }, - "documentation":"

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and in requests that CloudFront sends to the origin.

" }, "CachePolicySummary":{ "type":"structure", @@ -8049,7 +8049,8 @@ "enum":[ "none", "whitelist", - "all" + "all", + "allExcept" ] }, "OriginRequestPolicyCookiesConfig":{ @@ -8058,7 +8059,7 @@ "members":{ "CookieBehavior":{ "shape":"OriginRequestPolicyCookieBehavior", - "documentation":"

Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin. Valid values are:

  • none – Cookies in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in a CachePolicy are included in origin requests.

  • whitelist – The cookies in viewer requests that are listed in the CookieNames type are included in requests that CloudFront sends to the origin.

  • all – All cookies in viewer requests are included in requests that CloudFront sends to the origin.

" + "documentation":"

Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin. Valid values are:

  • none – No cookies in viewer requests are included in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in a CachePolicy are included in origin requests.

  • whitelist – Only the cookies in viewer requests that are listed in the CookieNames type are included in requests that CloudFront sends to the origin.

  • all – All cookies in viewer requests are included in requests that CloudFront sends to the origin.

  • allExcept – All cookies in viewer requests are included in requests that CloudFront sends to the origin, except for those listed in the CookieNames type, which are not included.

" }, "Cookies":{"shape":"CookieNames"} }, @@ -8070,7 +8071,8 @@ "none", "whitelist", "allViewer", - "allViewerAndWhitelistCloudFront" + "allViewerAndWhitelistCloudFront", + "allExcept" ] }, "OriginRequestPolicyHeadersConfig":{ @@ -8079,7 +8081,7 @@ "members":{ "HeaderBehavior":{ "shape":"OriginRequestPolicyHeaderBehavior", - "documentation":"

Determines whether any HTTP headers are included in requests that CloudFront sends to the origin. Valid values are:

  • none – HTTP headers are not included in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in a CachePolicy are included in origin requests.

  • whitelist – The HTTP headers that are listed in the Headers type are included in requests that CloudFront sends to the origin.

  • allViewer – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin.

  • allViewerAndWhitelistCloudFront – All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the Headers type are included in requests that CloudFront sends to the origin. The additional headers are added by CloudFront.

" + "documentation":"

Determines whether any HTTP headers are included in requests that CloudFront sends to the origin. Valid values are:

  • none – No HTTP headers in viewer requests are included in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in a CachePolicy are included in origin requests.

  • whitelist – Only the HTTP headers that are listed in the Headers type are included in requests that CloudFront sends to the origin.

  • allViewer – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin.

  • allViewerAndWhitelistCloudFront – All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the Headers type are included in requests that CloudFront sends to the origin. The additional headers are added by CloudFront.

  • allExcept – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin, except for those listed in the Headers type, which are not included.

" }, "Headers":{"shape":"Headers"} }, @@ -8125,7 +8127,8 @@ "enum":[ "none", "whitelist", - "all" + "all", + "allExcept" ] }, "OriginRequestPolicyQueryStringsConfig":{ @@ -8134,11 +8137,11 @@ "members":{ "QueryStringBehavior":{ "shape":"OriginRequestPolicyQueryStringBehavior", - "documentation":"

Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin. Valid values are:

  • none – Query strings in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in a CachePolicy are included in origin requests.

  • whitelist – The query strings in viewer requests that are listed in the QueryStringNames type are included in requests that CloudFront sends to the origin.

  • all – All query strings in viewer requests are included in requests that CloudFront sends to the origin.

" + "documentation":"

Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin. Valid values are:

  • none – No query strings in viewer requests are included in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in a CachePolicy are included in origin requests.

  • whitelist – Only the query strings in viewer requests that are listed in the QueryStringNames type are included in requests that CloudFront sends to the origin.

  • all – All query strings in viewer requests are included in requests that CloudFront sends to the origin.

  • allExcept – All query strings in viewer requests are included in requests that CloudFront sends to the origin, except for those listed in the QueryStringNames type, which are not included.

" }, "QueryStrings":{ "shape":"QueryStringNames", - "documentation":"

Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin.

" + "documentation":"

Contains the specific query strings in viewer requests that either are or are not included in requests that CloudFront sends to the origin. The behavior depends on whether the QueryStringBehavior field in the OriginRequestPolicyQueryStringsConfig type is set to whitelist (the listed query strings are included) or allExcept (the listed query strings are not included, but all other query strings are).

" } }, "documentation":"

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in requests that CloudFront sends to the origin.

" @@ -8251,18 +8254,18 @@ }, "HeadersConfig":{ "shape":"CachePolicyHeadersConfig", - "documentation":"

An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and in requests that CloudFront sends to the origin.

" }, "CookiesConfig":{ "shape":"CachePolicyCookiesConfig", - "documentation":"

An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and in requests that CloudFront sends to the origin.

" }, "QueryStringsConfig":{ "shape":"CachePolicyQueryStringsConfig", - "documentation":"

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and automatically included in requests that CloudFront sends to the origin.

" + "documentation":"

An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and in requests that CloudFront sends to the origin.

" } }, - "documentation":"

This object determines the values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find an object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" + "documentation":"

This object determines the values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find an object in its cache that matches the request's cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

" }, "PathList":{ "type":"list", diff --git a/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesTest.java b/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesTest.java index 27bb5c921143..7fe6bdc97faf 100644 --- a/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesTest.java +++ b/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesTest.java @@ -214,6 +214,52 @@ void getSignedURLWithCustomPolicy_withMissingExpirationDate_shouldThrowException assertThat(exception.getMessage().contains("Expiration date must be provided to sign CloudFront URLs")); } + @Test + void getSignedURLWithCannedPolicy_withEncodedUrl_doesNotDecodeUrl() { + String encodedUrl = "https://distributionDomain/s3ObjectKey/%40blob?v=1n1dm%2F01n1dm0"; + Instant expirationDate = LocalDate.of(2024, 1, 1).atStartOfDay().toInstant(ZoneOffset.of("Z")); + SignedUrl signedUrl = + cloudFrontUtilities.getSignedUrlWithCannedPolicy(r -> r + .resourceUrl(encodedUrl) + .privateKey(keyPair.getPrivate()) + .keyPairId("keyPairId") + .expirationDate(expirationDate)); + String url = signedUrl.url(); + String signature = url.substring(url.indexOf("&Signature"), url.indexOf("&Key-Pair-Id")); + String expected = "https://distributionDomain/s3ObjectKey/%40blob?v=1n1dm%2F01n1dm0&Expires=1704067200" + + signature + + "&Key-Pair-Id=keyPairId"; + assertThat(expected).isEqualTo(url); + } + + @Test + void getSignedURLWithCustomPolicy_withEncodedUrl_doesNotDecodeUrl() { + String encodedUrl = "https://distributionDomain/s3ObjectKey/%40blob?v=1n1dm%2F01n1dm0"; + Instant activeDate = LocalDate.of(2022, 1, 1).atStartOfDay().toInstant(ZoneOffset.of("Z")); + Instant expirationDate = LocalDate.of(2024, 1, 1).atStartOfDay().toInstant(ZoneOffset.of("Z")); + String ipRange = "1.2.3.4"; + SignedUrl signedUrl = cloudFrontUtilities.getSignedUrlWithCustomPolicy(r -> { + try { + r.resourceUrl(encodedUrl) + .privateKey(keyFilePath) + .keyPairId("keyPairId") + .expirationDate(expirationDate) + .activeDate(activeDate) + .ipRange(ipRange); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + String url = signedUrl.url(); + String policy = url.substring(url.indexOf("Policy=") + 7, url.indexOf("&Signature")); + String signature = url.substring(url.indexOf("&Signature"), url.indexOf("&Key-Pair-Id")); + String expected = "https://distributionDomain/s3ObjectKey/%40blob?v=1n1dm%2F01n1dm0&Policy=" + + policy + + signature + + "&Key-Pair-Id=keyPairId"; + assertThat(expected).isEqualTo(url); + } + @Test void getCookiesForCannedPolicy_producesValidCookies() throws Exception { Instant expirationDate = LocalDate.of(2024, 1, 1).atStartOfDay().toInstant(ZoneOffset.of("Z")); diff --git a/services/cloudhsm/pom.xml b/services/cloudhsm/pom.xml index 7e2f3d105203..f06cd756b671 100644 --- a/services/cloudhsm/pom.xml +++ b/services/cloudhsm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudhsm AWS Java SDK :: Services :: AWS CloudHSM diff --git a/services/cloudhsmv2/pom.xml b/services/cloudhsmv2/pom.xml index 8460fc9c1cee..7231f5c9f818 100644 --- a/services/cloudhsmv2/pom.xml +++ b/services/cloudhsmv2/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 cloudhsmv2 diff --git a/services/cloudsearch/pom.xml b/services/cloudsearch/pom.xml index 08bc73dadf86..c1e23460b1af 100644 --- a/services/cloudsearch/pom.xml +++ b/services/cloudsearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudsearch AWS Java SDK :: Services :: Amazon CloudSearch diff --git a/services/cloudsearchdomain/pom.xml b/services/cloudsearchdomain/pom.xml index 5a2dde70f424..04f363542f06 100644 --- a/services/cloudsearchdomain/pom.xml +++ b/services/cloudsearchdomain/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudsearchdomain AWS Java SDK :: Services :: Amazon CloudSearch Domain diff --git a/services/cloudtrail/pom.xml b/services/cloudtrail/pom.xml index 923291b86ba1..29a19ff37bac 100644 --- a/services/cloudtrail/pom.xml +++ b/services/cloudtrail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudtrail AWS Java SDK :: Services :: AWS CloudTrail diff --git a/services/cloudtrail/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/cloudtrail/src/main/resources/codegen-resources/endpoint-rule-set.json index 25d32768fe96..2b5ffaa7a8cf 100644 --- a/services/cloudtrail/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/cloudtrail/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,192 +111,253 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "us-gov-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://cloudtrail.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "us-gov-west-1" + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://cloudtrail.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, { "conditions": [], - "endpoint": { - "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -324,7 +365,7 @@ { "conditions": [], "endpoint": { - "url": "https://cloudtrail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://cloudtrail.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -333,28 +374,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cloudtrail.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/cloudtrail/src/main/resources/codegen-resources/endpoint-tests.json b/services/cloudtrail/src/main/resources/codegen-resources/endpoint-tests.json index 0beb2a8909cc..3e60ff53d1ed 100644 --- a/services/cloudtrail/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/cloudtrail/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,55 @@ { "testCases": [ { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-iso-east-1.c2s.ic.gov" + "url": "https://cloudtrail.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-iso-west-1.c2s.ic.gov" + "url": "https://cloudtrail.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://cloudtrail.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -47,87 +60,87 @@ } }, "params": { + "Region": "ap-northeast-3", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-east-1.amazonaws.com" + "url": "https://cloudtrail.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.us-east-1.amazonaws.com" + "url": "https://cloudtrail.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.eu-west-1.amazonaws.com" + "url": "https://cloudtrail.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" + "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.eu-west-2.amazonaws.com" + "url": "https://cloudtrail.ap-southeast-3.amazonaws.com" } }, "params": { + "Region": "ap-southeast-3", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" + "UseFIPS": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.eu-west-3.amazonaws.com" + "url": "https://cloudtrail.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.me-south-1.amazonaws.com" + "url": "https://cloudtrail.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" + "UseFIPS": false } }, { @@ -138,139 +151,139 @@ } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-east-2.amazonaws.com" + "url": "https://cloudtrail.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.us-east-2.amazonaws.com" + "url": "https://cloudtrail.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.sa-east-1.amazonaws.com" + "url": "https://cloudtrail.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ap-east-1.amazonaws.com" + "url": "https://cloudtrail.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.eu-south-1.amazonaws.com" + "url": "https://cloudtrail.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.eu-central-1.amazonaws.com" + "url": "https://cloudtrail.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ap-southeast-1.amazonaws.com" + "url": "https://cloudtrail.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ap-southeast-2.amazonaws.com" + "url": "https://cloudtrail-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ap-southeast-3.amazonaws.com" + "url": "https://cloudtrail.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ca-central-1.amazonaws.com" + "url": "https://cloudtrail-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" + "UseFIPS": true } }, { @@ -281,9 +294,9 @@ } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" + "UseFIPS": false } }, { @@ -294,9 +307,9 @@ } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" + "UseFIPS": true } }, { @@ -307,9 +320,9 @@ } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" + "UseFIPS": false } }, { @@ -320,260 +333,261 @@ } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" + "UseFIPS": true } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudtrail.af-south-1.amazonaws.com" + "url": "https://cloudtrail-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ap-south-1.amazonaws.com" + "url": "https://cloudtrail.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ap-northeast-1.amazonaws.com" + "url": "https://cloudtrail.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.ap-northeast-2.amazonaws.com" + "url": "https://cloudtrail.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.us-east-1.api.aws" + "url": "https://cloudtrail-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-east-1.api.aws" + "url": "https://cloudtrail-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" + "url": "https://cloudtrail.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { "url": "https://cloudtrail.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-gov-east-1.amazonaws.com" + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.us-gov-east-1.api.aws" + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-gov-east-1.api.aws" + "url": "https://cloudtrail-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://cloudtrail.us-isob-east-1.sc2s.sgov.gov" + "url": "https://cloudtrail.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://cloudtrail.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.cn-northwest-1.amazonaws.com.cn" + "url": "https://cloudtrail.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-northwest-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.cn-north-1.amazonaws.com.cn" + "url": "https://cloudtrail-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "UseFIPS": true } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://cloudtrail.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail-fips.cn-north-1.amazonaws.com.cn" + "url": "https://cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": true } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://cloudtrail.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://example.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -582,7 +596,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -592,9 +605,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -604,9 +617,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/cloudtrail/src/main/resources/codegen-resources/service-2.json b/services/cloudtrail/src/main/resources/codegen-resources/service-2.json index 910ba00929a6..94ecd24d696a 100644 --- a/services/cloudtrail/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudtrail/src/main/resources/codegen-resources/service-2.json @@ -803,6 +803,7 @@ {"shape":"InvalidImportSourceException"}, {"shape":"ImportNotFoundException"}, {"shape":"InvalidParameterException"}, + {"shape":"InsufficientEncryptionPolicyException"}, {"shape":"OperationNotPermittedException"}, {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, diff --git a/services/cloudtraildata/pom.xml b/services/cloudtraildata/pom.xml index ac9b18a1982b..e18416eb30b8 100644 --- a/services/cloudtraildata/pom.xml +++ b/services/cloudtraildata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudtraildata AWS Java SDK :: Services :: Cloud Trail Data diff --git a/services/cloudwatch/pom.xml b/services/cloudwatch/pom.xml index 0635f61adc9b..375d60907f29 100644 --- a/services/cloudwatch/pom.xml +++ b/services/cloudwatch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudwatch AWS Java SDK :: Services :: Amazon CloudWatch diff --git a/services/cloudwatch/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/cloudwatch/src/main/resources/codegen-resources/endpoint-rule-set.json index b155f7ae141e..94f8f3988691 100644 --- a/services/cloudwatch/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/cloudwatch/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://monitoring-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://monitoring-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://monitoring.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://monitoring.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://monitoring-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://monitoring-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://monitoring.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://monitoring.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://monitoring.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://monitoring.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/cloudwatch/src/main/resources/codegen-resources/endpoint-tests.json b/services/cloudwatch/src/main/resources/codegen-resources/endpoint-tests.json index b32656fbc083..1a60d1c5f386 100644 --- a/services/cloudwatch/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/cloudwatch/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1026 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-northeast-1.amazonaws.com" + "url": "https://monitoring.af-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "af-south-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-northeast-1.api.aws" + "url": "https://monitoring.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false, + "Region": "ap-east-1" } }, { @@ -1031,733 +34,551 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.me-south-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" + "Region": "ap-northeast-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.me-south-1.api.aws" + "url": "https://monitoring.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.me-south-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "ap-northeast-2" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.sa-east-1.amazonaws.com" + "url": "https://monitoring.ap-northeast-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "ap-northeast-3" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.sa-east-1.api.aws" + "url": "https://monitoring.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.sa-east-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ap-south-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-east-1.amazonaws.com" + "url": "https://monitoring.ap-southeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-east-1.api.aws" + "url": "https://monitoring.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ap-east-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-southeast-2" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.cn-north-1.amazonaws.com.cn" + "url": "https://monitoring.ap-southeast-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-southeast-3" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://monitoring.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.cn-north-1.amazonaws.com.cn" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ca-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-west-1" + "Region": "ca-central-1" } }, { - "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ca-west-1.amazonaws.com" + "url": "https://monitoring.eu-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-west-1" + "Region": "eu-central-1" } }, { - "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ca-west-1.api.aws" + "url": "https://monitoring.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ca-west-1" - } - }, - { - "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.ca-west-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "eu-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-gov-west-1.amazonaws.com" + "url": "https://monitoring.eu-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "eu-south-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-gov-west-1.api.aws" + "url": "https://monitoring.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://monitoring.us-gov-west-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://monitoring-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "eu-west-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-southeast-1.amazonaws.com" + "url": "https://monitoring.eu-west-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "eu-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-1.api.aws" + "url": "https://monitoring.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-1.amazonaws.com" + "url": "https://monitoring.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-southeast-2.api.aws" + "url": "https://monitoring.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-southeast-2.amazonaws.com" + "url": "https://monitoring.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-2.api.aws" + "url": "https://monitoring-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-2.amazonaws.com" + "url": "https://monitoring.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://monitoring-fips.us-east-2.amazonaws.com" + } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://monitoring.us-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://monitoring-fips.us-west-1.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-iso-east-1.c2s.ic.gov" + "url": "https://monitoring.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-southeast-3.api.aws" + "url": "https://monitoring-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-southeast-3.amazonaws.com" + "url": "https://monitoring-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-3.api.aws" + "url": "https://monitoring.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-3.amazonaws.com" + "url": "https://monitoring.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-southeast-4.api.aws" + "url": "https://monitoring.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-4" + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.ap-southeast-4.amazonaws.com" + "url": "https://monitoring-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-4" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-4.api.aws" + "url": "https://monitoring-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-4" + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://monitoring.ap-southeast-4.amazonaws.com" + "url": "https://monitoring.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-4" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.us-east-1.api.aws" + "url": "https://monitoring.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.us-east-1.amazonaws.com" + "url": "https://monitoring.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-east-1.api.aws" + "url": "https://monitoring.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-east-1.amazonaws.com" + "url": "https://monitoring.us-gov-west-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.us-east-2.api.aws" + "url": "https://monitoring-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.us-east-2.amazonaws.com" + "url": "https://monitoring.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-east-2.api.aws" + "url": "https://monitoring.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-east-2.amazonaws.com" + "url": "https://monitoring.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false, + "Region": "us-iso-west-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://monitoring-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://monitoring-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://monitoring.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://monitoring.cn-northwest-1.amazonaws.com.cn" + "url": "https://monitoring.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { @@ -1766,8 +587,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, + "UseDualStack": true, "Region": "us-isob-east-1" } }, @@ -1779,8 +600,8 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-isob-east-1" } }, @@ -1790,35 +611,35 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://monitoring.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1828,8 +649,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -1840,11 +661,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/cloudwatch/src/main/resources/codegen-resources/service-2.json b/services/cloudwatch/src/main/resources/codegen-resources/service-2.json index 690afadb7ab0..88ab69138fb6 100644 --- a/services/cloudwatch/src/main/resources/codegen-resources/service-2.json +++ b/services/cloudwatch/src/main/resources/codegen-resources/service-2.json @@ -22,7 +22,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation.

In the event of an error, no alarms are deleted.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to false.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

" + "documentation":"

Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation.

If you specify an incorrect alarm name or make any other error in the operation, no alarms are deleted. To confirm that alarms were deleted successfully, you can use the DescribeAlarms operation after using DeleteAlarms.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to false.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

" }, "DeleteAnomalyDetector":{ "name":"DeleteAnomalyDetector", @@ -517,7 +517,7 @@ "errors":[ {"shape":"LimitExceededFault"} ], - "documentation":"

Creates or updates an alarm and associates it with the specified metric, metric math expression, anomaly detection model, or Metrics Insights query. For more information about using a Metrics Insights query for an alarm, see Create alarms on Metrics Insights queries.

Alarms based on anomaly detection models cannot have Auto Scaling actions.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations:

  • The iam:CreateServiceLinkedRole for all alarms with EC2 actions

  • The iam:CreateServiceLinkedRole to create an alarm with Systems Manager OpsItem actions.

The first time you create an alarm in the Amazon Web Services Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked roles are called AWSServiceRoleForCloudWatchEvents and AWSServiceRoleForCloudWatchAlarms_ActionSSM. For more information, see Amazon Web Services service-linked role.

Cross-account alarms

You can set an alarm on metrics in the current account, or in another account. To create a cross-account alarm that watches a metric in a different account, you must have completed the following pre-requisites:

  • The account where the metrics are located (the sharing account) must already have a sharing role named CloudWatch-CrossAccountSharingRole. If it does not already have this role, you must create it using the instructions in Set up a sharing account in Cross-account cross-Region CloudWatch console. The policy for that role must grant access to the ID of the account where you are creating the alarm.

  • The account where you are creating the alarm (the monitoring account) must already have a service-linked role named AWSServiceRoleForCloudWatchCrossAccount to allow CloudWatch to assume the sharing role in the sharing account. If it does not, you must create it following the directions in Set up a monitoring account in Cross-account cross-Region CloudWatch console.

" + "documentation":"

Creates or updates an alarm and associates it with the specified metric, metric math expression, anomaly detection model, or Metrics Insights query. For more information about using a Metrics Insights query for an alarm, see Create alarms on Metrics Insights queries.

Alarms based on anomaly detection models cannot have Auto Scaling actions.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations:

  • The iam:CreateServiceLinkedRole permission for all alarms with EC2 actions

  • The iam:CreateServiceLinkedRole permissions to create an alarm with Systems Manager OpsItem or response plan actions.

The first time you create an alarm in the Amazon Web Services Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked roles are called AWSServiceRoleForCloudWatchEvents and AWSServiceRoleForCloudWatchAlarms_ActionSSM. For more information, see Amazon Web Services service-linked role.

Cross-account alarms

You can set an alarm on metrics in the current account, or in another account. To create a cross-account alarm that watches a metric in a different account, you must have completed the following pre-requisites:

  • The account where the metrics are located (the sharing account) must already have a sharing role named CloudWatch-CrossAccountSharingRole. If it does not already have this role, you must create it using the instructions in Set up a sharing account in Cross-account cross-Region CloudWatch console. The policy for that role must grant access to the ID of the account where you are creating the alarm.

  • The account where you are creating the alarm (the monitoring account) must already have a service-linked role named AWSServiceRoleForCloudWatchCrossAccount to allow CloudWatch to assume the sharing role in the sharing account. If it does not, you must create it following the directions in Set up a monitoring account in Cross-account cross-Region CloudWatch console.

" }, "PutMetricData":{ "name":"PutMetricData", @@ -1138,7 +1138,7 @@ "members":{ "AlarmNames":{ "shape":"AlarmNames", - "documentation":"

The alarms to be deleted.

" + "documentation":"

The alarms to be deleted. Do not enclose the alarm names in quote marks.

" } } }, @@ -1464,11 +1464,11 @@ "members":{ "Name":{ "shape":"DimensionName", - "documentation":"

The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:).

" + "documentation":"

The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). ASCII control characters are not supported as part of dimension names.

" }, "Value":{ "shape":"DimensionValue", - "documentation":"

The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character.

" + "documentation":"

The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values.

" } }, "documentation":"

A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish InstanceId as a dimension name, and the actual instance ID as the value for that dimension.

You can assign up to 30 dimensions to a metric.

", @@ -2752,7 +2752,7 @@ }, "Dimensions":{ "shape":"Dimensions", - "documentation":"

The dimensions associated with the metric.

" + "documentation":"

The dimensions associated with the metric.

" }, "Timestamp":{ "shape":"Timestamp", @@ -2884,7 +2884,7 @@ "documentation":"

The name of the metric namespace in the filter.

" } }, - "documentation":"

This structure contains the name of one of the metric namespaces that is listed in a filter of a metric stream.

" + "documentation":"

This structure contains the name of one of the metric namespaces that is listed in a filter of a metric stream.

The namespace can contain only ASCII printable characters (ASCII range 32 through 126). It must contain at least one non-whitespace character.

" }, "MetricStreamFilters":{ "type":"list", @@ -3203,7 +3203,7 @@ "members":{ "AlarmName":{ "shape":"AlarmName", - "documentation":"

The name for the alarm. This name must be unique within the Region.

" + "documentation":"

The name for the alarm. This name must be unique within the Region.

The name must contain only UTF-8 characters, and can't contain ASCII control characters

" }, "AlarmDescription":{ "shape":"AlarmDescription", @@ -3215,15 +3215,15 @@ }, "OKActions":{ "shape":"ResourceList", - "documentation":"

The actions to execute when this alarm transitions to an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0

" + "documentation":"

The actions to execute when this alarm transitions to an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid values:

EC2 actions:

  • arn:aws:automate:region:ec2:stop

  • arn:aws:automate:region:ec2:terminate

  • arn:aws:automate:region:ec2:reboot

  • arn:aws:automate:region:ec2:recover

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0

Autoscaling action:

  • arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

SSN notification action:

  • arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

SSM integration actions:

  • arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name

  • arn:aws:ssm-incidents::account-id:responseplan/response-plan-name

" }, "AlarmActions":{ "shape":"ResourceList", - "documentation":"

The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name | arn:aws:ssm:region:account-id:opsitem:severity | arn:aws:ssm-incidents::account-id:response-plan:response-plan-name

Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0

" + "documentation":"

The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid values:

EC2 actions:

  • arn:aws:automate:region:ec2:stop

  • arn:aws:automate:region:ec2:terminate

  • arn:aws:automate:region:ec2:reboot

  • arn:aws:automate:region:ec2:recover

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0

Autoscaling action:

  • arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

SSN notification action:

  • arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

SSM integration actions:

  • arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name

  • arn:aws:ssm-incidents::account-id:responseplan/response-plan-name

" }, "InsufficientDataActions":{ "shape":"ResourceList", - "documentation":"

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): >arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

" + "documentation":"

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid values:

EC2 actions:

  • arn:aws:automate:region:ec2:stop

  • arn:aws:automate:region:ec2:terminate

  • arn:aws:automate:region:ec2:reboot

  • arn:aws:automate:region:ec2:recover

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

  • arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0

Autoscaling action:

  • arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

SSN notification action:

  • arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

SSM integration actions:

  • arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name

  • arn:aws:ssm-incidents::account-id:responseplan/response-plan-name

" }, "MetricName":{ "shape":"MetricName", @@ -3300,7 +3300,7 @@ "members":{ "Namespace":{ "shape":"Namespace", - "documentation":"

The namespace for the metric data.

To avoid conflicts with Amazon Web Services service namespaces, you should not specify a namespace that begins with AWS/

" + "documentation":"

The namespace for the metric data. You can use ASCII characters for the namespace, except for control characters which are not supported.

To avoid conflicts with Amazon Web Services service namespaces, you should not specify a namespace that begins with AWS/

" }, "MetricData":{ "shape":"MetricData", diff --git a/services/cloudwatchevents/pom.xml b/services/cloudwatchevents/pom.xml index 6ec4e25162e7..e26532189a5b 100644 --- a/services/cloudwatchevents/pom.xml +++ b/services/cloudwatchevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudwatchevents AWS Java SDK :: Services :: Amazon CloudWatch Events diff --git a/services/cloudwatchlogs/pom.xml b/services/cloudwatchlogs/pom.xml index bf1b2445e7a6..7e62965f0f12 100644 --- a/services/cloudwatchlogs/pom.xml +++ b/services/cloudwatchlogs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cloudwatchlogs AWS Java SDK :: Services :: Amazon CloudWatch Logs diff --git a/services/codeartifact/pom.xml b/services/codeartifact/pom.xml index fad2f4e58c80..39672a329dd9 100644 --- a/services/codeartifact/pom.xml +++ b/services/codeartifact/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codeartifact AWS Java SDK :: Services :: Codeartifact diff --git a/services/codeartifact/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/codeartifact/src/main/resources/codegen-resources/endpoint-rule-set.json index eeb6299e4744..19c036173a9e 100644 --- a/services/codeartifact/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/codeartifact/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeartifact-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeartifact-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://codeartifact-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeartifact.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://codeartifact-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://codeartifact.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://codeartifact.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://codeartifact.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/codeartifact/src/main/resources/codegen-resources/endpoint-tests.json b/services/codeartifact/src/main/resources/codegen-resources/endpoint-tests.json index 014251c1381e..948fb36652df 100644 --- a/services/codeartifact/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/codeartifact/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,16 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.ap-south-1.api.aws" + "url": "https://codeartifact.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { @@ -47,100 +21,35 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-south-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" + "Region": "ap-south-1" } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.eu-south-1.api.aws" + "url": "https://codeartifact.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact.eu-south-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.eu-central-1.api.aws" + "url": "https://codeartifact.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { @@ -151,152 +60,61 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.us-west-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" + "Region": "eu-central-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.us-west-2.amazonaws.com" + "url": "https://codeartifact.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-north-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, "Region": "eu-north-1" } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.eu-north-1.api.aws" + "url": "https://codeartifact.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact.eu-north-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" + "Region": "eu-south-1" } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.eu-west-3.amazonaws.com" + "url": "https://codeartifact.eu-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" + "Region": "eu-west-1" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.eu-west-3.api.aws" + "url": "https://codeartifact.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-3" + "UseDualStack": false, + "Region": "eu-west-2" } }, { @@ -307,386 +125,313 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "eu-west-3" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.eu-west-2.amazonaws.com" + "url": "https://codeartifact.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.eu-west-2.api.aws" + "url": "https://codeartifact.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact.eu-west-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "us-east-2" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.eu-west-1.amazonaws.com" + "url": "https://codeartifact.us-west-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "us-west-2" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://codeartifact.eu-west-1.api.aws" + "url": "https://codeartifact-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.eu-west-1.amazonaws.com" + "url": "https://codeartifact-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.ap-northeast-1.api.aws" + "url": "https://codeartifact.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.ap-northeast-1.amazonaws.com" + "url": "https://codeartifact-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://codeartifact.ap-northeast-1.api.aws" - } - }, - "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.ap-northeast-1.amazonaws.com" + "url": "https://codeartifact-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.ap-southeast-1.api.aws" + "url": "https://codeartifact.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.ap-southeast-1.amazonaws.com" + "url": "https://codeartifact.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://codeartifact.ap-southeast-1.api.aws" + "url": "https://codeartifact-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.ap-southeast-1.amazonaws.com" + "url": "https://codeartifact-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.ap-southeast-2.api.aws" + "url": "https://codeartifact.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.ap-southeast-2.amazonaws.com" + "url": "https://codeartifact.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://codeartifact.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.ap-southeast-2.amazonaws.com" + "url": "https://codeartifact-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://codeartifact-fips.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.us-east-1.amazonaws.com" + "url": "https://codeartifact.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://codeartifact.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.us-east-1.amazonaws.com" + "url": "https://codeartifact-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://codeartifact-fips.us-east-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://codeartifact-fips.us-east-2.amazonaws.com" + "url": "https://codeartifact.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://codeartifact.us-east-2.api.aws" + "url": "https://example.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://codeartifact.us-east-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -696,8 +441,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -708,11 +453,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/codeartifact/src/main/resources/codegen-resources/service-2.json b/services/codeartifact/src/main/resources/codegen-resources/service-2.json index 2fe90f013771..12d10661cdec 100644 --- a/services/codeartifact/src/main/resources/codegen-resources/service-2.json +++ b/services/codeartifact/src/main/resources/codegen-resources/service-2.json @@ -157,7 +157,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Deletes one or more versions of a package. A deleted package version cannot be restored in your repository. If you want to remove a package version from your repository and be able to restore it later, set its status to Archived. Archived packages cannot be downloaded from a repository and don't show up with list package APIs (for example, ListackageVersions), but you can restore them using UpdatePackageVersionsStatus.

" + "documentation":"

Deletes one or more versions of a package. A deleted package version cannot be restored in your repository. If you want to remove a package version from your repository and be able to restore it later, set its status to Archived. Archived packages cannot be downloaded from a repository and don't show up with list package APIs (for example, ListPackageVersions), but you can restore them using UpdatePackageVersionsStatus.

" }, "DeleteRepository":{ "name":"DeleteRepository", @@ -537,6 +537,25 @@ ], "documentation":"

Gets information about Amazon Web Services tags for a specified Amazon Resource Name (ARN) in CodeArtifact.

" }, + "PublishPackageVersion":{ + "name":"PublishPackageVersion", + "http":{ + "method":"POST", + "requestUri":"/v1/package/version/publish" + }, + "input":{"shape":"PublishPackageVersionRequest"}, + "output":{"shape":"PublishPackageVersionResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a new package version containing one or more assets (or files).

The unfinished flag can be used to keep the package version in the Unfinished state until all of its assets have been uploaded (see Package version status in the CodeArtifact user guide). To set the package version’s status to Published, omit the unfinished flag when uploading the final asset, or set the status using UpdatePackageVersionStatus. Once a package version’s status is set to Published, it cannot change back to Unfinished.

Only generic packages can be published using this API. For more information, see Using generic packages in the CodeArtifact User Guide.

" + }, "PutDomainPermissionsPolicy":{ "name":"PutDomainPermissionsPolicy", "http":{ @@ -766,7 +785,7 @@ }, "externalConnection":{ "shape":"ExternalConnectionName", - "documentation":"

The name of the external connection to add to the repository. The following values are supported:

  • public:npmjs - for the npm public repository.

  • public:nuget-org - for the NuGet Gallery.

  • public:pypi - for the Python Package Index.

  • public:maven-central - for Maven Central.

  • public:maven-googleandroid - for the Google Android repository.

  • public:maven-gradleplugins - for the Gradle plugins repository.

  • public:maven-commonsware - for the CommonsWare Android repository.

", + "documentation":"

The name of the external connection to add to the repository. The following values are supported:

  • public:npmjs - for the npm public repository.

  • public:nuget-org - for the NuGet Gallery.

  • public:pypi - for the Python Package Index.

  • public:maven-central - for Maven Central.

  • public:maven-googleandroid - for the Google Android repository.

  • public:maven-gradleplugins - for the Gradle plugins repository.

  • public:maven-commonsware - for the CommonsWare Android repository.

  • public:maven-clojars - for the Clojars repository.

", "location":"querystring", "locationName":"external-connection" } @@ -847,7 +866,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package versions to be copied. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId. The namespace is required when copying Maven package versions.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package versions to be copied. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId. The namespace is required when copying Maven package versions.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1060,7 +1079,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package to delete. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId. The namespace is required when deleting Maven package versions.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain corresponding components, packages of those formats do not have a namespace.

", + "documentation":"

The namespace of the package to delete. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId. The namespace is required when deleting Maven package versions.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain corresponding components, packages of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1114,7 +1133,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package versions to be deleted. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId. The namespace is required when deleting Maven package versions.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package versions to be deleted. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId. The namespace is required when deleting Maven package versions.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1284,7 +1303,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the requested package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId. The namespace is required when requesting Maven packages.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", + "documentation":"

The namespace of the requested package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId. The namespace is required when requesting Maven packages.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1342,7 +1361,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the requested package version. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the requested package version. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1490,7 +1509,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package versions to be disposed. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package versions to be disposed. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1742,7 +1761,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package version with the requested asset file. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package version with the requested asset file. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1830,13 +1849,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

A format that specifies the type of the package version with the requested readme file.

Although maven is listed as a valid value, CodeArtifact does not support displaying readme files for Maven packages.

", + "documentation":"

A format that specifies the type of the package version with the requested readme file.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package version with the requested readme file. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package version with the requested readme file. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -2079,7 +2098,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package version that contains the requested package version assets. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package version that contains the requested package version assets. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -2178,7 +2197,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package version with the requested dependencies. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package version with the requested dependencies. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -2269,13 +2288,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

The format of the returned package versions.

", + "documentation":"

The format of the package versions you want to list.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", + "documentation":"

The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -2384,7 +2403,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace used to filter requested packages. Only packages with the provided namespace will be returned. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", + "documentation":"

The namespace prefix used to filter requested packages. Only packages with a namespace that starts with the provided string value are returned. Note that although this option is called --namespace and not --namespace-prefix, it has prefix-matching behavior.

Each package format uses namespace as follows:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -2570,7 +2589,7 @@ }, "dependencyType":{ "shape":"String", - "documentation":"

The type of a package dependency. The possible values depend on the package type. Example types are compile, runtime, and test for Maven packages, and dev, prod, and optional for npm packages.

" + "documentation":"

The type of a package dependency. The possible values depend on the package type.

  • npm: regular, dev, peer, optional

  • maven: optional, parent, compile, runtime, test, system, provided.

    Note that parent is not a regular Maven dependency type; instead this is extracted from the <parent> element if one is defined in the package version's POM file.

  • nuget: The dependencyType field is never set for NuGet packages.

  • pypi: Requires-Dist

" }, "versionRequirement":{ "shape":"String", @@ -2592,7 +2611,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

" + "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

" }, "name":{ "shape":"PackageName", @@ -2611,7 +2630,8 @@ "npm", "pypi", "maven", - "nuget" + "nuget", + "generic" ] }, "PackageName":{ @@ -2663,7 +2683,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

" + "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

" }, "package":{ "shape":"PackageName", @@ -2695,7 +2715,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package version. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

" + "documentation":"

The namespace of the package version. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

" }, "packageName":{ "shape":"PackageName", @@ -2875,6 +2895,119 @@ "min":1, "pattern":"\\S+" }, + "PublishPackageVersionRequest":{ + "type":"structure", + "required":[ + "domain", + "repository", + "format", + "package", + "packageVersion", + "assetContent", + "assetName", + "assetSHA256" + ], + "members":{ + "domain":{ + "shape":"DomainName", + "documentation":"

The name of the domain that contains the repository that contains the package version to publish.

", + "location":"querystring", + "locationName":"domain" + }, + "domainOwner":{ + "shape":"AccountId", + "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "location":"querystring", + "locationName":"domain-owner" + }, + "repository":{ + "shape":"RepositoryName", + "documentation":"

The name of the repository that the package version will be published to.

", + "location":"querystring", + "locationName":"repository" + }, + "format":{ + "shape":"PackageFormat", + "documentation":"

A format that specifies the type of the package version with the requested asset file.

", + "location":"querystring", + "locationName":"format" + }, + "namespace":{ + "shape":"PackageNamespace", + "documentation":"

The namespace of the package version to publish.

", + "location":"querystring", + "locationName":"namespace" + }, + "package":{ + "shape":"PackageName", + "documentation":"

The name of the package version to publish.

", + "location":"querystring", + "locationName":"package" + }, + "packageVersion":{ + "shape":"PackageVersion", + "documentation":"

The package version to publish (for example, 3.5.2).

", + "location":"querystring", + "locationName":"version" + }, + "assetContent":{ + "shape":"Asset", + "documentation":"

The content of the asset to publish.

" + }, + "assetName":{ + "shape":"AssetName", + "documentation":"

The name of the asset to publish. Asset names can include Unicode letters and numbers, and the following special characters: ~ ! @ ^ & ( ) - ` _ + [ ] { } ; , . `

", + "location":"querystring", + "locationName":"asset" + }, + "assetSHA256":{ + "shape":"SHA256", + "documentation":"

The SHA256 hash of the assetContent to publish. This value must be calculated by the caller and provided with the request (see Publishing a generic package in the CodeArtifact User Guide).

This value is used as an integrity check to verify that the assetContent has not changed after it was originally sent.

", + "location":"header", + "locationName":"x-amz-content-sha256" + }, + "unfinished":{ + "shape":"BooleanOptional", + "documentation":"

Specifies whether the package version should remain in the unfinished state. If omitted, the package version status will be set to Published (see Package version status in the CodeArtifact User Guide).

Valid values: unfinished

", + "location":"querystring", + "locationName":"unfinished" + } + }, + "payload":"assetContent" + }, + "PublishPackageVersionResult":{ + "type":"structure", + "members":{ + "format":{ + "shape":"PackageFormat", + "documentation":"

The format of the package version.

" + }, + "namespace":{ + "shape":"PackageNamespace", + "documentation":"

The namespace of the package version.

" + }, + "package":{ + "shape":"PackageName", + "documentation":"

The name of the package.

" + }, + "version":{ + "shape":"PackageVersion", + "documentation":"

The version of the package.

" + }, + "versionRevision":{ + "shape":"PackageVersionRevision", + "documentation":"

The revision of the package version.

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

A string that contains the status of the package version. For more information, see Package version status in the CodeArtifact User Guide.

" + }, + "asset":{ + "shape":"AssetSummary", + "documentation":"

An AssetSummary for the published asset.

" + } + } + }, "PutDomainPermissionsPolicyRequest":{ "type":"structure", "required":[ @@ -2945,7 +3078,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package to be updated. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", + "documentation":"

The namespace of the package to be updated. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -3049,6 +3182,10 @@ "externalConnections":{ "shape":"RepositoryExternalConnectionInfoList", "documentation":"

An array of external connections associated with the repository.

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

A timestamp that represents the date and time the repository was created.

" } }, "documentation":"

The details of a repository stored in CodeArtifact. A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets. Repositories are polyglot—a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI (mvn), and pip. You can create up to 100 repositories per Amazon Web Services account.

" @@ -3107,6 +3244,10 @@ "description":{ "shape":"Description", "documentation":"

The description of the repository.

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

A timestamp that represents the date and time the repository was created.

" } }, "documentation":"

Details about a repository, including its Amazon Resource Name (ARN), description, and domain information. The ListRepositories operation returns a list of RepositorySummary objects.

" @@ -3162,6 +3303,12 @@ ] }, "RetryAfterSeconds":{"type":"integer"}, + "SHA256":{ + "type":"string", + "max":64, + "min":64, + "pattern":"[0-9a-f]+" + }, "ServiceQuotaExceededException":{ "type":"structure", "required":["message"], @@ -3349,7 +3496,7 @@ }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package version to be updated. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", + "documentation":"

The namespace of the package version to be updated. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

  • The namespace of a generic package is its namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -3488,5 +3635,5 @@ ] } }, - "documentation":"

CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client.

CodeArtifact Components

Use the information in this guide to help you work with the following CodeArtifact components:

  • Repository: A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets, or files. Repositories are polyglot, so a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI ( mvn ), Python CLIs ( pip and twine), and NuGet CLIs (nuget and dotnet).

  • Domain: Repositories are aggregated into a higher-level entity known as a domain. All package assets and metadata are stored in the domain, but are consumed through repositories. A given package asset, such as a Maven JAR file, is stored once per domain, no matter how many repositories it's present in. All of the assets and metadata in a domain are encrypted with the same customer master key (CMK) stored in Key Management Service (KMS).

    Each repository is a member of a single domain and can't be moved to a different domain.

    The domain allows organizational policy to be applied across multiple repositories, such as which accounts can access repositories in the domain, and which public repositories can be used as sources of packages.

    Although an organization can have multiple domains, we recommend a single production domain that contains all published artifacts so that teams can find and share packages across their organization.

  • Package: A package is a bundle of software and the metadata required to resolve dependencies and install the software. CodeArtifact supports npm, PyPI, Maven, and NuGet package formats.

    In CodeArtifact, a package consists of:

    • A name (for example, webpack is the name of a popular npm package)

    • An optional namespace (for example, @types in @types/node)

    • A set of versions (for example, 1.0.0, 1.0.1, 1.0.2, etc.)

    • Package-level metadata (for example, npm tags)

  • Package version: A version of a package, such as @types/node 12.6.9. The version number format and semantics vary for different package formats. For example, npm package versions must conform to the Semantic Versioning specification. In CodeArtifact, a package version consists of the version identifier, metadata at the package version level, and a set of assets.

  • Upstream repository: One repository is upstream of another when the package versions in it can be accessed from the repository endpoint of the downstream repository, effectively merging the contents of the two repositories from the point of view of a client. CodeArtifact allows creating an upstream relationship between two repositories.

  • Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm .tgz file or Maven POM and JAR files.

CodeArtifact supports these operations:

  • AssociateExternalConnection: Adds an existing external connection to a repository.

  • CopyPackageVersions: Copies package versions from one repository to another repository in the same domain.

  • CreateDomain: Creates a domain

  • CreateRepository: Creates a CodeArtifact repository in a domain.

  • DeleteDomain: Deletes a domain. You cannot delete a domain that contains repositories.

  • DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain.

  • DeletePackageVersions: Deletes versions of a package. After a package has been deleted, it can be republished, but its assets and metadata cannot be restored because they have been permanently removed from storage.

  • DeleteRepository: Deletes a repository.

  • DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository.

  • DescribeDomain: Returns a DomainDescription object that contains information about the requested domain.

  • DescribePackage: Returns a PackageDescription object that contains details about a package.

  • DescribePackageVersion: Returns a PackageVersionDescription object that contains details about a package version.

  • DescribeRepository: Returns a RepositoryDescription object that contains detailed information about the requested repository.

  • DisposePackageVersions: Disposes versions of a package. A package version with the status Disposed cannot be restored because they have been permanently removed from storage.

  • DisassociateExternalConnection: Removes an existing external connection from a repository.

  • GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours.

  • GetDomainPermissionsPolicy: Returns the policy of a resource that is attached to the specified domain.

  • GetPackageVersionAsset: Returns the contents of an asset that is in a package version.

  • GetPackageVersionReadme: Gets the readme file or descriptive text for a package version.

  • GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:

    • maven

    • npm

    • nuget

    • pypi

  • GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository.

  • ListDomains: Returns a list of DomainSummary objects. Each returned DomainSummary object contains information about a domain.

  • ListPackages: Lists the packages in a repository.

  • ListPackageVersionAssets: Lists the assets for a given package version.

  • ListPackageVersionDependencies: Returns a list of the direct dependencies for a package version.

  • ListPackageVersions: Returns a list of package versions for a specified package in a repository.

  • ListRepositories: Returns a list of repositories owned by the Amazon Web Services account that called this method.

  • ListRepositoriesInDomain: Returns a list of the repositories in a domain.

  • PutDomainPermissionsPolicy: Attaches a resource policy to a domain.

  • PutPackageOriginConfiguration: Sets the package origin configuration for a package, which determine how new versions of the package can be added to a specific repository.

  • PutRepositoryPermissionsPolicy: Sets the resource policy on a repository that specifies permissions to access it.

  • UpdatePackageVersionsStatus: Updates the status of one or more versions of a package.

  • UpdateRepository: Updates the properties of a repository.

" + "documentation":"

CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client.

CodeArtifact Components

Use the information in this guide to help you work with the following CodeArtifact components:

  • Repository: A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets, or files. Repositories are polyglot, so a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI ( mvn ), Python CLIs ( pip and twine), and NuGet CLIs (nuget and dotnet).

  • Domain: Repositories are aggregated into a higher-level entity known as a domain. All package assets and metadata are stored in the domain, but are consumed through repositories. A given package asset, such as a Maven JAR file, is stored once per domain, no matter how many repositories it's present in. All of the assets and metadata in a domain are encrypted with the same customer master key (CMK) stored in Key Management Service (KMS).

    Each repository is a member of a single domain and can't be moved to a different domain.

    The domain allows organizational policy to be applied across multiple repositories, such as which accounts can access repositories in the domain, and which public repositories can be used as sources of packages.

    Although an organization can have multiple domains, we recommend a single production domain that contains all published artifacts so that teams can find and share packages across their organization.

  • Package: A package is a bundle of software and the metadata required to resolve dependencies and install the software. CodeArtifact supports npm, PyPI, Maven, and NuGet package formats.

    In CodeArtifact, a package consists of:

    • A name (for example, webpack is the name of a popular npm package)

    • An optional namespace (for example, @types in @types/node)

    • A set of versions (for example, 1.0.0, 1.0.1, 1.0.2, etc.)

    • Package-level metadata (for example, npm tags)

  • Package version: A version of a package, such as @types/node 12.6.9. The version number format and semantics vary for different package formats. For example, npm package versions must conform to the Semantic Versioning specification. In CodeArtifact, a package version consists of the version identifier, metadata at the package version level, and a set of assets.

  • Upstream repository: One repository is upstream of another when the package versions in it can be accessed from the repository endpoint of the downstream repository, effectively merging the contents of the two repositories from the point of view of a client. CodeArtifact allows creating an upstream relationship between two repositories.

  • Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm .tgz file or Maven POM and JAR files.

CodeArtifact supports these operations:

  • AssociateExternalConnection: Adds an existing external connection to a repository.

  • CopyPackageVersions: Copies package versions from one repository to another repository in the same domain.

  • CreateDomain: Creates a domain

  • CreateRepository: Creates a CodeArtifact repository in a domain.

  • DeleteDomain: Deletes a domain. You cannot delete a domain that contains repositories.

  • DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain.

  • DeletePackage: Deletes a package and all associated package versions.

  • DeletePackageVersions: Deletes versions of a package. After a package has been deleted, it can be republished, but its assets and metadata cannot be restored because they have been permanently removed from storage.

  • DeleteRepository: Deletes a repository.

  • DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository.

  • DescribeDomain: Returns a DomainDescription object that contains information about the requested domain.

  • DescribePackage: Returns a PackageDescription object that contains details about a package.

  • DescribePackageVersion: Returns a PackageVersionDescription object that contains details about a package version.

  • DescribeRepository: Returns a RepositoryDescription object that contains detailed information about the requested repository.

  • DisposePackageVersions: Disposes versions of a package. A package version with the status Disposed cannot be restored because they have been permanently removed from storage.

  • DisassociateExternalConnection: Removes an existing external connection from a repository.

  • GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours.

  • GetDomainPermissionsPolicy: Returns the policy of a resource that is attached to the specified domain.

  • GetPackageVersionAsset: Returns the contents of an asset that is in a package version.

  • GetPackageVersionReadme: Gets the readme file or descriptive text for a package version.

  • GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:

    • maven

    • npm

    • nuget

    • pypi

  • GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository.

  • ListDomains: Returns a list of DomainSummary objects. Each returned DomainSummary object contains information about a domain.

  • ListPackages: Lists the packages in a repository.

  • ListPackageVersionAssets: Lists the assets for a given package version.

  • ListPackageVersionDependencies: Returns a list of the direct dependencies for a package version.

  • ListPackageVersions: Returns a list of package versions for a specified package in a repository.

  • ListRepositories: Returns a list of repositories owned by the Amazon Web Services account that called this method.

  • ListRepositoriesInDomain: Returns a list of the repositories in a domain.

  • PublishPackageVersion: Creates a new package version containing one or more assets.

  • PutDomainPermissionsPolicy: Attaches a resource policy to a domain.

  • PutPackageOriginConfiguration: Sets the package origin configuration for a package, which determine how new versions of the package can be added to a specific repository.

  • PutRepositoryPermissionsPolicy: Sets the resource policy on a repository that specifies permissions to access it.

  • UpdatePackageVersionsStatus: Updates the status of one or more versions of a package.

  • UpdateRepository: Updates the properties of a repository.

" } diff --git a/services/codebuild/pom.xml b/services/codebuild/pom.xml index fa17595de5e6..124ad9831b73 100644 --- a/services/codebuild/pom.xml +++ b/services/codebuild/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codebuild AWS Java SDK :: Services :: AWS Code Build diff --git a/services/codecatalyst/pom.xml b/services/codecatalyst/pom.xml index 0c4dee966c5f..d87e9bfcc1aa 100644 --- a/services/codecatalyst/pom.xml +++ b/services/codecatalyst/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codecatalyst AWS Java SDK :: Services :: Code Catalyst diff --git a/services/codecatalyst/src/main/resources/codegen-resources/service-2.json b/services/codecatalyst/src/main/resources/codegen-resources/service-2.json index 8820f78773a9..35e74498d885 100644 --- a/services/codecatalyst/src/main/resources/codegen-resources/service-2.json +++ b/services/codecatalyst/src/main/resources/codegen-resources/service-2.json @@ -48,7 +48,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates a Dev Environment in Amazon CodeCatalyst, a cloud-based development Dev Environment that you can use to quickly work on the code stored in the source repositories of your project. By default, a Dev Environment is configured to have a 2 core processor, 4GB of RAM, and 16GB of persistent storage.

", + "documentation":"

Creates a Dev Environment in Amazon CodeCatalyst, a cloud-based development Dev Environment that you can use to quickly work on the code stored in the source repositories of your project.

When created in the Amazon CodeCatalyst console, by default a Dev Environment is configured to have a 2 core processor, 4GB of RAM, and 16GB of persistent storage. None of these defaults apply to a Dev Environment created programmatically.

", "idempotent":true }, "CreateProject":{ @@ -437,6 +437,26 @@ "documentation":"

Pauses a specified Dev Environment and places it in a non-running state. Stopped Dev Environments do not consume compute minutes.

", "idempotent":true }, + "StopDevEnvironmentSession":{ + "name":"StopDevEnvironmentSession", + "http":{ + "method":"DELETE", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments/{id}/session/{sessionId}", + "responseCode":200 + }, + "input":{"shape":"StopDevEnvironmentSessionRequest"}, + "output":{"shape":"StopDevEnvironmentSessionResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Stops a session for a specified Dev Environment.

", + "idempotent":true + }, "UpdateDevEnvironment":{ "name":"UpdateDevEnvironment", "http":{ @@ -580,7 +600,12 @@ }, "CreateAccessTokenResponse":{ "type":"structure", - "required":["secret"], + "required":[ + "secret", + "name", + "expiresTime", + "accessTokenId" + ], "members":{ "secret":{ "shape":"AccessTokenSecret", @@ -593,6 +618,10 @@ "expiresTime":{ "shape":"SyntheticTimestamp_date_time", "documentation":"

The date and time the personal access token expires, in coordinated universal time (UTC) timestamp format as specified in RFC 3339. If not specified, the default is one year from creation.

" + }, + "accessTokenId":{ + "shape":"AccessTokenId", + "documentation":"

The system-generated unique ID of the access token.

" } } }, @@ -643,7 +672,7 @@ }, "persistentStorage":{ "shape":"PersistentStorageConfiguration", - "documentation":"

Information about the amount of storage allocated to the Dev Environment. By default, a Dev Environment is configured to have 16GB of persistent storage.

Valid values for persistent storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.

" + "documentation":"

Information about the amount of storage allocated to the Dev Environment.

By default, a Dev Environment is configured to have 16GB of persistent storage when created from the Amazon CodeCatalyst console, but there is no default when programmatically creating a Dev Environment. Valid values for persistent storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.

" } } }, @@ -1491,11 +1520,11 @@ "members":{ "runtime":{ "shape":"IdeConfigurationRuntimeString", - "documentation":"

A link to the IDE runtime image.

" + "documentation":"

A link to the IDE runtime image.

This parameter is not required for VSCode.

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

The name of the IDE.

" + "documentation":"

The name of the IDE. Valid values include Cloud9, IntelliJ, PyCharm, GoLand, and VSCode.

" } }, "documentation":"

Information about the configuration of an integrated development environment (IDE) for a Dev Environment.

" @@ -1914,6 +1943,7 @@ }, "ListSourceRepositoryBranchesResponse":{ "type":"structure", + "required":["items"], "members":{ "nextToken":{ "shape":"String", @@ -2167,7 +2197,7 @@ "members":{ "name":{ "shape":"NameString", - "documentation":"

We need to know what this is and the basic usage information so that third-party developers know how to use this data type.

" + "documentation":"

The name of the space.

" }, "regionName":{ "shape":"RegionString", @@ -2374,6 +2404,78 @@ } } }, + "StopDevEnvironmentSessionRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id", + "sessionId" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment. To obtain this ID, use ListDevEnvironments.

", + "location":"uri", + "locationName":"id" + }, + "sessionId":{ + "shape":"StopDevEnvironmentSessionRequestSessionIdString", + "documentation":"

The system-generated unique ID of the Dev Environment session. This ID is returned by StartDevEnvironmentSession.

", + "location":"uri", + "locationName":"sessionId" + } + } + }, + "StopDevEnvironmentSessionRequestSessionIdString":{ + "type":"string", + "max":96, + "min":1 + }, + "StopDevEnvironmentSessionResponse":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id", + "sessionId" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

" + }, + "sessionId":{ + "shape":"StopDevEnvironmentSessionResponseSessionIdString", + "documentation":"

The system-generated unique ID of the Dev Environment session.

" + } + } + }, + "StopDevEnvironmentSessionResponseSessionIdString":{ + "type":"string", + "max":96, + "min":1 + }, "String":{"type":"string"}, "StringList":{ "type":"list", @@ -2452,8 +2554,8 @@ "UpdateDevEnvironmentRequestAliasString":{ "type":"string", "max":128, - "min":1, - "pattern":"[a-zA-Z0-9]+(?:[-_\\.][a-zA-Z0-9]+)*" + "min":0, + "pattern":"$|^[a-zA-Z0-9]+(?:[-_\\.][a-zA-Z0-9]+)*" }, "UpdateDevEnvironmentResponse":{ "type":"structure", @@ -2569,5 +2671,5 @@ "min":1 } }, - "documentation":"

Amazon CodeCatalyst is in preview release and subject to change.

Welcome to the Amazon CodeCatalyst API reference. This reference provides descriptions of operations and data types for Amazon CodeCatalyst. You can use the Amazon CodeCatalyst API to work with the following objects.

Dev Environments and the Amazon Web Services Toolkits, by calling the following:

Security, activity, and resource management in Amazon CodeCatalyst, by calling the following:

  • DeleteAccessToken, which deletes a specified personal access token (PAT).

  • ListAccessTokens, which lists all personal access tokens (PATs) associated with a user.

  • ListEventLogs, which retrieves a list of events that occurred during a specified time period in a space.

" + "documentation":"

Amazon CodeCatalyst is in preview release and subject to change.

Welcome to the Amazon CodeCatalyst API reference. This reference provides descriptions of operations and data types for Amazon CodeCatalyst. You can use the Amazon CodeCatalyst API to work with the following objects.

Dev Environments and the Amazon Web Services Toolkits, by calling the following:

Security, activity, and resource management in Amazon CodeCatalyst, by calling the following:

  • DeleteAccessToken, which deletes a specified personal access token (PAT).

  • ListAccessTokens, which lists all personal access tokens (PATs) associated with a user.

  • ListEventLogs, which retrieves a list of events that occurred during a specified time period in a space.

" } diff --git a/services/codecommit/pom.xml b/services/codecommit/pom.xml index ab4d1f4c2bb8..4ffbf1bc2911 100644 --- a/services/codecommit/pom.xml +++ b/services/codecommit/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codecommit AWS Java SDK :: Services :: AWS CodeCommit diff --git a/services/codedeploy/pom.xml b/services/codedeploy/pom.xml index 8f68f4ffacfc..59f8969a727f 100644 --- a/services/codedeploy/pom.xml +++ b/services/codedeploy/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codedeploy AWS Java SDK :: Services :: AWS CodeDeploy diff --git a/services/codeguruprofiler/pom.xml b/services/codeguruprofiler/pom.xml index 5039da4c1d37..e9e01b6fe918 100644 --- a/services/codeguruprofiler/pom.xml +++ b/services/codeguruprofiler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codeguruprofiler AWS Java SDK :: Services :: CodeGuruProfiler diff --git a/services/codegurureviewer/pom.xml b/services/codegurureviewer/pom.xml index dec547b9b84f..a4b31173adab 100644 --- a/services/codegurureviewer/pom.xml +++ b/services/codegurureviewer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codegurureviewer AWS Java SDK :: Services :: CodeGuru Reviewer diff --git a/services/codepipeline/pom.xml b/services/codepipeline/pom.xml index b07738f9e7bd..ec8ed11d3d9d 100644 --- a/services/codepipeline/pom.xml +++ b/services/codepipeline/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codepipeline AWS Java SDK :: Services :: AWS CodePipeline diff --git a/services/codestar/pom.xml b/services/codestar/pom.xml index 90980cb9e83e..cf6c33518fdd 100644 --- a/services/codestar/pom.xml +++ b/services/codestar/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codestar AWS Java SDK :: Services :: AWS CodeStar diff --git a/services/codestarconnections/pom.xml b/services/codestarconnections/pom.xml index cbfbc379bf21..652f7968648d 100644 --- a/services/codestarconnections/pom.xml +++ b/services/codestarconnections/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codestarconnections AWS Java SDK :: Services :: CodeStar connections diff --git a/services/codestarnotifications/pom.xml b/services/codestarnotifications/pom.xml index 9690f8ad44ce..b2b82b19b099 100644 --- a/services/codestarnotifications/pom.xml +++ b/services/codestarnotifications/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT codestarnotifications AWS Java SDK :: Services :: Codestar Notifications diff --git a/services/cognitoidentity/pom.xml b/services/cognitoidentity/pom.xml index df88fb4782a4..a4d307924afb 100644 --- a/services/cognitoidentity/pom.xml +++ b/services/cognitoidentity/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cognitoidentity AWS Java SDK :: Services :: Amazon Cognito Identity diff --git a/services/cognitoidentityprovider/pom.xml b/services/cognitoidentityprovider/pom.xml index caaa85f7ddef..0031e939480e 100644 --- a/services/cognitoidentityprovider/pom.xml +++ b/services/cognitoidentityprovider/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cognitoidentityprovider AWS Java SDK :: Services :: Amazon Cognito Identity Provider Service diff --git a/services/cognitosync/pom.xml b/services/cognitosync/pom.xml index 0fdcde8bd7a7..33a1926637cd 100644 --- a/services/cognitosync/pom.xml +++ b/services/cognitosync/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT cognitosync AWS Java SDK :: Services :: Amazon Cognito Sync diff --git a/services/comprehend/pom.xml b/services/comprehend/pom.xml index 402da4dad998..561cb4a00f75 100644 --- a/services/comprehend/pom.xml +++ b/services/comprehend/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 comprehend diff --git a/services/comprehend/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/comprehend/src/main/resources/codegen-resources/endpoint-rule-set.json index 62da72bdfe66..f3e6eb40d672 100644 --- a/services/comprehend/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/comprehend/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehend-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehend-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://comprehend-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehend.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://comprehend-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://comprehend.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://comprehend.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://comprehend.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/comprehend/src/main/resources/codegen-resources/endpoint-tests.json b/services/comprehend/src/main/resources/codegen-resources/endpoint-tests.json index 7d2411ad2896..a63e830fa039 100644 --- a/services/comprehend/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/comprehend/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.ap-south-1.amazonaws.com" + "url": "https://comprehend.ap-northeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.ap-south-1.api.aws" + "url": "https://comprehend.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false, + "Region": "ap-northeast-2" } }, { @@ -47,48 +34,35 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "ap-south-1" } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.ca-central-1.amazonaws.com" + "url": "https://comprehend.ap-southeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" + "Region": "ap-southeast-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.ca-central-1.api.aws" + "url": "https://comprehend.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ca-central-1" + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { @@ -99,125 +73,112 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "ca-central-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-central-1.api.aws" + "url": "https://comprehend.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, + "UseFIPS": false, + "UseDualStack": false, "Region": "eu-central-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-central-1.amazonaws.com" + "url": "https://comprehend.eu-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" + "Region": "eu-west-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-central-1.api.aws" + "url": "https://comprehend.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-central-1.amazonaws.com" + "url": "https://comprehend.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.us-west-1.api.aws" + "url": "https://comprehend-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-west-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" + "Region": "us-east-1" } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.us-west-1.api.aws" + "url": "https://comprehend.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-west-1" + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.us-west-1.amazonaws.com" + "url": "https://comprehend-fips.us-east-2.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" + "Region": "us-east-2" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.us-west-2.api.aws" + "url": "https://comprehend.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, + "UseFIPS": false, + "UseDualStack": false, "Region": "us-west-2" } }, @@ -229,1005 +190,318 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-west-2" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://comprehend.us-west-2.api.aws" + "url": "https://comprehend-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://comprehend.us-west-2.amazonaws.com" + "url": "https://comprehend.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-west-2" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.af-south-1.api.aws" + "url": "https://comprehend-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "af-south-1" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.af-south-1.amazonaws.com" + "url": "https://comprehend-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "af-south-1" + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://comprehend.af-south-1.api.aws" + "url": "https://comprehend.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "af-south-1" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.af-south-1.amazonaws.com" + "url": "https://comprehend.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "af-south-1" + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-north-1.api.aws" + "url": "https://comprehend.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-north-1.amazonaws.com" + "url": "https://comprehend-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "eu-north-1" + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-north-1.api.aws" + "url": "https://comprehend-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-north-1.amazonaws.com" + "url": "https://comprehend-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-west-3.api.aws" + "url": "https://comprehend.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" + "Region": "us-gov-east-1" } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-west-3.amazonaws.com" + "url": "https://comprehend.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" + "Region": "us-gov-east-1" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-west-3.api.aws" + "url": "https://comprehend.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-3" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://comprehend.eu-west-3.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-west-2.api.aws" + "url": "https://comprehend-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "eu-west-2" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://comprehend-fips.eu-west-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://comprehend.eu-west-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-west-2.amazonaws.com" + "url": "https://comprehend-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://comprehend-fips.eu-west-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://comprehend-fips.eu-west-1.amazonaws.com" + "url": "https://comprehend.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-west-1.api.aws" + "url": "https://example.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://comprehend.eu-west-1.amazonaws.com" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-northeast-2.api.aws" - } + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with fips disabled and dualstack enabled", "expect": { - "endpoint": { - "url": "https://comprehend.ap-northeast-2.api.aws" - } + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "Missing region", "expect": { - "endpoint": { - "url": "https://comprehend.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend-fips.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://comprehend.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://comprehend.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", - "expect": { - "endpoint": { - "url": "https://example.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "For custom endpoint with fips enabled and dualstack disabled", - "expect": { - "error": "Invalid Configuration: FIPS and custom endpoint are not supported" - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1", - "Endpoint": "https://example.com" - } - }, - { - "documentation": "For custom endpoint with fips disabled and dualstack enabled", - "expect": { - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1", - "Endpoint": "https://example.com" + "error": "Invalid Configuration: Missing Region" } } ], diff --git a/services/comprehend/src/main/resources/codegen-resources/paginators-1.json b/services/comprehend/src/main/resources/codegen-resources/paginators-1.json index d95d1ab4d686..3db5bd18266f 100644 --- a/services/comprehend/src/main/resources/codegen-resources/paginators-1.json +++ b/services/comprehend/src/main/resources/codegen-resources/paginators-1.json @@ -1,5 +1,10 @@ { "pagination": { + "ListDatasets": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, "ListDocumentClassificationJobs": { "input_token": "NextToken", "limit_key": "MaxResults", @@ -46,6 +51,16 @@ "limit_key": "MaxResults", "output_token": "NextToken" }, + "ListFlywheelIterationHistory": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "ListFlywheels": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, "ListKeyPhrasesDetectionJobs": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/services/comprehend/src/main/resources/codegen-resources/service-2.json b/services/comprehend/src/main/resources/codegen-resources/service-2.json index 35eb36064436..a3cef06d18f2 100644 --- a/services/comprehend/src/main/resources/codegen-resources/service-2.json +++ b/services/comprehend/src/main/resources/codegen-resources/service-2.json @@ -146,6 +146,25 @@ ], "documentation":"

Analyzes input text for the presence of personally identifiable information (PII) and returns the labels of identified PII entity types such as name, address, bank account number, or phone number.

" }, + "CreateDataset":{ + "name":"CreateDataset", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDatasetRequest"}, + "output":{"shape":"CreateDatasetResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceInUseException"}, + {"shape":"TooManyTagsException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a dataset to upload training or test data for a model associated with a flywheel. For more information about datasets, see Flywheel overview in the Amazon Comprehend Developer Guide.

" + }, "CreateDocumentClassifier":{ "name":"CreateDocumentClassifier", "http":{ @@ -204,7 +223,29 @@ {"shape":"KmsKeyValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates an entity recognizer using submitted files. After your CreateEntityRecognizer request is submitted, you can check job status using the API.

" + "documentation":"

Creates an entity recognizer using submitted files. After your CreateEntityRecognizer request is submitted, you can check job status using the DescribeEntityRecognizer API.

" + }, + "CreateFlywheel":{ + "name":"CreateFlywheel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFlywheelRequest"}, + "output":{"shape":"CreateFlywheelResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceInUseException"}, + {"shape":"TooManyTagsException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"KmsKeyValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceUnavailableException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

A flywheel is an Amazon Web Services resource that orchestrates the ongoing training of a model for custom classification or custom entity recognition. You can create a flywheel to start with an existing trained model, or Comprehend can create and train a new model.

When you create the flywheel, Comprehend creates a data lake in your account. The data lake holds the training data and test data for all versions of the model.

To use a flywheel with an existing trained model, you specify the active model version. Comprehend copies the model's training data and test data into the flywheel's data lake.

To use the flywheel with a new model, you need to provide a dataset for training data (and optional test data) when you create the flywheel.

For more information about flywheels, see Flywheel overview in the Amazon Comprehend Developer Guide.

" }, "DeleteDocumentClassifier":{ "name":"DeleteDocumentClassifier", @@ -259,6 +300,24 @@ ], "documentation":"

Deletes an entity recognizer.

Only those recognizers that are in terminated states (IN_ERROR, TRAINED) will be deleted. If an active inference job is using the model, a ResourceInUseException will be returned.

This is an asynchronous action that puts the recognizer into a DELETING state, and it is then removed by a background job. Once removed, the recognizer disappears from your account and is no longer available for use.

" }, + "DeleteFlywheel":{ + "name":"DeleteFlywheel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFlywheelRequest"}, + "output":{"shape":"DeleteFlywheelResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceUnavailableException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes a flywheel. When you delete the flywheel, Amazon Comprehend does not delete the data lake or the model associated with the flywheel.

For more information about flywheels, see Flywheel overview in the Amazon Comprehend Developer Guide.

" + }, "DeleteResourcePolicy":{ "name":"DeleteResourcePolicy", "http":{ @@ -274,6 +333,22 @@ ], "documentation":"

Deletes a resource-based policy that is attached to a custom model.

" }, + "DescribeDataset":{ + "name":"DescribeDataset", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDatasetRequest"}, + "output":{"shape":"DescribeDatasetResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about the dataset that you specify. For more information about datasets, see Flywheel overview in the Amazon Comprehend Developer Guide.

" + }, "DescribeDocumentClassificationJob":{ "name":"DescribeDocumentClassificationJob", "http":{ @@ -386,6 +461,38 @@ ], "documentation":"

Gets the status and details of an events detection job.

" }, + "DescribeFlywheel":{ + "name":"DescribeFlywheel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFlywheelRequest"}, + "output":{"shape":"DescribeFlywheelResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Provides configuration information about the flywheel. For more information about flywheels, see Flywheel overview in the Amazon Comprehend Developer Guide.

" + }, + "DescribeFlywheelIteration":{ + "name":"DescribeFlywheelIteration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFlywheelIterationRequest"}, + "output":{"shape":"DescribeFlywheelIterationResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieve the configuration properties of a flywheel iteration. For more information about flywheels, see Flywheel overview in the Amazon Comprehend Developer Guide.

" + }, "DescribeKeyPhrasesDetectionJob":{ "name":"DescribeKeyPhrasesDetectionJob", "http":{ @@ -612,7 +719,24 @@ {"shape":"KmsKeyValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a new custom model that replicates a source custom model that you import. The source model can be in your AWS account or another one.

If the source model is in another AWS account, then it must have a resource-based policy that authorizes you to import it.

The source model must be in the same AWS region that you're using when you import. You can't import a model that's in a different region.

" + "documentation":"

Creates a new custom model that replicates a source custom model that you import. The source model can be in your Amazon Web Services account or another one.

If the source model is in another Amazon Web Services account, then it must have a resource-based policy that authorizes you to import it.

The source model must be in the same Amazon Web Services Region that you're using when you import. You can't import a model that's in a different Region.

" + }, + "ListDatasets":{ + "name":"ListDatasets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDatasetsRequest"}, + "output":{"shape":"ListDatasetsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidFilterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

List the datasets that you have configured in this Region. For more information about datasets, see Flywheel overview in the Amazon Comprehend Developer Guide.

" }, "ListDocumentClassificationJobs":{ "name":"ListDocumentClassificationJobs", @@ -755,6 +879,39 @@ ], "documentation":"

Gets a list of the events detection jobs that you have submitted.

" }, + "ListFlywheelIterationHistory":{ + "name":"ListFlywheelIterationHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFlywheelIterationHistoryRequest"}, + "output":{"shape":"ListFlywheelIterationHistoryResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidFilterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Information about the history of a flywheel iteration. For more information about flywheels, see Flywheel overview in the Amazon Comprehend Developer Guide.

" + }, + "ListFlywheels":{ + "name":"ListFlywheels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFlywheelsRequest"}, + "output":{"shape":"ListFlywheelsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidFilterException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets a list of the flywheels that you have created.

" + }, "ListKeyPhrasesDetectionJobs":{ "name":"ListKeyPhrasesDetectionJobs", "http":{ @@ -863,7 +1020,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Attaches a resource-based policy to a custom model. You can use this policy to authorize an entity in another AWS account to import the custom model, which replicates it in Amazon Comprehend in their account.

" + "documentation":"

Attaches a resource-based policy to a custom model. You can use this policy to authorize an entity in another Amazon Web Services account to import the custom model, which replicates it in Amazon Comprehend in their account.

" }, "StartDocumentClassificationJob":{ "name":"StartDocumentClassificationJob", @@ -882,7 +1039,7 @@ {"shape":"TooManyTagsException"}, {"shape":"InternalServerException"} ], - "documentation":"

Starts an asynchronous document classification job. Use the operation to track the progress of the job.

" + "documentation":"

Starts an asynchronous document classification job. Use the DescribeDocumentClassificationJob operation to track the progress of the job.

" }, "StartDominantLanguageDetectionJob":{ "name":"StartDominantLanguageDetectionJob", @@ -937,6 +1094,23 @@ ], "documentation":"

Starts an asynchronous event detection job for a collection of documents.

" }, + "StartFlywheelIteration":{ + "name":"StartFlywheelIteration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartFlywheelIterationRequest"}, + "output":{"shape":"StartFlywheelIterationResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Start the flywheel iteration.This operation uses any new datasets to train a new model version. For more information about flywheels, see Flywheel overview in the Amazon Comprehend Developer Guide.

" + }, "StartKeyPhrasesDetectionJob":{ "name":"StartKeyPhrasesDetectionJob", "http":{ @@ -1003,7 +1177,7 @@ {"shape":"TooManyTagsException"}, {"shape":"InternalServerException"} ], - "documentation":"

Starts an asynchronous targeted sentiment detection job for a collection of documents. Use the operation to track the status of a job.

" + "documentation":"

Starts an asynchronous targeted sentiment detection job for a collection of documents. Use the DescribeTargetedSentimentDetectionJob operation to track the status of a job.

" }, "StartTopicsDetectionJob":{ "name":"StartTopicsDetectionJob", @@ -1211,6 +1385,23 @@ {"shape":"InternalServerException"} ], "documentation":"

Updates information about the specified endpoint. For information about endpoints, see Managing endpoints.

" + }, + "UpdateFlywheel":{ + "name":"UpdateFlywheel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateFlywheelRequest"}, + "output":{"shape":"UpdateFlywheelResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"KmsKeyValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Update the configuration information for an existing flywheel.

" } }, "shapes":{ @@ -1433,7 +1624,7 @@ "members":{ "TextList":{ "shape":"CustomerInputStringList", - "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. The maximum size of each document is 5 KB.

Amazon Comprehend performs real-time sentiment analysis on the first 500 characters of the input text and ignores any additional text in the input.

" + "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. The maximum size of each document is 5 KB.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -1804,13 +1995,18 @@ "ComprehendArn":{ "type":"string", "max":256, - "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-]{1,64}/[a-zA-Z0-9](-*[a-zA-Z0-9])*(/version/[a-zA-Z0-9](-*[a-zA-Z0-9])*)?" + "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:[a-zA-Z0-9-]{1,64}/[a-zA-Z0-9](-*[a-zA-Z0-9])*((/dataset/[a-zA-Z0-9](-*[a-zA-Z0-9])*)|(/version/[a-zA-Z0-9](-*[a-zA-Z0-9])*))?" }, "ComprehendArnName":{ "type":"string", "max":63, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" }, + "ComprehendDatasetArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:flywheel/[a-zA-Z0-9](-*[a-zA-Z0-9])*/dataset/[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, "ComprehendEndpointArn":{ "type":"string", "max":256, @@ -1821,6 +2017,11 @@ "max":40, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" }, + "ComprehendFlywheelArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws(-[^:]+)?:comprehend:[a-zA-Z0-9-]*:[0-9]{12}:flywheel/[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, "ComprehendModelArn":{ "type":"string", "max":256, @@ -1860,6 +2061,54 @@ } } }, + "CreateDatasetRequest":{ + "type":"structure", + "required":[ + "FlywheelArn", + "DatasetName", + "InputDataConfig" + ], + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel of the flywheel to receive the data.

" + }, + "DatasetName":{ + "shape":"ComprehendArnName", + "documentation":"

Name of the dataset.

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

The dataset type. You can specify that the data in a dataset is for training the model or for testing the model.

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

Description of the dataset.

" + }, + "InputDataConfig":{ + "shape":"DatasetInputDataConfig", + "documentation":"

Information about the input data configuration. The type of input data varies based on the format of the input and whether the data is for a classifier model or an entity recognition model.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestTokenString", + "documentation":"

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags for the dataset.

" + } + } + }, + "CreateDatasetResponse":{ + "type":"structure", + "members":{ + "DatasetArn":{ + "shape":"ComprehendDatasetArn", + "documentation":"

The ARN of the dataset.

" + } + } + }, "CreateDocumentClassifierRequest":{ "type":"structure", "required":[ @@ -1875,15 +2124,15 @@ }, "VersionName":{ "shape":"VersionName", - "documentation":"

The version name given to the newly created classifier. Version names can have a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The version name must be unique among all models with the same classifier name in the account/AWS Region.

" + "documentation":"

The version name given to the newly created classifier. Version names can have a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The version name must be unique among all models with the same classifier name in the Amazon Web Services account/Amazon Web Services Region.

" }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the document classifier being created. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the document classifier. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" }, "InputDataConfig":{ "shape":"DocumentClassifierInputDataConfig", @@ -1900,11 +2149,11 @@ }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language of the input documents. You can specify any of the following languages supported by Amazon Comprehend: German (\"de\"), English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), or Portuguese (\"pt\"). All documents must be in the same language.

" + "documentation":"

The language of the input documents. You can specify any of the languages supported by Amazon Comprehend. All documents must be in the same language.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -1916,11 +2165,11 @@ }, "ModelKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "ModelPolicy":{ "shape":"Policy", - "documentation":"

The resource-based policy to attach to your custom document classifier model. You can use this policy to allow another AWS account to import your custom model.

Provide your policy as a JSON body that you enter as a UTF-8 encoded string without line breaks. To provide valid JSON, enclose the attribute names and values in double quotes. If the JSON body is also enclosed in double quotes, then you must escape the double quotes that are inside the policy:

\"{\\\"attribute\\\": \\\"value\\\", \\\"attribute\\\": [\\\"value\\\"]}\"

To avoid escaping quotes, you can use single quotes to enclose the policy and double quotes to enclose the JSON names and values:

'{\"attribute\": \"value\", \"attribute\": [\"value\"]}'

" + "documentation":"

The resource-based policy to attach to your custom document classifier model. You can use this policy to allow another Amazon Web Services account to import your custom model.

Provide your policy as a JSON body that you enter as a UTF-8 encoded string without line breaks. To provide valid JSON, enclose the attribute names and values in double quotes. If the JSON body is also enclosed in double quotes, then you must escape the double quotes that are inside the policy:

\"{\\\"attribute\\\": \\\"value\\\", \\\"attribute\\\": [\\\"value\\\"]}\"

To avoid escaping quotes, you can use single quotes to enclose the policy and double quotes to enclose the JSON names and values:

'{\"attribute\": \"value\", \"attribute\": [\"value\"]}'

" } } }, @@ -1937,7 +2186,6 @@ "type":"structure", "required":[ "EndpointName", - "ModelArn", "DesiredInferenceUnits" ], "members":{ @@ -1960,11 +2208,15 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags associated with the endpoint being created. A tag is a key-value pair that adds metadata to the endpoint. For example, a tag with \"Sales\" as the key might be added to an endpoint to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the endpoint. A tag is a key-value pair that adds metadata to the endpoint. For example, a tag with \"Sales\" as the key might be added to an endpoint to indicate its use by the sales department.

" }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS identity and Access Management (IAM) role that grants Amazon Comprehend read access to trained custom models encrypted with a customer managed key (ModelKmsKeyId).

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to trained custom models encrypted with a customer managed key (ModelKmsKeyId).

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel to which the endpoint will be attached.

" } } }, @@ -1974,6 +2226,10 @@ "EndpointArn":{ "shape":"ComprehendEndpointArn", "documentation":"

The Amazon Resource Number (ARN) of the endpoint being created.

" + }, + "ModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

The Amazon Resource Number (ARN) of the model to which the endpoint is attached.

" } } }, @@ -1988,23 +2244,23 @@ "members":{ "RecognizerName":{ "shape":"ComprehendArnName", - "documentation":"

The name given to the newly created recognizer. Recognizer names can be a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The name must be unique in the account/region.

" + "documentation":"

The name given to the newly created recognizer. Recognizer names can be a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The name must be unique in the account/Region.

" }, "VersionName":{ "shape":"VersionName", - "documentation":"

The version name given to the newly created recognizer. Version names can be a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The version name must be unique among all models with the same recognizer name in the account/ AWS Region.

" + "documentation":"

The version name given to the newly created recognizer. Version names can be a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The version name must be unique among all models with the same recognizer name in the account/Region.

" }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the entity recognizer being created. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the entity recognizer. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" }, "InputDataConfig":{ "shape":"EntityRecognizerInputDataConfig", - "documentation":"

Specifies the format and location of the input data. The S3 bucket containing the input data must be located in the same region as the entity recognizer being created.

" + "documentation":"

Specifies the format and location of the input data. The S3 bucket containing the input data must be located in the same Region as the entity recognizer being created.

" }, "ClientRequestToken":{ "shape":"ClientRequestTokenString", @@ -2017,7 +2273,7 @@ }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -2025,11 +2281,11 @@ }, "ModelKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "ModelPolicy":{ "shape":"Policy", - "documentation":"

The JSON resource-based policy to attach to your custom entity recognizer model. You can use this policy to allow another AWS account to import your custom model.

Provide your JSON as a UTF-8 encoded string without line breaks. To provide valid JSON for your policy, enclose the attribute names and values in double quotes. If the JSON body is also enclosed in double quotes, then you must escape the double quotes that are inside the policy:

\"{\\\"attribute\\\": \\\"value\\\", \\\"attribute\\\": [\\\"value\\\"]}\"

To avoid escaping quotes, you can use single quotes to enclose the policy and double quotes to enclose the JSON names and values:

'{\"attribute\": \"value\", \"attribute\": [\"value\"]}'

" + "documentation":"

The JSON resource-based policy to attach to your custom entity recognizer model. You can use this policy to allow another Amazon Web Services account to import your custom model.

Provide your JSON as a UTF-8 encoded string without line breaks. To provide valid JSON for your policy, enclose the attribute names and values in double quotes. If the JSON body is also enclosed in double quotes, then you must escape the double quotes that are inside the policy:

\"{\\\"attribute\\\": \\\"value\\\", \\\"attribute\\\": [\\\"value\\\"]}\"

To avoid escaping quotes, you can use single quotes to enclose the policy and double quotes to enclose the JSON names and values:

'{\"attribute\": \"value\", \"attribute\": [\"value\"]}'

" } } }, @@ -2042,6 +2298,66 @@ } } }, + "CreateFlywheelRequest":{ + "type":"structure", + "required":[ + "FlywheelName", + "DataAccessRoleArn", + "DataLakeS3Uri" + ], + "members":{ + "FlywheelName":{ + "shape":"ComprehendArnName", + "documentation":"

Name for the flywheel.

" + }, + "ActiveModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

To associate an existing model with the flywheel, specify the Amazon Resource Number (ARN) of the model version.

" + }, + "DataAccessRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend the permissions required to access the flywheel data in the data lake.

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

Configuration about the custom classifier associated with the flywheel.

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

The model type.

" + }, + "DataLakeS3Uri":{ + "shape":"FlywheelS3Uri", + "documentation":"

Enter the S3 location for the data lake. You can specify a new S3 bucket or a new folder of an existing S3 bucket. The flywheel creates the data lake at this location.

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

Data security configurations.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestTokenString", + "documentation":"

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags to associate with this flywheel.

" + } + } + }, + "CreateFlywheelResponse":{ + "type":"structure", + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel.

" + }, + "ActiveModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

The Amazon Resource Number (ARN) of the active model version.

" + } + } + }, "CustomerInputString":{ "type":"string", "min":1, @@ -2053,31 +2369,271 @@ "min":1, "sensitive":true }, - "DeleteDocumentClassifierRequest":{ + "DataSecurityConfig":{ "type":"structure", - "required":["DocumentClassifierArn"], "members":{ - "DocumentClassifierArn":{ - "shape":"DocumentClassifierArn", - "documentation":"

The Amazon Resource Name (ARN) that identifies the document classifier.

" - } - } + "ModelKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + }, + "VolumeKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt the volume.

" + }, + "DataLakeKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt the data in the data lake.

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

Data security configuration.

" }, - "DeleteDocumentClassifierResponse":{ - "type":"structure", - "members":{ - } + "DatasetAugmentedManifestsList":{ + "type":"list", + "member":{"shape":"DatasetAugmentedManifestsListItem"} }, - "DeleteEndpointRequest":{ + "DatasetAugmentedManifestsListItem":{ "type":"structure", - "required":["EndpointArn"], + "required":[ + "AttributeNames", + "S3Uri" + ], "members":{ - "EndpointArn":{ - "shape":"ComprehendEndpointArn", - "documentation":"

The Amazon Resource Number (ARN) of the endpoint being deleted.

" + "AttributeNames":{ + "shape":"AttributeNamesList", + "documentation":"

The JSON attribute that contains the annotations for your training documents. The number of attribute names that you specify depends on whether your augmented manifest file is the output of a single labeling job or a chained labeling job.

If your file is the output of a single labeling job, specify the LabelAttributeName key that was used when the job was created in Ground Truth.

If your file is the output of a chained labeling job, specify the LabelAttributeName key for one or more jobs in the chain. Each LabelAttributeName key provides the annotations from an individual job.

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

The Amazon S3 location of the augmented manifest file.

" + }, + "AnnotationDataS3Uri":{ + "shape":"S3Uri", + "documentation":"

The S3 prefix to the annotation files that are referred in the augmented manifest file.

" + }, + "SourceDocumentsS3Uri":{ + "shape":"S3Uri", + "documentation":"

The S3 prefix to the source files (PDFs) that are referred to in the augmented manifest file.

" + }, + "DocumentType":{ + "shape":"AugmentedManifestsDocumentTypeFormat", + "documentation":"

The type of augmented manifest. If you don't specify, the default is PlainTextDocument.

PLAIN_TEXT_DOCUMENT A document type that represents any unicode text that is encoded in UTF-8.

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

An augmented manifest file that provides training data for your custom model. An augmented manifest file is a labeled dataset that is produced by Amazon SageMaker Ground Truth.

" + }, + "DatasetDataFormat":{ + "type":"string", + "enum":[ + "COMPREHEND_CSV", + "AUGMENTED_MANIFEST" + ] + }, + "DatasetDocumentClassifierInputDataConfig":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "S3Uri":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 URI for the input data. The S3 bucket must be in the same Region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of input files.

For example, if you use the URI S3://bucketName/prefix, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.

This parameter is required if you set DataFormat to COMPREHEND_CSV.

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

Indicates the delimiter used to separate each label for training a multi-label classifier. The default delimiter between labels is a pipe (|). You can use a different character as a delimiter (if it's an allowed character) by specifying it under Delimiter for labels. If the training documents use a delimiter other than the default or the delimiter you specify, the labels on that line will be combined to make a single unique label, such as LABELLABELLABEL.

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

Describes the dataset input data configuration for a document classifier model.

For more information on how the input file is formatted, see Preparing training data in the Comprehend Developer Guide.

" + }, + "DatasetEntityRecognizerAnnotations":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "S3Uri":{ + "shape":"S3Uri", + "documentation":"

Specifies the Amazon S3 location where the training documents for an entity recognizer are located. The URI must be in the same Region as the API endpoint that you are calling.

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

Describes the annotations associated with a entity recognizer.

" + }, + "DatasetEntityRecognizerDocuments":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "S3Uri":{ + "shape":"S3Uri", + "documentation":"

Specifies the Amazon S3 location where the documents for the dataset are located.

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

Specifies how the text in an input file should be processed. This is optional, and the default is ONE_DOC_PER_LINE. ONE_DOC_PER_FILE - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. ONE_DOC_PER_LINE - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages.

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

Describes the documents submitted with a dataset for an entity recognizer model.

" + }, + "DatasetEntityRecognizerEntityList":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "S3Uri":{ + "shape":"S3Uri", + "documentation":"

Specifies the Amazon S3 location where the entity list is located.

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

Describes the dataset entity list for an entity recognizer model.

For more information on how the input file is formatted, see Preparing training data in the Comprehend Developer Guide.

" + }, + "DatasetEntityRecognizerInputDataConfig":{ + "type":"structure", + "required":["Documents"], + "members":{ + "Annotations":{ + "shape":"DatasetEntityRecognizerAnnotations", + "documentation":"

The S3 location of the annotation documents for your custom entity recognizer.

" + }, + "Documents":{ + "shape":"DatasetEntityRecognizerDocuments", + "documentation":"

The format and location of the training documents for your custom entity recognizer.

" + }, + "EntityList":{ + "shape":"DatasetEntityRecognizerEntityList", + "documentation":"

The S3 location of the entity list for your custom entity recognizer.

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

Specifies the format and location of the input data. You must provide either the Annotations parameter or the EntityList parameter.

" + }, + "DatasetFilter":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"DatasetStatus", + "documentation":"

Filter the datasets based on the dataset status.

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

Filter the datasets based on the dataset type.

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

Filter the datasets to include datasets created after the specified time.

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

Filter the datasets to include datasets created before the specified time.

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

Filter the datasets based on creation time or dataset status.

" + }, + "DatasetInputDataConfig":{ + "type":"structure", + "members":{ + "AugmentedManifests":{ + "shape":"DatasetAugmentedManifestsList", + "documentation":"

A list of augmented manifest files that provide training data for your custom model. An augmented manifest file is a labeled dataset that is produced by Amazon SageMaker Ground Truth.

" + }, + "DataFormat":{ + "shape":"DatasetDataFormat", + "documentation":"

COMPREHEND_CSV: The data format is a two-column CSV file, where the first column contains labels and the second column contains documents.

AUGMENTED_MANIFEST: The data format

" + }, + "DocumentClassifierInputDataConfig":{ + "shape":"DatasetDocumentClassifierInputDataConfig", + "documentation":"

The input properties for training a document classifier model.

For more information on how the input file is formatted, see Preparing training data in the Comprehend Developer Guide.

" + }, + "EntityRecognizerInputDataConfig":{ + "shape":"DatasetEntityRecognizerInputDataConfig", + "documentation":"

The input properties for training an entity recognizer model.

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

Specifies the format and location of the input data for the dataset.

" + }, + "DatasetProperties":{ + "type":"structure", + "members":{ + "DatasetArn":{ + "shape":"ComprehendDatasetArn", + "documentation":"

The ARN of the dataset.

" + }, + "DatasetName":{ + "shape":"ComprehendArnName", + "documentation":"

The name of the dataset.

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

The dataset type (training data or test data).

" + }, + "DatasetS3Uri":{ + "shape":"S3Uri", + "documentation":"

The S3 URI where the dataset is stored.

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

Description of the dataset.

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

The dataset status. While the system creates the dataset, the status is CREATING. When the dataset is ready to use, the status changes to COMPLETED.

" + }, + "Message":{ + "shape":"AnyLengthString", + "documentation":"

A description of the status of the dataset.

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

The number of documents in the dataset.

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

Creation time of the dataset.

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

Time when the data from the dataset becomes available in the data lake.

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

Properties associated with the dataset.

" + }, + "DatasetPropertiesList":{ + "type":"list", + "member":{"shape":"DatasetProperties"} + }, + "DatasetStatus":{ + "type":"string", + "enum":[ + "CREATING", + "COMPLETED", + "FAILED" + ] + }, + "DatasetType":{ + "type":"string", + "enum":[ + "TRAIN", + "TEST" + ] + }, + "DeleteDocumentClassifierRequest":{ + "type":"structure", + "required":["DocumentClassifierArn"], + "members":{ + "DocumentClassifierArn":{ + "shape":"DocumentClassifierArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies the document classifier.

" + } + } + }, + "DeleteDocumentClassifierResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteEndpointRequest":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{ + "shape":"ComprehendEndpointArn", + "documentation":"

The Amazon Resource Number (ARN) of the endpoint being deleted.

" + } + } + }, "DeleteEndpointResponse":{ "type":"structure", "members":{ @@ -2098,6 +2654,21 @@ "members":{ } }, + "DeleteFlywheelRequest":{ + "type":"structure", + "required":["FlywheelArn"], + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel to delete.

" + } + } + }, + "DeleteFlywheelResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteResourcePolicyRequest":{ "type":"structure", "required":["ResourceArn"], @@ -2117,13 +2688,32 @@ "members":{ } }, + "DescribeDatasetRequest":{ + "type":"structure", + "required":["DatasetArn"], + "members":{ + "DatasetArn":{ + "shape":"ComprehendDatasetArn", + "documentation":"

The ARN of the dataset.

" + } + } + }, + "DescribeDatasetResponse":{ + "type":"structure", + "members":{ + "DatasetProperties":{ + "shape":"DatasetProperties", + "documentation":"

The dataset properties.

" + } + } + }, "DescribeDocumentClassificationJobRequest":{ "type":"structure", "required":["JobId"], "members":{ "JobId":{ "shape":"JobId", - "documentation":"

The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.

" + "documentation":"

The identifier that Amazon Comprehend generated for the job. The StartDocumentClassificationJob operation returns this identifier in its response.

" } } }, @@ -2142,7 +2732,7 @@ "members":{ "DocumentClassifierArn":{ "shape":"DocumentClassifierArn", - "documentation":"

The Amazon Resource Name (ARN) that identifies the document classifier. The operation returns this identifier in its response.

" + "documentation":"

The Amazon Resource Name (ARN) that identifies the document classifier. The CreateDocumentClassifier operation returns this identifier in its response.

" } } }, @@ -2161,7 +2751,7 @@ "members":{ "JobId":{ "shape":"JobId", - "documentation":"

The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.

" + "documentation":"

The identifier that Amazon Comprehend generated for the job. The StartDominantLanguageDetectionJob operation returns this identifier in its response.

" } } }, @@ -2199,7 +2789,7 @@ "members":{ "JobId":{ "shape":"JobId", - "documentation":"

The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.

" + "documentation":"

The identifier that Amazon Comprehend generated for the job. The StartEntitiesDetectionJob operation returns this identifier in its response.

" } } }, @@ -2250,13 +2840,58 @@ } } }, + "DescribeFlywheelIterationRequest":{ + "type":"structure", + "required":[ + "FlywheelArn", + "FlywheelIterationId" + ], + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

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

" + } + } + }, + "DescribeFlywheelIterationResponse":{ + "type":"structure", + "members":{ + "FlywheelIterationProperties":{ + "shape":"FlywheelIterationProperties", + "documentation":"

The configuration properties of a flywheel iteration.

" + } + } + }, + "DescribeFlywheelRequest":{ + "type":"structure", + "required":["FlywheelArn"], + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel.

" + } + } + }, + "DescribeFlywheelResponse":{ + "type":"structure", + "members":{ + "FlywheelProperties":{ + "shape":"FlywheelProperties", + "documentation":"

The flywheel properties.

" + } + } + }, "DescribeKeyPhrasesDetectionJobRequest":{ "type":"structure", "required":["JobId"], "members":{ "JobId":{ "shape":"JobId", - "documentation":"

The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.

" + "documentation":"

The identifier that Amazon Comprehend generated for the job. The StartKeyPhrasesDetectionJob operation returns this identifier in its response.

" } } }, @@ -2341,7 +2976,7 @@ "members":{ "JobId":{ "shape":"JobId", - "documentation":"

The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.

" + "documentation":"

The identifier that Amazon Comprehend generated for the job. The StartTargetedSentimentDetectionJob operation returns this identifier in its response.

" } } }, @@ -2373,6 +3008,11 @@ } } }, + "Description":{ + "type":"string", + "max":2048, + "pattern":"^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$" + }, "DetectDominantLanguageRequest":{ "type":"structure", "required":["Text"], @@ -2388,7 +3028,7 @@ "members":{ "Languages":{ "shape":"ListOfDominantLanguages", - "documentation":"

The languages that Amazon Comprehend detected in the input text. For each language, the response returns the RFC 5646 language code and the level of confidence that Amazon Comprehend has in the accuracy of its inference. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site.

" + "documentation":"

Array of languages that Amazon Comprehend detected in the input text. The array is sorted in descending order of the score (the dominant language is always the first element in the array).

For each language, the response returns the RFC 5646 language code and the level of confidence that Amazon Comprehend has in the accuracy of its inference. For more information about RFC 5646, see Tags for Identifying Languages on the IETF Tools web site.

" } }, "sensitive":true @@ -2506,7 +3146,7 @@ "members":{ "Text":{ "shape":"CustomerInputString", - "documentation":"

A UTF-8 text string. The maximum string size is 5 KB.

Amazon Comprehend performs real-time sentiment analysis on the first 500 characters of the input text and ignores any additional text in the input.

" + "documentation":"

A UTF-8 text string. The maximum string size is 5 KB.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -2600,6 +3240,21 @@ }, "documentation":"

Specifies the class that categorizes the document being analyzed

" }, + "DocumentClassificationConfig":{ + "type":"structure", + "required":["Mode"], + "members":{ + "Mode":{ + "shape":"DocumentClassifierMode", + "documentation":"

Classification mode indicates whether the documents are MULTI_CLASS or MULTI_LABEL.

" + }, + "Labels":{ + "shape":"LabelsList", + "documentation":"

One or more labels to associate with the custom classifier.

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

Configuration required for a custom classification model.

" + }, "DocumentClassificationJobFilter":{ "type":"structure", "members":{ @@ -2631,7 +3286,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the document classification job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:document-classification-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:document-classification-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the document classification job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:document-classification-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:document-classification-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -2667,15 +3322,19 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", "documentation":"

Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your document classification job. For more information, see Amazon VPC.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel

" } }, "documentation":"

Provides information about a document classification job.

" @@ -2725,7 +3384,7 @@ "documentation":"

Filters the list of classifiers based on the time that the classifier was submitted for processing. Returns only classifiers submitted after the specified time. Classifiers are returned in descending order, newest to oldest.

" } }, - "documentation":"

Provides information for filtering a list of document classifiers. You can only specify one filtering parameter in a request. For more information, see the operation.

" + "documentation":"

Provides information for filtering a list of document classifiers. You can only specify one filtering parameter in a request. For more information, see the ListDocumentClassifiers operation.

" }, "DocumentClassifierInputDataConfig":{ "type":"structure", @@ -2736,11 +3395,11 @@ }, "S3Uri":{ "shape":"S3Uri", - "documentation":"

The Amazon S3 URI for the input data. The S3 bucket must be in the same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of input files.

For example, if you use the URI S3://bucketName/prefix, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.

This parameter is required if you set DataFormat to COMPREHEND_CSV.

" + "documentation":"

The Amazon S3 URI for the input data. The S3 bucket must be in the same Region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of input files.

For example, if you use the URI S3://bucketName/prefix, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.

This parameter is required if you set DataFormat to COMPREHEND_CSV.

" }, "TestS3Uri":{ "shape":"S3Uri", - "documentation":"

This specifies the Amazon S3 location where the test annotations for an entity recognizer are located. The URI must be in the same AWS Region as the API endpoint that you are calling.

" + "documentation":"

This specifies the Amazon S3 location where the test annotations for an entity recognizer are located. The URI must be in the same Amazon Web Services Region as the API endpoint that you are calling.

" }, "LabelDelimiter":{ "shape":"LabelDelimiter", @@ -2765,11 +3424,15 @@ "members":{ "S3Uri":{ "shape":"S3Uri", - "documentation":"

When you use the OutputDataConfig object while creating a custom classifier, you specify the Amazon S3 location where you want to write the confusion matrix. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of this output file.

When the custom classifier job is finished, the service creates the output file in a directory specific to the job. The S3Uri field contains the location of the output file, called output.tar.gz. It is a compressed archive that contains the confusion matrix.

" + "documentation":"

When you use the OutputDataConfig object while creating a custom classifier, you specify the Amazon S3 location where you want to write the confusion matrix. The URI must be in the same Region as the API endpoint that you are calling. The location is used as the prefix for the actual location of this output file.

When the custom classifier job is finished, the service creates the output file in a directory specific to the job. The S3Uri field contains the location of the output file, called output.tar.gz. It is a compressed archive that contains the confusion matrix.

" }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS Key Alias: \"alias/ExampleAlias\"

  • ARN of a KMS Key Alias: \"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS Key Alias: \"alias/ExampleAlias\"

  • ARN of a KMS Key Alias: \"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias\"

" + }, + "FlywheelStatsS3Prefix":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 prefix for the data lake location of the flywheel statistics.

" } }, "documentation":"

Provides output results configuration parameters for custom classifier jobs.

" @@ -2823,11 +3486,11 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -2839,7 +3502,7 @@ }, "ModelKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VersionName":{ "shape":"VersionName", @@ -2847,7 +3510,11 @@ }, "SourceModelArn":{ "shape":"DocumentClassifierArn", - "documentation":"

The Amazon Resource Name (ARN) of the source model. This model was imported from a different AWS account to create the document classifier model in your AWS account.

" + "documentation":"

The Amazon Resource Name (ARN) of the source model. This model was imported from a different Amazon Web Services account to create the document classifier model in your Amazon Web Services account.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel

" } }, "documentation":"

Provides information about a document classifier.

" @@ -3030,7 +3697,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the dominant language detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:dominant-language-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the dominant language detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:dominant-language-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -3062,11 +3729,11 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -3143,11 +3810,15 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS identity and Access Management (IAM) role that grants Amazon Comprehend read access to trained custom models encrypted with a customer managed key (ModelKmsKeyId).

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to trained custom models encrypted with a customer managed key (ModelKmsKeyId).

" }, "DesiredDataAccessRoleArn":{ "shape":"IamRoleArn", "documentation":"

Data access role ARN to use in case the new model is encrypted with a customer KMS key.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel

" } }, "documentation":"

Specifies information about the specified endpoint. For information about endpoints, see Managing endpoints.

" @@ -3197,7 +3868,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the entities detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the entities detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -3237,15 +3908,19 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", "documentation":"

Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your entity detection job. For more information, see Amazon VPC.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Name (ARN) of the flywheel associated with this job.

" } }, "documentation":"

Provides information about an entities detection job.

" @@ -3298,17 +3973,28 @@ }, "documentation":"

Specifies one of the label or labels that categorize the personally identifiable information (PII) entity being analyzed.

" }, + "EntityRecognitionConfig":{ + "type":"structure", + "required":["EntityTypes"], + "members":{ + "EntityTypes":{ + "shape":"EntityTypesList", + "documentation":"

Up to 25 entity types that the model is trained to recognize.

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

Configuration required for an entity recognition model.

" + }, "EntityRecognizerAnnotations":{ "type":"structure", "required":["S3Uri"], "members":{ "S3Uri":{ "shape":"S3Uri", - "documentation":"

Specifies the Amazon S3 location where the annotations for an entity recognizer are located. The URI must be in the same region as the API endpoint that you are calling.

" + "documentation":"

Specifies the Amazon S3 location where the annotations for an entity recognizer are located. The URI must be in the same Region as the API endpoint that you are calling.

" }, "TestS3Uri":{ "shape":"S3Uri", - "documentation":"

Specifies the Amazon S3 location where the test annotations for an entity recognizer are located. The URI must be in the same region as the API endpoint that you are calling.

" + "documentation":"

Specifies the Amazon S3 location where the test annotations for an entity recognizer are located. The URI must be in the same Region as the API endpoint that you are calling.

" } }, "documentation":"

Describes the annotations associated with a entity recognizer.

" @@ -3335,11 +4021,11 @@ "members":{ "S3Uri":{ "shape":"S3Uri", - "documentation":"

Specifies the Amazon S3 location where the training documents for an entity recognizer are located. The URI must be in the same region as the API endpoint that you are calling.

" + "documentation":"

Specifies the Amazon S3 location where the training documents for an entity recognizer are located. The URI must be in the same Region as the API endpoint that you are calling.

" }, "TestS3Uri":{ "shape":"S3Uri", - "documentation":"

Specifies the Amazon S3 location where the test documents for an entity recognizer are located. The URI must be in the same AWS Region as the API endpoint that you are calling.

" + "documentation":"

Specifies the Amazon S3 location where the test documents for an entity recognizer are located. The URI must be in the same Amazon Web Services Region as the API endpoint that you are calling.

" }, "InputFormat":{ "shape":"InputFormat", @@ -3359,10 +4045,10 @@ "members":{ "S3Uri":{ "shape":"S3Uri", - "documentation":"

Specifies the Amazon S3 location where the entity list is located. The URI must be in the same region as the API endpoint that you are calling.

" + "documentation":"

Specifies the Amazon S3 location where the entity list is located. The URI must be in the same Region as the API endpoint that you are calling.

" } }, - "documentation":"

Describes the entity recognizer submitted with an entity recognizer.

" + "documentation":"

Describes the entity list submitted with an entity recognizer.

" }, "EntityRecognizerEvaluationMetrics":{ "type":"structure", @@ -3402,7 +4088,7 @@ "documentation":"

Filters the list of entities based on the time that the list was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in ascending order, oldest to newest.

" } }, - "documentation":"

Provides information for filtering a list of entity recognizers. You can only specify one filtering parameter in a request. For more information, see the operation./>

" + "documentation":"

Provides information for filtering a list of entity recognizers. You can only specify one filtering parameter in a request. For more information, see the ListEntityRecognizers operation./>

" }, "EntityRecognizerInputDataConfig":{ "type":"structure", @@ -3480,6 +4166,16 @@ }, "documentation":"

Individual item from the list of entity types in the metadata of an entity recognizer.

" }, + "EntityRecognizerOutputDataConfig":{ + "type":"structure", + "members":{ + "FlywheelStatsS3Prefix":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 prefix for the data lake location of the flywheel statistics.

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

Output data configuration.

" + }, "EntityRecognizerProperties":{ "type":"structure", "members":{ @@ -3525,11 +4221,11 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -3537,7 +4233,7 @@ }, "ModelKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VersionName":{ "shape":"VersionName", @@ -3545,7 +4241,15 @@ }, "SourceModelArn":{ "shape":"EntityRecognizerArn", - "documentation":"

The Amazon Resource Name (ARN) of the source model. This model was imported from a different AWS account to create the entity recognizer model in your AWS account.

" + "documentation":"

The Amazon Resource Name (ARN) of the source model. This model was imported from a different Amazon Web Services account to create the entity recognizer model in your Amazon Web Services account.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel

" + }, + "OutputDataConfig":{ + "shape":"EntityRecognizerOutputDataConfig", + "documentation":"

Output data configuration.

" } }, "documentation":"

Describes information about an entity recognizer.

" @@ -3643,118 +4347,354 @@ "shape":"Integer", "documentation":"

Page number where the error occurred.

" }, - "ErrorCode":{ - "shape":"PageBasedErrorCode", - "documentation":"

Error code for the cause of the error.

" + "ErrorCode":{ + "shape":"PageBasedErrorCode", + "documentation":"

Error code for the cause of the error.

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

Text message explaining the reason for the error.

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

Text extraction encountered one or more page-level errors in the input document.

The ErrorCode contains one of the following values:

  • TEXTRACT_BAD_PAGE - Amazon Textract cannot read the page. For more information about page limits in Amazon Textract, see Page Quotas in Amazon Textract.

  • TEXTRACT_PROVISIONED_THROUGHPUT_EXCEEDED - The number of requests exceeded your throughput limit. For more information about throughput quotas in Amazon Textract, see Default quotas in Amazon Textract.

  • PAGE_CHARACTERS_EXCEEDED - Too many text characters on the page (10,000 characters maximum).

  • PAGE_SIZE_EXCEEDED - The maximum page size is 10 MB.

  • INTERNAL_SERVER_ERROR - The request encountered a service issue. Try the API request again.

" + }, + "EventTypeString":{ + "type":"string", + "max":40, + "min":1, + "pattern":"[A-Z_]*" + }, + "EventsDetectionJobFilter":{ + "type":"structure", + "members":{ + "JobName":{ + "shape":"JobName", + "documentation":"

Filters on the name of the events detection job.

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

Filters the list of jobs based on job status. Returns only jobs with the specified status.

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

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.

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

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.

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

Provides information for filtering a list of event detection jobs.

" + }, + "EventsDetectionJobProperties":{ + "type":"structure", + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

The identifier assigned to the events detection job.

" + }, + "JobArn":{ + "shape":"ComprehendArn", + "documentation":"

The Amazon Resource Name (ARN) of the events detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:events-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:events-detection-job/1234abcd12ab34cd56ef1234567890ab

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

The name you assigned the events detection job.

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

The current status of the events detection job.

" + }, + "Message":{ + "shape":"AnyLengthString", + "documentation":"

A description of the status of the events detection job.

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

The time that the events detection job was submitted for processing.

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

The time that the events detection job completed.

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

The input data configuration that you supplied when you created the events detection job.

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

The output data configuration that you supplied when you created the events detection job.

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

The language code of the input documents.

" + }, + "DataAccessRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

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

The types of events that are detected by the job.

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

Provides information about an events detection job.

" + }, + "EventsDetectionJobPropertiesList":{ + "type":"list", + "member":{"shape":"EventsDetectionJobProperties"} + }, + "ExtractedCharactersListItem":{ + "type":"structure", + "members":{ + "Page":{ + "shape":"Integer", + "documentation":"

Page number.

" + }, + "Count":{ + "shape":"Integer", + "documentation":"

Number of characters extracted from each page.

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

Array of the number of characters extracted from each page.

" + }, + "Float":{"type":"float"}, + "FlywheelFilter":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"FlywheelStatus", + "documentation":"

Filter the flywheels based on the flywheel status.

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

Filter the flywheels to include flywheels created after the specified time.

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

Filter the flywheels to include flywheels created before the specified time.

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

Filter the flywheels based on creation time or flywheel status.

" + }, + "FlywheelIterationFilter":{ + "type":"structure", + "members":{ + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Filter the flywheel iterations to include iterations created after the specified time.

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

Filter the flywheel iterations to include iterations created before the specified time.

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

Filter the flywheel iterations based on creation time.

" + }, + "FlywheelIterationId":{ + "type":"string", + "max":63, + "pattern":"[0-9]{8}T[0-9]{6}Z" + }, + "FlywheelIterationProperties":{ + "type":"structure", + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

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

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

The creation start time of the flywheel iteration.

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

The completion time of this flywheel iteration.

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

The status of the flywheel iteration.

" + }, + "Message":{ + "shape":"AnyLengthString", + "documentation":"

A description of the status of the flywheel iteration.

" + }, + "EvaluatedModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

The ARN of the evaluated model associated with this flywheel iteration.

" + }, + "EvaluatedModelMetrics":{"shape":"FlywheelModelEvaluationMetrics"}, + "TrainedModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

The ARN of the trained model associated with this flywheel iteration.

" + }, + "TrainedModelMetrics":{ + "shape":"FlywheelModelEvaluationMetrics", + "documentation":"

The metrics associated with the trained model.

" + }, + "EvaluationManifestS3Prefix":{ + "shape":"S3Uri", + "documentation":"

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

The configuration properties of a flywheel iteration.

" + }, + "FlywheelIterationPropertiesList":{ + "type":"list", + "member":{"shape":"FlywheelIterationProperties"} + }, + "FlywheelIterationStatus":{ + "type":"string", + "enum":[ + "TRAINING", + "EVALUATING", + "COMPLETED", + "FAILED", + "STOP_REQUESTED", + "STOPPED" + ] + }, + "FlywheelModelEvaluationMetrics":{ + "type":"structure", + "members":{ + "AverageF1Score":{ + "shape":"Double", + "documentation":"

The average F1 score from the evaluation metrics.

" + }, + "AveragePrecision":{ + "shape":"Double", + "documentation":"

Average precision metric for the model.

" + }, + "AverageRecall":{ + "shape":"Double", + "documentation":"

Average recall metric for the model.

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

Text message explaining the reason for the error.

" + "AverageAccuracy":{ + "shape":"Double", + "documentation":"

Average accuracy metric for the model.

" } }, - "documentation":"

Text extraction encountered one or more page-level errors in the input document.

The ErrorCode contains one of the following values:

  • TEXTRACT_BAD_PAGE - Amazon Textract cannot read the page. For more information about page limits in Amazon Textract, see Page Quotas in Amazon Textract.

  • TEXTRACT_PROVISIONED_THROUGHPUT_EXCEEDED - The number of requests exceeded your throughput limit. For more information about throughput quotas in Amazon Textract, see Default quotas in Amazon Textract.

  • PAGE_CHARACTERS_EXCEEDED - Too many text characters on the page (10,000 characters maximum).

  • PAGE_SIZE_EXCEEDED - The maximum page size is 10 MB.

  • INTERNAL_SERVER_ERROR - The request encountered a service issue. Try the API request again.

" - }, - "EventTypeString":{ - "type":"string", - "max":40, - "min":1, - "pattern":"[A-Z_]*" + "documentation":"

The evaluation metrics associated with the evaluated model.

" }, - "EventsDetectionJobFilter":{ + "FlywheelProperties":{ "type":"structure", "members":{ - "JobName":{ - "shape":"JobName", - "documentation":"

Filters on the name of the events detection job.

" + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel.

" }, - "JobStatus":{ - "shape":"JobStatus", - "documentation":"

Filters the list of jobs based on job status. Returns only jobs with the specified status.

" + "ActiveModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

The Amazon Resource Number (ARN) of the active model version.

" }, - "SubmitTimeBefore":{ + "DataAccessRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend permission to access the flywheel data.

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

Configuration about the custom classifier associated with the flywheel.

" + }, + "DataLakeS3Uri":{ + "shape":"S3Uri", + "documentation":"

Amazon S3 URI of the data lake location.

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

Data security configuration.

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

The status of the flywheel.

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

Model type of the flywheel's model.

" + }, + "Message":{ + "shape":"AnyLengthString", + "documentation":"

A description of the status of the flywheel.

" + }, + "CreationTime":{ "shape":"Timestamp", - "documentation":"

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.

" + "documentation":"

Creation time of the flywheel.

" }, - "SubmitTimeAfter":{ + "LastModifiedTime":{ "shape":"Timestamp", - "documentation":"

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.

" + "documentation":"

Last modified time for the flywheel.

" + }, + "LatestFlywheelIteration":{ + "shape":"FlywheelIterationId", + "documentation":"

The most recent flywheel iteration.

" } }, - "documentation":"

Provides information for filtering a list of event detection jobs.

" + "documentation":"

The flywheel properties.

" }, - "EventsDetectionJobProperties":{ + "FlywheelS3Uri":{ + "type":"string", + "max":512, + "pattern":"s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?" + }, + "FlywheelStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "FAILED" + ] + }, + "FlywheelSummary":{ "type":"structure", "members":{ - "JobId":{ - "shape":"JobId", - "documentation":"

The identifier assigned to the events detection job.

" + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel

" }, - "JobArn":{ - "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the events detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:events-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:events-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "ActiveModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

ARN of the active model version for the flywheel.

" }, - "JobName":{ - "shape":"JobName", - "documentation":"

The name you assigned the events detection job.

" + "DataLakeS3Uri":{ + "shape":"S3Uri", + "documentation":"

Amazon S3 URI of the data lake location.

" }, - "JobStatus":{ - "shape":"JobStatus", - "documentation":"

The current status of the events detection job.

" + "Status":{ + "shape":"FlywheelStatus", + "documentation":"

The status of the flywheel.

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

Model type of the flywheel's model.

" }, "Message":{ "shape":"AnyLengthString", - "documentation":"

A description of the status of the events detection job.

" + "documentation":"

A description of the status of the flywheel.

" }, - "SubmitTime":{ + "CreationTime":{ "shape":"Timestamp", - "documentation":"

The time that the events detection job was submitted for processing.

" + "documentation":"

Creation time of the flywheel.

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

The time that the events detection job completed.

" - }, - "InputDataConfig":{ - "shape":"InputDataConfig", - "documentation":"

The input data configuration that you supplied when you created the events detection job.

" + "documentation":"

Last modified time for the flywheel.

" }, - "OutputDataConfig":{ - "shape":"OutputDataConfig", - "documentation":"

The output data configuration that you supplied when you created the events detection job.

" - }, - "LanguageCode":{ - "shape":"LanguageCode", - "documentation":"

The language code of the input documents.

" - }, - "DataAccessRoleArn":{ - "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identify and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.

" - }, - "TargetEventTypes":{ - "shape":"TargetEventTypes", - "documentation":"

The types of events that are detected by the job.

" + "LatestFlywheelIteration":{ + "shape":"FlywheelIterationId", + "documentation":"

The most recent flywheel iteration.

" } }, - "documentation":"

Provides information about an events detection job.

" + "documentation":"

Flywheel summary information.

" }, - "EventsDetectionJobPropertiesList":{ + "FlywheelSummaryList":{ "type":"list", - "member":{"shape":"EventsDetectionJobProperties"} - }, - "ExtractedCharactersListItem":{ - "type":"structure", - "members":{ - "Page":{ - "shape":"Integer", - "documentation":"

Page number.

" - }, - "Count":{ - "shape":"Integer", - "documentation":"

Number of characters extracted from each page.

" - } - }, - "documentation":"

Array of the number of characters extracted from each page.

" + "member":{"shape":"FlywheelSummary"} }, - "Float":{"type":"float"}, "Geometry":{ "type":"structure", "members":{ @@ -3789,19 +4729,19 @@ }, "VersionName":{ "shape":"VersionName", - "documentation":"

The version name given to the custom model that is created by this import. Version names can have a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The version name must be unique among all models with the same classifier name in the account/AWS Region.

" + "documentation":"

The version name given to the custom model that is created by this import. Version names can have a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The version name must be unique among all models with the same classifier name in the account/Region.

" }, "ModelKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that allows Amazon Comprehend to use Amazon Key Management Service (KMS) to encrypt or decrypt the custom model.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend permission to use Amazon Key Management Service (KMS) to encrypt or decrypt the custom model.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the custom model that is created by this import. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the custom model that is created by this import. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -3824,7 +4764,7 @@ "members":{ "S3Uri":{ "shape":"S3Uri", - "documentation":"

The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.

For example, if you use the URI S3://bucketName/prefix, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.

" + "documentation":"

The Amazon S3 URI for the input data. The URI must be in same Region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.

For example, if you use the URI S3://bucketName/prefix, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.

" }, "InputFormat":{ "shape":"InputFormat", @@ -3979,7 +4919,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the key phrases detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:key-phrases-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the key phrases detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:key-phrases-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -4015,11 +4955,11 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -4051,6 +4991,16 @@ "min":1, "pattern":"^[ ~!@#$%^*\\-_+=|\\\\:;\\t>?/]$" }, + "LabelListItem":{ + "type":"string", + "max":5000, + "pattern":"^\\P{C}*$" + }, + "LabelsList":{ + "type":"list", + "member":{"shape":"LabelListItem"}, + "max":1000 + }, "LanguageCode":{ "type":"string", "enum":[ @@ -4068,6 +5018,40 @@ "zh-TW" ] }, + "ListDatasetsRequest":{ + "type":"structure", + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel.

" + }, + "Filter":{ + "shape":"DatasetFilter", + "documentation":"

Filters the datasets to be returned in the response.

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

Identifies the next page of results to return.

" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "documentation":"

Maximum number of results to return in a response. The default is 100.

" + } + } + }, + "ListDatasetsResponse":{ + "type":"structure", + "members":{ + "DatasetPropertiesList":{ + "shape":"DatasetPropertiesList", + "documentation":"

The dataset properties list.

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

Identifies the next page of results to return.

" + } + } + }, "ListDocumentClassificationJobsRequest":{ "type":"structure", "members":{ @@ -4266,7 +5250,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The list entity recognizer summaries.

" + "documentation":"

Identifies the next page of results to return.

" } } }, @@ -4330,6 +5314,71 @@ } } }, + "ListFlywheelIterationHistoryRequest":{ + "type":"structure", + "required":["FlywheelArn"], + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The ARN of the flywheel.

" + }, + "Filter":{ + "shape":"FlywheelIterationFilter", + "documentation":"

Filter the flywheel iteration history based on creation time.

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

Next token

" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "documentation":"

Maximum number of iteration history results to return

" + } + } + }, + "ListFlywheelIterationHistoryResponse":{ + "type":"structure", + "members":{ + "FlywheelIterationPropertiesList":{ + "shape":"FlywheelIterationPropertiesList", + "documentation":"

List of flywheel iteration properties

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

Next token

" + } + } + }, + "ListFlywheelsRequest":{ + "type":"structure", + "members":{ + "Filter":{ + "shape":"FlywheelFilter", + "documentation":"

Filters the flywheels that are returned. You can filter flywheels on their status, or the date and time that they were submitted. You can only set one filter at a time.

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

Identifies the next page of results to return.

" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "documentation":"

Maximum number of results to return in a response. The default is 100.

" + } + } + }, + "ListFlywheelsResponse":{ + "type":"structure", + "members":{ + "FlywheelSummaryList":{ + "shape":"FlywheelSummaryList", + "documentation":"

A list of flywheel properties retrieved by the service in response to the request.

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

Identifies the next page of results to return.

" + } + } + }, "ListKeyPhrasesDetectionJobsRequest":{ "type":"structure", "members":{ @@ -4640,9 +5689,18 @@ "STOP_REQUESTED", "STOPPED", "IN_ERROR", - "TRAINED" + "TRAINED", + "TRAINED_WITH_WARNING" + ] + }, + "ModelType":{ + "type":"string", + "enum":[ + "DOCUMENT_CLASSIFIER", + "ENTITY_RECOGNIZER" ] }, + "NumberOfDocuments":{"type":"long"}, "NumberOfTopicsInteger":{ "type":"integer", "max":100, @@ -4654,11 +5712,11 @@ "members":{ "S3Uri":{ "shape":"S3Uri", - "documentation":"

When you use the OutputDataConfig object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file.

When the topic detection job is finished, the service creates an output file in a directory specific to the job. The S3Uri field contains the location of the output file, called output.tar.gz. It is a compressed archive that contains the ouput of the operation.

For a PII entity detection job, the output file is plain text, not a compressed archive. The output file name is the same as the input file, with .out appended at the end.

" + "documentation":"

When you use the OutputDataConfig object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same Region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file.

When the topic detection job is finished, the service creates an output file in a directory specific to the job. The S3Uri field contains the location of the output file, called output.tar.gz. It is a compressed archive that contains the ouput of the operation.

For a PII entity detection job, the output file is plain text, not a compressed archive. The output file name is the same as the input file, with .out appended at the end.

" }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS Key Alias: \"alias/ExampleAlias\"

  • ARN of a KMS Key Alias: \"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS Key Alias: \"alias/ExampleAlias\"

  • ARN of a KMS Key Alias: \"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias\"

" } }, "documentation":"

Provides configuration parameters for the output of inference jobs.

" @@ -4741,7 +5799,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the PII entities detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:pii-entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the PII entities detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:pii-entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -4781,7 +5839,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "Mode":{ "shape":"PiiEntitiesDetectionMode", @@ -4882,7 +5940,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job.

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job.

" } }, "documentation":"

Provides configuration parameters for the output of PII entity detection jobs.

" @@ -5066,7 +6124,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -5102,11 +6160,11 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -5160,7 +6218,6 @@ "StartDocumentClassificationJobRequest":{ "type":"structure", "required":[ - "DocumentClassifierArn", "InputDataConfig", "OutputDataConfig", "DataAccessRoleArn" @@ -5184,7 +6241,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "ClientRequestToken":{ "shape":"ClientRequestTokenString", @@ -5193,7 +6250,7 @@ }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -5201,7 +6258,11 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the document classification job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the document classification job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel associated with the model to use.

" } } }, @@ -5210,15 +6271,19 @@ "members":{ "JobId":{ "shape":"JobId", - "documentation":"

The identifier generated for the job. To get the status of the job, use this identifier with the operation.

" + "documentation":"

The identifier generated for the job. To get the status of the job, use this identifier with the DescribeDocumentClassificationJob operation.

" }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the document classification job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:document-classification-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:document-classification-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the document classification job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:document-classification-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:document-classification-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", - "documentation":"

The status of the job:

  • SUBMITTED - The job has been received and queued for processing.

  • IN_PROGRESS - Amazon Comprehend is processing the job.

  • COMPLETED - The job was successfully completed and the output is available.

  • FAILED - The job did not complete. For details, use the operation.

  • STOP_REQUESTED - Amazon Comprehend has received a stop request for the job and is processing the request.

  • STOPPED - The job was successfully stopped without completing.

" + "documentation":"

The status of the job:

  • SUBMITTED - The job has been received and queued for processing.

  • IN_PROGRESS - Amazon Comprehend is processing the job.

  • COMPLETED - The job was successfully completed and the output is available.

  • FAILED - The job did not complete. For details, use the DescribeDocumentClassificationJob operation.

  • STOP_REQUESTED - Amazon Comprehend has received a stop request for the job and is processing the request.

  • STOPPED - The job was successfully stopped without completing.

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

The ARN of the custom classification model.

" } } }, @@ -5240,7 +6305,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data. For more information, see Role-based permissions.

" }, "JobName":{ "shape":"JobName", @@ -5253,7 +6318,7 @@ }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -5261,7 +6326,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the dominant language detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the dominant language detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -5274,7 +6339,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the dominant language detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:dominant-language-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the dominant language detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:dominant-language-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:dominant-language-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", @@ -5301,7 +6366,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data. For more information, see Role-based permissions.

" }, "JobName":{ "shape":"JobName", @@ -5322,7 +6387,7 @@ }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -5330,7 +6395,11 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the entities detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the entities detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel associated with the model to use.

" } } }, @@ -5343,11 +6412,15 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the entities detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the entities detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", "documentation":"

The status of the job.

  • SUBMITTED - The job has been received and is queued for processing.

  • IN_PROGRESS - Amazon Comprehend is processing the job.

  • COMPLETED - The job was successfully completed and the output is available.

  • FAILED - The job did not complete. To get details, use the operation.

  • STOP_REQUESTED - Amazon Comprehend has received a stop request for the job and is processing the request.

  • STOPPED - The job was successfully stopped without completing.

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

The ARN of the custom entity recognition model.

" } } }, @@ -5371,7 +6444,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "JobName":{ "shape":"JobName", @@ -5392,7 +6465,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the events detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the events detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -5405,7 +6478,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the events detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:events-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:events-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the events detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:events-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:events-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", @@ -5413,6 +6486,33 @@ } } }, + "StartFlywheelIterationRequest":{ + "type":"structure", + "required":["FlywheelArn"], + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The ARN of the flywheel.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestTokenString", + "documentation":"

A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.

" + } + } + }, + "StartFlywheelIterationResponse":{ + "type":"structure", + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

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

" + } + } + }, "StartKeyPhrasesDetectionJobRequest":{ "type":"structure", "required":[ @@ -5432,7 +6532,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data. For more information, see Role-based permissions.

" }, "JobName":{ "shape":"JobName", @@ -5449,7 +6549,7 @@ }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -5457,7 +6557,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the key phrases detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the key phrases detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -5470,7 +6570,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the key phrase detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:key-phrases-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the key phrase detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:key-phrases-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:key-phrases-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", @@ -5506,7 +6606,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "JobName":{ "shape":"JobName", @@ -5523,7 +6623,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the PII entities detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the PII entities detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -5536,7 +6636,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the PII entity detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:pii-entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the PII entity detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:pii-entities-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", @@ -5563,7 +6663,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data. For more information, see Role-based permissions.

" }, "JobName":{ "shape":"JobName", @@ -5580,7 +6680,7 @@ }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -5588,7 +6688,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the sentiment detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the sentiment detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -5601,7 +6701,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", @@ -5625,7 +6725,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see Role-based permissions.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data. For more information, see Role-based permissions.

" }, "JobName":{ "shape":"JobName", @@ -5647,7 +6747,7 @@ "VpcConfig":{"shape":"VpcConfig"}, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the targeted sentiment detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the targeted sentiment detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -5656,15 +6756,15 @@ "members":{ "JobId":{ "shape":"JobId", - "documentation":"

The identifier generated for the job. To get the status of a job, use this identifier with the operation.

" + "documentation":"

The identifier generated for the job. To get the status of a job, use this identifier with the DescribeTargetedSentimentDetectionJob operation.

" }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the targeted sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:targeted-sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the targeted sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:targeted-sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", - "documentation":"

The status of the job.

  • SUBMITTED - The job has been received and is queued for processing.

  • IN_PROGRESS - Amazon Comprehend is processing the job.

  • COMPLETED - The job was successfully completed and the output is available.

  • FAILED - The job did not complete. To get details, use the operation.

" + "documentation":"

The status of the job.

  • SUBMITTED - The job has been received and is queued for processing.

  • IN_PROGRESS - Amazon Comprehend is processing the job.

  • COMPLETED - The job was successfully completed and the output is available.

  • FAILED - The job did not complete. To get details, use the DescribeTargetedSentimentDetectionJob operation.

" } } }, @@ -5686,7 +6786,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data. For more information, see Role-based permissions.

" }, "JobName":{ "shape":"JobName", @@ -5703,7 +6803,7 @@ }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -5711,7 +6811,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Tags to be associated with the topics detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + "documentation":"

Tags to associate with the topics detection job. A tag is a key-value pair that adds metadata to a resource used by Amazon Comprehend. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" } } }, @@ -5724,7 +6824,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the topics detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:topics-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:document-classification-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the topics detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:topics-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:document-classification-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobStatus":{ "shape":"JobStatus", @@ -6060,7 +7160,7 @@ "documentation":"

Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.

" } }, - "documentation":"

Provides information for filtering a list of dominant language detection jobs. For more information, see the operation.

" + "documentation":"

Provides information for filtering a list of dominant language detection jobs. For more information, see the ListTargetedSentimentDetectionJobs operation.

" }, "TargetedSentimentDetectionJobProperties":{ "type":"structure", @@ -6071,7 +7171,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the targeted sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:targeted-sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the targeted sentiment detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:targeted-sentiment-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:targeted-sentiment-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -6101,11 +7201,11 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your input data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the targeted sentiment detection job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt the data on the storage volume attached to the ML compute instance(s) that process the targeted sentiment detection job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{"shape":"VpcConfig"} }, @@ -6185,6 +7285,25 @@ }, "documentation":"

Information about one mention of an entity. The mention information includes the location of the mention in the text and the sentiment of the mention.

For more information about targeted sentiment, see Targeted sentiment.

" }, + "TaskConfig":{ + "type":"structure", + "required":["LanguageCode"], + "members":{ + "LanguageCode":{ + "shape":"LanguageCode", + "documentation":"

Language code for the language that the model supports.

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

Configuration required for a classification model.

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

Configuration required for an entity recognition model.

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

Configuration about the custom classifier associated with the flywheel.

" + }, "TextSizeLimitExceededException":{ "type":"structure", "members":{ @@ -6249,7 +7368,7 @@ }, "JobArn":{ "shape":"ComprehendArn", - "documentation":"

The Amazon Resource Name (ARN) of the topics detection job. It is a unique, fully qualified identifier for the job. It includes the AWS account, Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:topics-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:topics-detection-job/1234abcd12ab34cd56ef1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the topics detection job. It is a unique, fully qualified identifier for the job. It includes the Amazon Web Services account, Amazon Web Services Region, and the job ID. The format of the ARN is as follows:

arn:<partition>:comprehend:<region>:<account-id>:topics-detection-job/<job-id>

The following is an example job ARN:

arn:aws:comprehend:us-west-2:111122223333:topics-detection-job/1234abcd12ab34cd56ef1234567890ab

" }, "JobName":{ "shape":"JobName", @@ -6285,11 +7404,11 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your job data.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend read access to your job data.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + "documentation":"

ID for the Amazon Web Services Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" }, "VpcConfig":{ "shape":"VpcConfig", @@ -6332,6 +7451,21 @@ "members":{ } }, + "UpdateDataSecurityConfig":{ + "type":"structure", + "members":{ + "ModelKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + }, + "VolumeKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

ID for the KMS key that Amazon Comprehend uses to encrypt the volume.

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

Data security configuration.

" + }, "UpdateEndpointRequest":{ "type":"structure", "required":["EndpointArn"], @@ -6351,12 +7485,51 @@ "DesiredDataAccessRoleArn":{ "shape":"IamRoleArn", "documentation":"

Data access role ARN to use in case the new model is encrypted with a customer CMK.

" + }, + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel

" } } }, "UpdateEndpointResponse":{ "type":"structure", "members":{ + "DesiredModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

The Amazon Resource Number (ARN) of the new model.

" + } + } + }, + "UpdateFlywheelRequest":{ + "type":"structure", + "required":["FlywheelArn"], + "members":{ + "FlywheelArn":{ + "shape":"ComprehendFlywheelArn", + "documentation":"

The Amazon Resource Number (ARN) of the flywheel to update.

" + }, + "ActiveModelArn":{ + "shape":"ComprehendModelArn", + "documentation":"

The Amazon Resource Number (ARN) of the active model version.

" + }, + "DataAccessRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend permission to access the flywheel data.

" + }, + "DataSecurityConfig":{ + "shape":"UpdateDataSecurityConfig", + "documentation":"

Flywheel data security configuration.

" + } + } + }, + "UpdateFlywheelResponse":{ + "type":"structure", + "members":{ + "FlywheelProperties":{ + "shape":"FlywheelProperties", + "documentation":"

The flywheel properties.

" + } } }, "VersionName":{ @@ -6377,11 +7550,11 @@ }, "Subnets":{ "shape":"Subnets", - "documentation":"

The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by \"subnet-\", for instance: \"subnet-04ccf456919e69055\". For more information, see VPCs and Subnets.

" + "documentation":"

The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s Region. This ID number is preceded by \"subnet-\", for instance: \"subnet-04ccf456919e69055\". For more information, see VPCs and Subnets.

" } }, "documentation":"

Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for the job. For more information, see Amazon VPC.

" } }, - "documentation":"

Amazon Comprehend is an AWS service for gaining insight into the content of documents. Use these actions to determine the topics contained in your documents, the topics they discuss, the predominant sentiment expressed in them, the predominant language used, and more.

" + "documentation":"

Amazon Comprehend is an Amazon Web Services service for gaining insight into the content of documents. Use these actions to determine the topics contained in your documents, the topics they discuss, the predominant sentiment expressed in them, the predominant language used, and more.

" } diff --git a/services/comprehendmedical/pom.xml b/services/comprehendmedical/pom.xml index 1dbe8c8c4ae5..fcf2db117292 100644 --- a/services/comprehendmedical/pom.xml +++ b/services/comprehendmedical/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT comprehendmedical AWS Java SDK :: Services :: ComprehendMedical diff --git a/services/computeoptimizer/pom.xml b/services/computeoptimizer/pom.xml index b4e6f1284538..1bbc241cfc1b 100644 --- a/services/computeoptimizer/pom.xml +++ b/services/computeoptimizer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT computeoptimizer AWS Java SDK :: Services :: Compute Optimizer diff --git a/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-rule-set.json index 01211beff6fa..41a58051cf6e 100644 --- a/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://compute-optimizer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://compute-optimizer-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://compute-optimizer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://compute-optimizer.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://compute-optimizer-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://compute-optimizer.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://compute-optimizer.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://compute-optimizer.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-tests.json b/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-tests.json index 6c7aa591e822..9f1af28df9c4 100644 --- a/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/computeoptimizer/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,772 +1,5 @@ { "testCases": [ - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, { "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { @@ -776,584 +9,473 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" + "Region": "ap-northeast-1", + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.me-south-1.amazonaws.com" + "url": "https://compute-optimizer.ap-northeast-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" + "Region": "ap-northeast-2", + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.me-south-1.amazonaws.com" + "url": "https://compute-optimizer.ap-south-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "ap-south-1", + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.sa-east-1.amazonaws.com" + "url": "https://compute-optimizer.ap-southeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" + "Region": "ap-southeast-1", + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.sa-east-1.amazonaws.com" + "url": "https://compute-optimizer.ap-southeast-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ap-southeast-2", + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.ap-east-1.amazonaws.com" + "url": "https://compute-optimizer.ca-central-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ca-central-1", + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-east-1.api.aws" + "url": "https://compute-optimizer.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-east-1.amazonaws.com" + "url": "https://compute-optimizer.eu-north-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "Region": "eu-north-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://compute-optimizer.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.cn-north-1.amazonaws.com.cn" + "url": "https://compute-optimizer.eu-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "eu-west-2", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://compute-optimizer.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.cn-north-1.amazonaws.com.cn" + "url": "https://compute-optimizer.sa-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "sa-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.us-gov-west-1.api.aws" + "url": "https://compute-optimizer.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.us-gov-west-1.amazonaws.com" + "url": "https://compute-optimizer.us-east-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "us-east-2", + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.us-gov-west-1.api.aws" + "url": "https://compute-optimizer.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.us-gov-west-1.amazonaws.com" + "url": "https://compute-optimizer.us-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "us-west-2", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.ap-southeast-1.api.aws" + "url": "https://compute-optimizer-fips.us-east-1.api.aws" } }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "us-east-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.ap-southeast-1.amazonaws.com" + "url": "https://compute-optimizer-fips.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "us-east-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-southeast-1.api.aws" + "url": "https://compute-optimizer.us-east-1.api.aws" } }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "us-east-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-southeast-1.amazonaws.com" + "url": "https://compute-optimizer.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "cn-north-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.ap-southeast-2.amazonaws.com" + "url": "https://compute-optimizer.cn-northwest-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "cn-northwest-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-southeast-2.api.aws" + "url": "https://compute-optimizer-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "cn-north-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-southeast-2.amazonaws.com" + "url": "https://compute-optimizer-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "cn-north-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.ap-southeast-3.api.aws" + "url": "https://compute-optimizer.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "cn-north-1", + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-southeast-3.api.aws" + "url": "https://compute-optimizer-fips.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "us-gov-east-1", + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.ap-southeast-3.amazonaws.com" + "url": "https://compute-optimizer-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "us-gov-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.us-east-1.api.aws" + "url": "https://compute-optimizer.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.us-east-1.amazonaws.com" + "url": "https://compute-optimizer.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.us-east-1.amazonaws.com" + "url": "https://compute-optimizer-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.us-east-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-iso-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.us-east-2.amazonaws.com" + "url": "https://compute-optimizer.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-iso-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://compute-optimizer.us-east-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-isob-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.us-east-2.amazonaws.com" + "url": "https://compute-optimizer-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-isob-east-1", + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://compute-optimizer-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-isob-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://compute-optimizer.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://compute-optimizer.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-isob-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://compute-optimizer.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1362,7 +484,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1373,8 +494,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1385,10 +506,16 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/computeoptimizer/src/main/resources/codegen-resources/service-2.json b/services/computeoptimizer/src/main/resources/codegen-resources/service-2.json index fb8e657c1047..0ccc500ced81 100644 --- a/services/computeoptimizer/src/main/resources/codegen-resources/service-2.json +++ b/services/computeoptimizer/src/main/resources/codegen-resources/service-2.json @@ -1492,7 +1492,8 @@ "EffectiveRecommendationPreferencesInferredWorkloadTypes", "InferredWorkloadTypes", "RecommendationOptionsMigrationEffort", - "EffectiveRecommendationPreferencesExternalMetricsSource" + "EffectiveRecommendationPreferencesExternalMetricsSource", + "InstanceState" ] }, "ExportableInstanceFields":{ @@ -1564,7 +1565,8 @@ "CurrentPerformanceRisk", "RecommendationOptionsSavingsOpportunityPercentage", "RecommendationOptionsEstimatedMonthlySavingsCurrency", - "RecommendationOptionsEstimatedMonthlySavingsValue" + "RecommendationOptionsEstimatedMonthlySavingsValue", + "RootVolume" ] }, "ExportableVolumeFields":{ @@ -2176,7 +2178,7 @@ }, "findingReasonCodes":{ "shape":"InstanceRecommendationFindingReasonCodes", - "documentation":"

The reason for the finding classification of the instance.

Finding reason codes for instances include:

  • CPUOverprovisioned — The instance’s CPU configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the CPUUtilization metric of the current instance during the look-back period.

  • CPUUnderprovisioned — The instance’s CPU configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better CPU performance. This is identified by analyzing the CPUUtilization metric of the current instance during the look-back period.

  • MemoryOverprovisioned — The instance’s memory configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the memory utilization metric of the current instance during the look-back period.

  • MemoryUnderprovisioned — The instance’s memory configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better memory performance. This is identified by analyzing the memory utilization metric of the current instance during the look-back period.

    Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling memory utilization with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute Optimizer analyses the mem_used_percent metric in the CWAgent namespace, or the legacy MemoryUtilization metric in the System/Linux namespace. On Windows instances, Compute Optimizer analyses the Memory % Committed Bytes In Use metric in the CWAgent namespace.

  • EBSThroughputOverprovisioned — The instance’s EBS throughput configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the VolumeReadOps and VolumeWriteOps metrics of EBS volumes attached to the current instance during the look-back period.

  • EBSThroughputUnderprovisioned — The instance’s EBS throughput configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better EBS throughput performance. This is identified by analyzing the VolumeReadOps and VolumeWriteOps metrics of EBS volumes attached to the current instance during the look-back period.

  • EBSIOPSOverprovisioned — The instance’s EBS IOPS configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes metric of EBS volumes attached to the current instance during the look-back period.

  • EBSIOPSUnderprovisioned — The instance’s EBS IOPS configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS performance. This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes metric of EBS volumes attached to the current instance during the look-back period.

  • NetworkBandwidthOverprovisioned — The instance’s network bandwidth configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the NetworkIn and NetworkOut metrics of the current instance during the look-back period.

  • NetworkBandwidthUnderprovisioned — The instance’s network bandwidth configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better network bandwidth performance. This is identified by analyzing the NetworkIn and NetworkOut metrics of the current instance during the look-back period. This finding reason happens when the NetworkIn or NetworkOut performance of an instance is impacted.

  • NetworkPPSOverprovisioned — The instance’s network PPS (packets per second) configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the NetworkPacketsIn and NetworkPacketsIn metrics of the current instance during the look-back period.

  • NetworkPPSUnderprovisioned — The instance’s network PPS (packets per second) configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn and NetworkPacketsIn metrics of the current instance during the look-back period.

  • DiskIOPSOverprovisioned — The instance’s disk IOPS configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the DiskReadOps and DiskWriteOps metrics of the current instance during the look-back period.

  • DiskIOPSUnderprovisioned — The instance’s disk IOPS configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better disk IOPS performance. This is identified by analyzing the DiskReadOps and DiskWriteOps metrics of the current instance during the look-back period.

  • DiskThroughputOverprovisioned — The instance’s disk throughput configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of the current instance during the look-back period.

  • DiskThroughputUnderprovisioned — The instance’s disk throughput configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better disk throughput performance. This is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of the current instance during the look-back period.

For more information about instance metrics, see List the available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For more information about EBS volume metrics, see Amazon CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

The reason for the finding classification of the instance.

Finding reason codes for instances include:

  • CPUOverprovisioned — The instance’s CPU configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the CPUUtilization metric of the current instance during the look-back period.

  • CPUUnderprovisioned — The instance’s CPU configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better CPU performance. This is identified by analyzing the CPUUtilization metric of the current instance during the look-back period.

  • MemoryOverprovisioned — The instance’s memory configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the memory utilization metric of the current instance during the look-back period.

  • MemoryUnderprovisioned — The instance’s memory configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better memory performance. This is identified by analyzing the memory utilization metric of the current instance during the look-back period.

    Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For more information, see Enabling memory utilization with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute Optimizer analyses the mem_used_percent metric in the CWAgent namespace, or the legacy MemoryUtilization metric in the System/Linux namespace. On Windows instances, Compute Optimizer analyses the Memory % Committed Bytes In Use metric in the CWAgent namespace.

  • EBSThroughputOverprovisioned — The instance’s EBS throughput configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes metrics of EBS volumes attached to the current instance during the look-back period.

  • EBSThroughputUnderprovisioned — The instance’s EBS throughput configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better EBS throughput performance. This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes> metrics of EBS volumes attached to the current instance during the look-back period.

  • EBSIOPSOverprovisioned — The instance’s EBS IOPS configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the VolumeReadOps and VolumeWriteOps metric of EBS volumes attached to the current instance during the look-back period.

  • EBSIOPSUnderprovisioned — The instance’s EBS IOPS configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS performance. This is identified by analyzing the VolumeReadOps and VolumeWriteOps metric of EBS volumes attached to the current instance during the look-back period.

  • NetworkBandwidthOverprovisioned — The instance’s network bandwidth configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the NetworkIn and NetworkOut metrics of the current instance during the look-back period.

  • NetworkBandwidthUnderprovisioned — The instance’s network bandwidth configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better network bandwidth performance. This is identified by analyzing the NetworkIn and NetworkOut metrics of the current instance during the look-back period. This finding reason happens when the NetworkIn or NetworkOut performance of an instance is impacted.

  • NetworkPPSOverprovisioned — The instance’s network PPS (packets per second) configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the NetworkPacketsIn and NetworkPacketsIn metrics of the current instance during the look-back period.

  • NetworkPPSUnderprovisioned — The instance’s network PPS (packets per second) configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn and NetworkPacketsIn metrics of the current instance during the look-back period.

  • DiskIOPSOverprovisioned — The instance’s disk IOPS configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the DiskReadOps and DiskWriteOps metrics of the current instance during the look-back period.

  • DiskIOPSUnderprovisioned — The instance’s disk IOPS configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better disk IOPS performance. This is identified by analyzing the DiskReadOps and DiskWriteOps metrics of the current instance during the look-back period.

  • DiskThroughputOverprovisioned — The instance’s disk throughput configuration can be sized down while still meeting the performance requirements of your workload. This is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of the current instance during the look-back period.

  • DiskThroughputUnderprovisioned — The instance’s disk throughput configuration doesn't meet the performance requirements of your workload and there is an alternative instance type that provides better disk throughput performance. This is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of the current instance during the look-back period.

For more information about instance metrics, see List the available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For more information about EBS volume metrics, see Amazon CloudWatch metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide.

" }, "utilizationMetrics":{ "shape":"UtilizationMetrics", @@ -2209,6 +2211,10 @@ "inferredWorkloadTypes":{ "shape":"InferredWorkloadTypes", "documentation":"

The applications that might be running on the instance as inferred by Compute Optimizer.

Compute Optimizer can infer if one of the following applications might be running on the instance:

  • AmazonEmr - Infers that Amazon EMR might be running on the instance.

  • ApacheCassandra - Infers that Apache Cassandra might be running on the instance.

  • ApacheHadoop - Infers that Apache Hadoop might be running on the instance.

  • Memcached - Infers that Memcached might be running on the instance.

  • NGINX - Infers that NGINX might be running on the instance.

  • PostgreSql - Infers that PostgreSQL might be running on the instance.

  • Redis - Infers that Redis might be running on the instance.

  • Kafka - Infers that Kafka might be running on the instance.

" + }, + "instanceState":{ + "shape":"InstanceState", + "documentation":"

The state of the instance when the recommendation was generated.

" } }, "documentation":"

Describes an Amazon EC2 instance recommendation.

" @@ -2276,6 +2282,17 @@ "type":"list", "member":{"shape":"InstanceRecommendation"} }, + "InstanceState":{ + "type":"string", + "enum":[ + "pending", + "running", + "shutting-down", + "terminated", + "stopping", + "stopped" + ] + }, "InstanceType":{"type":"string"}, "InternalServerException":{ "type":"structure", @@ -2933,6 +2950,7 @@ "EcsService" ] }, + "RootVolume":{"type":"boolean"}, "S3Destination":{ "type":"structure", "members":{ @@ -3179,6 +3197,10 @@ "volumeBurstThroughput":{ "shape":"VolumeBurstThroughput", "documentation":"

The burst throughput of the volume.

" + }, + "rootVolume":{ + "shape":"RootVolume", + "documentation":"

Contains the image used to boot the instance during launch.

" } }, "documentation":"

Describes the configuration of an Amazon Elastic Block Store (Amazon EBS) volume.

" diff --git a/services/config/pom.xml b/services/config/pom.xml index 0491f103b981..11bb7b28b797 100644 --- a/services/config/pom.xml +++ b/services/config/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT config AWS Java SDK :: Services :: AWS Config diff --git a/services/config/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/config/src/main/resources/codegen-resources/endpoint-rule-set.json index fbf81ba9d6a6..3c1dcac5c67a 100644 --- a/services/config/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/config/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://config.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://config.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://config-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://config-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://config.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://config.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/config/src/main/resources/codegen-resources/endpoint-tests.json b/services/config/src/main/resources/codegen-resources/endpoint-tests.json index ed49672b1a23..792ec6fb1e1a 100644 --- a/services/config/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/config/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1711 +1,584 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://config.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.sa-east-1.amazonaws.com" + "url": "https://config.af-south-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "af-south-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.sa-east-1.api.aws" + "url": "https://config.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.sa-east-1.amazonaws.com" + "url": "https://config.ap-northeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-east-1.api.aws" + "url": "https://config.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-east-1.amazonaws.com" + "url": "https://config.ap-northeast-3.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-east-1.api.aws" + "url": "https://config.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-east-1.amazonaws.com" + "url": "https://config.ap-southeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://config.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.cn-north-1.amazonaws.com.cn" + "url": "https://config.ap-southeast-3.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "ap-southeast-3" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://config.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.cn-north-1.amazonaws.com.cn" + "url": "https://config.eu-central-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.us-gov-west-1.api.aws" + "url": "https://config.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-gov-west-1.amazonaws.com" + "url": "https://config.eu-south-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "eu-south-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-gov-west-1.api.aws" + "url": "https://config.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-gov-west-1.amazonaws.com" + "url": "https://config.eu-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-1.api.aws" + "url": "https://config.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-1.amazonaws.com" + "url": "https://config.me-south-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-1.api.aws" + "url": "https://config.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-1.amazonaws.com" + "url": "https://config.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-2.api.aws" + "url": "https://config-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-2.amazonaws.com" + "url": "https://config.us-east-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-2.api.aws" + "url": "https://config-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-2.amazonaws.com" + "url": "https://config.us-west-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://config-fips.us-west-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://config.us-west-2.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-iso-east-1.c2s.ic.gov" + "url": "https://config-fips.us-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-3.api.aws" + "url": "https://config-fips.us-east-1.api.aws" } }, "params": { "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-3.amazonaws.com" + "url": "https://config.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-3.api.aws" + "url": "https://config.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-3.amazonaws.com" + "url": "https://config.cn-northwest-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-4.api.aws" + "url": "https://config-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.ap-southeast-4.amazonaws.com" + "url": "https://config-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-4.api.aws" + "url": "https://config.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.ap-southeast-4.amazonaws.com" + "url": "https://config.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://config-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.us-east-1.amazonaws.com" + "url": "https://config.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-east-1.api.aws" + "url": "https://config.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-east-1.amazonaws.com" + "url": "https://config.us-gov-west-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://config-fips.us-east-2.api.aws" + "url": "https://config-fips.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://config-fips.us-east-2.amazonaws.com" + "url": "https://config.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-east-2.api.aws" + "url": "https://config.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.us-east-2.amazonaws.com" + "url": "https://config.us-iso-west-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "Region": "us-iso-west-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://config-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://config-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://config.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://config.cn-northwest-1.amazonaws.com.cn" + "url": "https://config.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { @@ -1715,8 +588,8 @@ }, "params": { "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { @@ -1728,8 +601,8 @@ }, "params": { "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { @@ -1739,25 +612,26 @@ }, "params": { "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://config.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1765,7 +639,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -1777,8 +650,8 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1789,10 +662,16 @@ }, "params": { "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/config/src/main/resources/codegen-resources/service-2.json b/services/config/src/main/resources/codegen-resources/service-2.json index 88e3bbe44f5b..64f8b9cca427 100644 --- a/services/config/src/main/resources/codegen-resources/service-2.json +++ b/services/config/src/main/resources/codegen-resources/service-2.json @@ -403,7 +403,7 @@ "errors":[ {"shape":"NoSuchConfigurationRecorderException"} ], - "documentation":"

Returns the current status of the specified configuration recorder. If a configuration recorder is not specified, this action returns the status of all configuration recorders associated with the account.

Currently, you can specify only one configuration recorder per region in your account.

" + "documentation":"

Returns the current status of the specified configuration recorder as well as the status of the last recording event for the recorder. If a configuration recorder is not specified, this action returns the status of all configuration recorders associated with the account.

Currently, you can specify only one configuration recorder per region in your account. For a detailed status of recording events over time, add your Config events to Amazon CloudWatch metrics and use CloudWatch metrics.

" }, "DescribeConfigurationRecorders":{ "name":"DescribeConfigurationRecorders", @@ -890,7 +890,7 @@ "errors":[ {"shape":"ResourceNotFoundException"} ], - "documentation":"

Returns a summary of resource evaluation for the specified resource evaluation ID from the proactive rules that were run. The results indicate which evaluation context was used to evaluate the rules, which resource details were evaluated, the evaluation mode that was run, and whether the resource details comply with the configuration of the proactive rules.

" + "documentation":"

Returns a summary of resource evaluation for the specified resource evaluation ID from the proactive rules that were run. The results indicate which evaluation context was used to evaluate the rules, which resource details were evaluated, the evaluation mode that was run, and whether the resource details comply with the configuration of the proactive rules.

To see additional information about the evaluation result, such as which rule flagged a resource as NON_COMPLIANT, use the GetComplianceDetailsByResource API. For more information, see the Examples section.

" }, "GetStoredQuery":{ "name":"GetStoredQuery", @@ -1009,7 +1009,7 @@ "errors":[ {"shape":"InvalidParameterValueException"} ], - "documentation":"

Authorizes the aggregator account and region to collect data from the source account and region.

" + "documentation":"

Authorizes the aggregator account and region to collect data from the source account and region.

PutAggregationAuthorization is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

" }, "PutConfigRule":{ "name":"PutConfigRule", @@ -1025,7 +1025,7 @@ {"shape":"InsufficientPermissionsException"}, {"shape":"NoAvailableConfigurationRecorderException"} ], - "documentation":"

Adds or updates an Config rule to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

There are two types of rules: Config Custom Rules and Config Managed Rules. You can use PutConfigRule to create both Config custom rules and Config managed rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. If you are adding a new Custom Lambda rule, you first need to create an Lambda function that the rule invokes to evaluate your resources. When you use PutConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. You specify the ARN in the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the SourceIdentifier key.

For any new rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by Config for new rules.

If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

For more information about developing and using Config rules, see Evaluating Amazon Web Services resource Configurations with Config in the Config Developer Guide.

" + "documentation":"

Adds or updates an Config rule to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

There are two types of rules: Config Managed Rules and Config Custom Rules. You can use PutConfigRule to create both Config Managed Rules and Config Custom Rules.

Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the SourceIdentifier key.

Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom rules created with Guard are called Config Custom Policy Rules.

If you are adding a new Config Custom Lambda rule, you first need to create an Lambda function that the rule invokes to evaluate your resources. When you use PutConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. You specify the ARN in the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

For any new Config rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by Config for new rules.

If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

For more information about developing and using Config rules, see Evaluating Resources with Config Rules in the Config Developer Guide.

PutConfigRule is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

" }, "PutConfigurationAggregator":{ "name":"PutConfigurationAggregator", @@ -1043,7 +1043,7 @@ {"shape":"NoAvailableOrganizationException"}, {"shape":"OrganizationAllFeaturesNotEnabledException"} ], - "documentation":"

Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

accountIds that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and then append new ones.

Config should be enabled in source accounts and regions you want to aggregate.

If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to verify whether the caller is a valid delegated administrator.

To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide.

" + "documentation":"

Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

accountIds that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and then append new ones.

Config should be enabled in source accounts and regions you want to aggregate.

If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to verify whether the caller is a valid delegated administrator.

To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide.

PutConfigurationAggregator is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

" }, "PutConfigurationRecorder":{ "name":"PutConfigurationRecorder", @@ -1143,7 +1143,7 @@ {"shape":"OrganizationAllFeaturesNotEnabledException"}, {"shape":"InsufficientPermissionsException"} ], - "documentation":"

Adds or updates an Config rule for your entire organization to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many organization Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can create or update an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. Config verifies the existence of role with GetRole action.

To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegated-administrator for config-multiaccountsetup.amazonaws.com.

There are two types of rules: Config Custom Rules and Config Managed Rules. You can use PutOrganizationConfigRule to create both Config custom rules and Config managed rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. If you are adding a new Custom Lambda rule, you first need to create an Lambda function in the management account or a delegated administrator that the rule invokes to evaluate your resources. You also need to create an IAM role in the managed account that can be assumed by the Lambda function. When you use PutOrganizationConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.

Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the RuleIdentifier key.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

Make sure to specify one of either OrganizationCustomPolicyRuleMetadata for Custom Policy rules, OrganizationCustomRuleMetadata for Custom Lambda rules, or OrganizationManagedRuleMetadata for managed rules.

" + "documentation":"

Adds or updates an Config rule for your entire organization to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many organization Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can create or update an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. Config verifies the existence of role with GetRole action.

To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegated-administrator for config-multiaccountsetup.amazonaws.com.

There are two types of rules: Config Managed Rules and Config Custom Rules. You can use PutOrganizationConfigRule to create both Config Managed Rules and Config Custom Rules.

Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the RuleIdentifier key.

Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom rules created with Guard are called Config Custom Policy Rules.

If you are adding a new Config Custom Lambda rule, you first need to create an Lambda function in the management account or a delegated administrator that the rule invokes to evaluate your resources. You also need to create an IAM role in the managed account that can be assumed by the Lambda function. When you use PutOrganizationConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

Make sure to specify one of either OrganizationCustomPolicyRuleMetadata for Custom Policy rules, OrganizationCustomRuleMetadata for Custom Lambda rules, or OrganizationManagedRuleMetadata for managed rules.

" }, "PutOrganizationConformancePack":{ "name":"PutOrganizationConformancePack", @@ -1191,7 +1191,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InsufficientPermissionsException"} ], - "documentation":"

A remediation exception is when a specific resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specific resource with a specific Config rule.

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

To place an exception on an Amazon Web Services resource, ensure remediation is set as manual remediation.

" + "documentation":"

A remediation exception is when a specified resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specified resource with a specified Config rule.

Config generates a remediation exception when a problem occurs running a remediation action for a specified resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

When placing an exception on an Amazon Web Services resource, it is recommended that remediation is set as manual remediation until the given Config rule for the specified resource evaluates the resource as NON_COMPLIANT. Once the resource has been evaluated as NON_COMPLIANT, you can add remediation exceptions and change the remediation type back from Manual to Auto if you want to use auto-remediation. Otherwise, using auto-remediation before a NON_COMPLIANT evaluation result can delete resources before the exception is applied.

Placing an exception can only be performed on resources that are NON_COMPLIANT. If you use this API for COMPLIANT resources or resources that are NOT_APPLICABLE, a remediation exception will not be generated. For more information on the conditions that initiate the possible Config evaluation results, see Concepts | Config Rules in the Config Developer Guide.

" }, "PutResourceConfig":{ "name":"PutResourceConfig", @@ -1235,7 +1235,7 @@ {"shape":"TooManyTagsException"}, {"shape":"ResourceConcurrentModificationException"} ], - "documentation":"

Saves a new query or updates an existing saved query. The QueryName must be unique for a single Amazon Web Services account and a single Amazon Web Services Region. You can create upto 300 queries in a single Amazon Web Services account and a single Amazon Web Services Region.

" + "documentation":"

Saves a new query or updates an existing saved query. The QueryName must be unique for a single Amazon Web Services account and a single Amazon Web Services Region. You can create upto 300 queries in a single Amazon Web Services account and a single Amazon Web Services Region.

PutStoredQuery is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

" }, "SelectAggregateResourceConfig":{ "name":"SelectAggregateResourceConfig", @@ -1324,7 +1324,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"IdempotentParameterMismatch"} ], - "documentation":"

Runs an on-demand evaluation for the specified resource to determine whether the resource details will comply with configured Config rules. You can also use it for evaluation purposes. Config recommends using an evaluation context. It runs an execution against the resource details with all of the Config rules in your account that match with the specified proactive mode and resource type.

Ensure you have the cloudformation:DescribeType role setup to validate the resource type schema.

" + "documentation":"

Runs an on-demand evaluation for the specified resource to determine whether the resource details will comply with configured Config rules. You can also use it for evaluation purposes. Config recommends using an evaluation context. It runs an execution against the resource details with all of the Config rules in your account that match with the specified proactive mode and resource type.

Ensure you have the cloudformation:DescribeType role setup to validate the resource type schema.

You can find the Resource type schema in \"Amazon Web Services public extensions\" within the CloudFormation registry or with the following CLI commmand: aws cloudformation describe-type --type-name \"AWS::S3::Bucket\" --type RESOURCE.

For more information, see Managing extensions through the CloudFormation registry and Amazon Web Services resource and property types reference in the CloudFormation User Guide.

" }, "StopConfigurationRecorder":{ "name":"StopConfigurationRecorder", @@ -1350,7 +1350,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyTagsException"} ], - "documentation":"

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.

" + "documentation":"

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. If existing tags are specified, however, then their values will be updated. When a resource is deleted, the tags associated with that resource are deleted as well.

" }, "UntagResource":{ "name":"UntagResource", @@ -2104,7 +2104,7 @@ "documentation":"

The modes the Config rule can be evaluated in. The valid values are distinct objects. By default, the value is Detective evaluation mode only.

" } }, - "documentation":"

Config rules evaluate the configuration settings of your Amazon Web Services resources. A rule can run when Config detects a configuration change to an Amazon Web Services resource or at a periodic frequency that you choose (for example, every 24 hours). There are two types of rules: Config Managed Rules and Config Custom Rules. Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. It is invoked by events that are published to it by an event source, which Config invokes when the custom rule is initiated.

For more information about developing and using Config rules, see Evaluating Amazon Web Services resource Configurations with Config in the Config Developer Guide.

You can use the Amazon Web Services CLI and Amazon Web Services SDKs if you want to create a rule that triggers evaluations for your resources when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

" + "documentation":"

Config rules evaluate the configuration settings of your Amazon Web Services resources. A rule can run when Config detects a configuration change to an Amazon Web Services resource or at a periodic frequency that you choose (for example, every 24 hours). There are two types of rules: Config Managed Rules and Config Custom Rules.

Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules.

Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom rules created with Guard are called Config Custom Policy Rules.

For more information about developing and using Config rules, see Evaluating Resource with Config Rules in the Config Developer Guide.

You can use the Amazon Web Services CLI and Amazon Web Services SDKs if you want to create a rule that triggers evaluations for your resources when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

" }, "ConfigRuleComplianceFilters":{ "type":"structure", @@ -2472,22 +2472,22 @@ }, "lastStatus":{ "shape":"RecorderStatus", - "documentation":"

The last (previous) status of the recorder.

" + "documentation":"

The status of the latest recording event processed by the recorder.

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

The error code indicating that the recording failed.

" + "documentation":"

The latest error code from when the recorder last failed.

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

The message indicating that the recording failed due to an error.

" + "documentation":"

The latest error message from when the recorder last failed.

" }, "lastStatusChangeTime":{ "shape":"Date", - "documentation":"

The time when the status was last changed.

" + "documentation":"

The time of the latest change in status of an recording event processed by the recorder.

" } }, - "documentation":"

The current status of the configuration recorder.

" + "documentation":"

The current status of the configuration recorder.

For a detailed status of recording events over time, add your Config events to CloudWatch metrics and use CloudWatch metrics.

" }, "ConfigurationRecorderStatusList":{ "type":"list", @@ -2565,7 +2565,7 @@ }, "ConformancePackComplianceStatus":{ "shape":"ConformancePackComplianceType", - "documentation":"

The status of the conformance pack. The allowed values are COMPLIANT, NON_COMPLIANT and INSUFFICIENT_DATA.

" + "documentation":"

The status of the conformance pack.

" } }, "documentation":"

Summary includes the name and status of the conformance pack.

" @@ -2756,7 +2756,7 @@ }, "ComplianceType":{ "shape":"ConformancePackComplianceType", - "documentation":"

Compliance of the Config rule.

The allowed values are COMPLIANT, NON_COMPLIANT, and INSUFFICIENT_DATA.

" + "documentation":"

Compliance of the Config rule.

" }, "Controls":{ "shape":"ControlsList", @@ -2848,7 +2848,7 @@ "type":"structure", "members":{ }, - "documentation":"

You have specified a template that is invalid or supported.

", + "documentation":"

You have specified a template that is not valid or supported.

", "exception":true }, "ControlsList":{ @@ -3310,7 +3310,7 @@ }, "ComplianceTypes":{ "shape":"ComplianceTypes", - "documentation":"

Filters the results by compliance.

The allowed values are COMPLIANT and NON_COMPLIANT.

" + "documentation":"

Filters the results by compliance.

" }, "NextToken":{ "shape":"String", @@ -3346,7 +3346,7 @@ }, "ComplianceTypes":{ "shape":"ComplianceTypes", - "documentation":"

Filters the results by compliance.

The allowed values are COMPLIANT, NON_COMPLIANT, and INSUFFICIENT_DATA.

" + "documentation":"

Filters the results by compliance.

" }, "Limit":{ "shape":"Limit", @@ -3413,7 +3413,7 @@ "documentation":"

The mode of an evaluation. The valid values are Detective or Proactive.

" } }, - "documentation":"

Returns a filtered list of Detective or Proactive Config rules. By default, if the filter is not defined, this API returns an unfiltered list.

" + "documentation":"

Returns a filtered list of Detective or Proactive Config rules. By default, if the filter is not defined, this API returns an unfiltered list. For more information on Detective or Proactive Config rules, see Evaluation Mode in the Config Developer Guide.

" }, "DescribeConfigRulesRequest":{ "type":"structure", @@ -3428,7 +3428,7 @@ }, "Filters":{ "shape":"DescribeConfigRulesFilters", - "documentation":"

Returns a list of Detecive or Proactive Config rules. By default, this API returns an unfiltered list.

" + "documentation":"

Returns a list of Detective or Proactive Config rules. By default, this API returns an unfiltered list. For more information on Detective or Proactive Config rules, see Evaluation Mode in the Config Developer Guide.

" } }, "documentation":"

" @@ -4493,7 +4493,7 @@ }, "ComplianceTypes":{ "shape":"ComplianceTypes", - "documentation":"

Filters the results by compliance.

The allowed values are COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE.

" + "documentation":"

Filters the results by compliance.

INSUFFICIENT_DATA is a valid ComplianceType that is returned when an Config rule cannot be evaluated. However, INSUFFICIENT_DATA cannot be used as a ComplianceType for filtering results.

" }, "Limit":{ "shape":"Limit", @@ -4533,7 +4533,7 @@ }, "ComplianceTypes":{ "shape":"ComplianceTypes", - "documentation":"

Filters the results by compliance.

The allowed values are COMPLIANT, NON_COMPLIANT, and NOT_APPLICABLE.

" + "documentation":"

Filters the results by compliance.

INSUFFICIENT_DATA is a valid ComplianceType that is returned when an Config rule cannot be evaluated. However, INSUFFICIENT_DATA cannot be used as a ComplianceType for filtering results.

" }, "NextToken":{ "shape":"String", @@ -4983,7 +4983,7 @@ "type":"structure", "members":{ }, - "documentation":"

The specified delivery channel name is invalid.

", + "documentation":"

The specified delivery channel name is not valid.

", "exception":true }, "InvalidExpressionException":{ @@ -5004,28 +5004,28 @@ "type":"structure", "members":{ }, - "documentation":"

The specified next token is invalid. Specify the nextToken string that was returned in the previous response to get the next page of results.

", + "documentation":"

The specified next token is not valid. Specify the nextToken string that was returned in the previous response to get the next page of results.

", "exception":true }, "InvalidParameterValueException":{ "type":"structure", "members":{ }, - "documentation":"

One or more of the specified parameters are invalid. Verify that your parameters are valid and try again.

", + "documentation":"

One or more of the specified parameters are not valid. Verify that your parameters are valid and try again.

", "exception":true }, "InvalidRecordingGroupException":{ "type":"structure", "members":{ }, - "documentation":"

Config throws an exception if the recording group does not contain a valid list of resource types. Invalid values might also be incorrectly formatted.

", + "documentation":"

Config throws an exception if the recording group does not contain a valid list of resource types. Values that are not valid might also be incorrectly formatted.

", "exception":true }, "InvalidResultTokenException":{ "type":"structure", "members":{ }, - "documentation":"

The specified ResultToken is invalid.

", + "documentation":"

The specified ResultToken is not valid.

", "exception":true }, "InvalidRoleException":{ @@ -5039,14 +5039,14 @@ "type":"structure", "members":{ }, - "documentation":"

The specified Amazon S3 key prefix is invalid.

", + "documentation":"

The specified Amazon S3 key prefix is not valid.

", "exception":true }, "InvalidS3KmsKeyArnException":{ "type":"structure", "members":{ }, - "documentation":"

The specified Amazon KMS Key ARN is invalid.

", + "documentation":"

The specified Amazon KMS Key ARN is not valid.

", "exception":true }, "InvalidSNSTopicARNException":{ @@ -5060,7 +5060,7 @@ "type":"structure", "members":{ }, - "documentation":"

The specified time range is invalid. The earlier time is not chronologically before the later time.

", + "documentation":"

The specified time range is not valid. The earlier time is not chronologically before the later time.

", "exception":true }, "LastDeliveryChannelDeleteFailedException":{ @@ -5147,7 +5147,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The nextToken string in a prior request that you can use to get the paginated response for next set of conformance pack compliance scores.

" + "documentation":"

The nextToken string in a prior request that you can use to get the paginated response for the next set of conformance pack compliance scores.

" } } }, @@ -5175,7 +5175,7 @@ }, "resourceIds":{ "shape":"ResourceIdList", - "documentation":"

The IDs of only those resources that you want Config to list in the response. If you do not specify this parameter, Config lists all resources of the specified type that it has discovered.

" + "documentation":"

The IDs of only those resources that you want Config to list in the response. If you do not specify this parameter, Config lists all resources of the specified type that it has discovered. You can list a minimum of 1 resourceID and a maximum of 20 resourceIds.

" }, "resourceName":{ "shape":"ResourceName", @@ -5470,7 +5470,7 @@ "type":"structure", "members":{ }, - "documentation":"

The Config rule in the request is invalid. Verify that the rule is an Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", + "documentation":"

The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", "exception":true }, "NoSuchConfigRuleInConformancePackException":{ @@ -5512,7 +5512,7 @@ "type":"structure", "members":{ }, - "documentation":"

The Config rule in the request is invalid. Verify that the rule is an organization Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", + "documentation":"

The Config rule in the request is not valid. Verify that the rule is an organization Config Process Check rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", "exception":true }, "NoSuchOrganizationConformancePackException":{ @@ -5820,7 +5820,7 @@ "type":"structure", "members":{ }, - "documentation":"

You have specified a template that is invalid or supported.

", + "documentation":"

You have specified a template that is not valid or supported.

", "exception":true }, "OrganizationConformancePacks":{ @@ -6598,7 +6598,7 @@ }, "resourceTypes":{ "shape":"ResourceTypeList", - "documentation":"

A comma-separated list that specifies the types of Amazon Web Services resources for which Config records configuration changes (for example, AWS::EC2::Instance or AWS::CloudTrail::Trail).

To record all configuration changes, you must set the allSupported option to true.

If you set this option to false, when Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group.

For a list of valid resourceTypes values, see the resourceType Value column in Supported Amazon Web Services resource Types.

" + "documentation":"

A comma-separated list that specifies the types of Amazon Web Services resources for which Config records configuration changes (for example, AWS::EC2::Instance or AWS::CloudTrail::Trail).

To record all configuration changes, you must set the allSupported option to true.

If you set the AllSupported option to false and populate the ResourceTypes option with values, when Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group.

For a list of valid resourceTypes values, see the resourceType Value column in Supported Amazon Web Services resource Types.

" } }, "documentation":"

Specifies which Amazon Web Services resource types Config records for configuration changes. In the recording group, you specify whether you want to record all supported resource types or only specific types of resources.

By default, Config records the configuration changes for all supported types of regional resources that Config discovers in the region in which it is running. Regional resources are tied to a region and can be used only in that region. Examples of regional resources are EC2 instances and EBS volumes.

You can also have Config record supported types of global resources. Global resources are not tied to a specific region and can be used in all regions. The global resource types that Config supports include IAM users, groups, roles, and customer managed policies.

Global resource types onboarded to Config recording after February 2022 will only be recorded in the service's home region for the commercial partition and Amazon Web Services GovCloud (US) West for the GovCloud partition. You can view the Configuration Items for these new global resource types only in their home region and Amazon Web Services GovCloud (US) West.

Supported global resource types onboarded before February 2022 such as AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User remain unchanged, and they will continue to deliver Configuration Items in all supported regions in Config. The change will only affect new global resource types onboarded after February 2022.

To record global resource types onboarded after February 2022, enable All Supported Resource Types in the home region of the global resource type you want to record.

If you don't want Config to record all resources, you can specify which types of resources it will record with the resourceTypes parameter.

For a list of supported resource types, see Supported Resource Types.

For more information and a table of the Home Regions for Global Resource Types Onboarded after February 2022, see Selecting Which Resources Config Records.

" @@ -6659,7 +6659,7 @@ }, "TargetId":{ "shape":"StringWithCharLimit256", - "documentation":"

Target ID is the name of the public document.

" + "documentation":"

Target ID is the name of the SSM document.

" }, "TargetVersion":{ "shape":"String", @@ -6954,10 +6954,10 @@ }, "ResourceConfigurationSchemaType":{ "shape":"ResourceConfigurationSchemaType", - "documentation":"

The schema type of the resource configuration.

" + "documentation":"

The schema type of the resource configuration.

You can find the Resource type schema, or CFN_RESOURCE_SCHEMA, in \"Amazon Web Services public extensions\" within the CloudFormation registry or with the following CLI commmand: aws cloudformation describe-type --type-name \"AWS::S3::Bucket\" --type RESOURCE.

For more information, see Managing extensions through the CloudFormation registry and Amazon Web Services resource and property types reference in the CloudFormation User Guide.

" } }, - "documentation":"

Returns information about the resource being evaluated.

" + "documentation":"

Returns information about the resource being evaluated.

" }, "ResourceEvaluation":{ "type":"structure", @@ -7287,7 +7287,117 @@ "AWS::ServiceDiscovery::PublicDnsNamespace", "AWS::SES::ContactList", "AWS::SES::ConfigurationSet", - "AWS::Route53::HostedZone" + "AWS::Route53::HostedZone", + "AWS::IoTEvents::Input", + "AWS::IoTEvents::DetectorModel", + "AWS::IoTEvents::AlarmModel", + "AWS::ServiceDiscovery::HttpNamespace", + "AWS::Events::EventBus", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::DataSync::LocationObjectStorage", + "AWS::DataSync::LocationHDFS", + "AWS::Glue::Classifier", + "AWS::Route53RecoveryReadiness::Cell", + "AWS::Route53RecoveryReadiness::ReadinessCheck", + "AWS::ECR::RegistryPolicy", + "AWS::Backup::ReportPlan", + "AWS::Lightsail::Certificate", + "AWS::RUM::AppMonitor", + "AWS::Events::Endpoint", + "AWS::SES::ReceiptRuleSet", + "AWS::Events::Archive", + "AWS::Events::ApiDestination", + "AWS::Lightsail::Disk", + "AWS::FIS::ExperimentTemplate", + "AWS::DataSync::LocationFSxWindows", + "AWS::SES::ReceiptFilter", + "AWS::GuardDuty::Filter", + "AWS::SES::Template", + "AWS::AmazonMQ::Broker", + "AWS::AppConfig::Environment", + "AWS::AppConfig::ConfigurationProfile", + "AWS::Cloud9::EnvironmentEC2", + "AWS::EventSchemas::Registry", + "AWS::EventSchemas::RegistryPolicy", + "AWS::EventSchemas::Discoverer", + "AWS::FraudDetector::Label", + "AWS::FraudDetector::EntityType", + "AWS::FraudDetector::Variable", + "AWS::FraudDetector::Outcome", + "AWS::IoT::Authorizer", + "AWS::IoT::SecurityProfile", + "AWS::IoT::RoleAlias", + "AWS::IoT::Dimension", + "AWS::IoTAnalytics::Datastore", + "AWS::Lightsail::Bucket", + "AWS::Lightsail::StaticIp", + "AWS::MediaPackage::PackagingGroup", + "AWS::Route53RecoveryReadiness::RecoveryGroup", + "AWS::ResilienceHub::ResiliencyPolicy", + "AWS::Transfer::Workflow", + "AWS::EKS::IdentityProviderConfig", + "AWS::EKS::Addon", + "AWS::Glue::MLTransform", + "AWS::IoT::Policy", + "AWS::IoT::MitigationAction", + "AWS::IoTTwinMaker::Workspace", + "AWS::IoTTwinMaker::Entity", + "AWS::IoTAnalytics::Dataset", + "AWS::IoTAnalytics::Pipeline", + "AWS::IoTAnalytics::Channel", + "AWS::IoTSiteWise::Dashboard", + "AWS::IoTSiteWise::Project", + "AWS::IoTSiteWise::Portal", + "AWS::IoTSiteWise::AssetModel", + "AWS::IVS::Channel", + "AWS::IVS::RecordingConfiguration", + "AWS::IVS::PlaybackKeyPair", + "AWS::KinesisAnalyticsV2::Application", + "AWS::RDS::GlobalCluster", + "AWS::S3::MultiRegionAccessPoint", + "AWS::DeviceFarm::TestGridProject", + "AWS::Budgets::BudgetsAction", + "AWS::Lex::Bot", + "AWS::CodeGuruReviewer::RepositoryAssociation", + "AWS::IoT::CustomMetric", + "AWS::Route53Resolver::FirewallDomainList", + "AWS::RoboMaker::RobotApplicationVersion", + "AWS::EC2::TrafficMirrorSession", + "AWS::IoTSiteWise::Gateway", + "AWS::Lex::BotAlias", + "AWS::LookoutMetrics::Alert", + "AWS::IoT::AccountAuditConfiguration", + "AWS::EC2::TrafficMirrorTarget", + "AWS::S3::StorageLens", + "AWS::IoT::ScheduledAudit", + "AWS::Events::Connection", + "AWS::EventSchemas::Schema", + "AWS::MediaPackage::PackagingConfiguration", + "AWS::KinesisVideo::SignalingChannel", + "AWS::AppStream::DirectoryConfig", + "AWS::LookoutVision::Project", + "AWS::Route53RecoveryControl::Cluster", + "AWS::Route53RecoveryControl::SafetyRule", + "AWS::Route53RecoveryControl::ControlPanel", + "AWS::Route53RecoveryControl::RoutingControl", + "AWS::Route53RecoveryReadiness::ResourceSet", + "AWS::RoboMaker::SimulationApplication", + "AWS::RoboMaker::RobotApplication", + "AWS::HealthLake::FHIRDatastore", + "AWS::Pinpoint::Segment", + "AWS::Pinpoint::ApplicationSettings", + "AWS::Events::Rule", + "AWS::EC2::DHCPOptions", + "AWS::EC2::NetworkInsightsPath", + "AWS::EC2::TrafficMirrorFilter", + "AWS::EC2::IPAM", + "AWS::IoTTwinMaker::Scene", + "AWS::NetworkManager::TransitGatewayRegistration", + "AWS::CustomerProfiles::Domain", + "AWS::AutoScaling::WarmPool", + "AWS::Connect::PhoneNumber" ] }, "ResourceTypeList":{ @@ -7639,7 +7749,7 @@ }, "EvaluationMode":{ "shape":"EvaluationMode", - "documentation":"

The mode of an evaluation. The valid value for this API is Proactive.

" + "documentation":"

The mode of an evaluation. The valid values for this API are DETECTIVE and PROACTIVE.

" }, "EvaluationTimeout":{ "shape":"EvaluationTimeout", @@ -7943,7 +8053,7 @@ "type":"structure", "members":{ }, - "documentation":"

The requested action is invalid.

For PutStoredQuery, you will see this exception if there are missing required fields or if the input value fails the validation, or if you are trying to create more than 300 queries.

For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are missing required fields or if the input value fails the validation.

", + "documentation":"

The requested action is not valid.

For PutStoredQuery, you will see this exception if there are missing required fields or if the input value fails the validation, or if you are trying to create more than 300 queries.

For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are missing required fields or if the input value fails the validation.

", "exception":true }, "Value":{"type":"string"}, diff --git a/services/connect/pom.xml b/services/connect/pom.xml index 942d8beacd04..fd83b0b8dfd7 100644 --- a/services/connect/pom.xml +++ b/services/connect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT connect AWS Java SDK :: Services :: Connect diff --git a/services/connect/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/connect/src/main/resources/codegen-resources/endpoint-rule-set.json index 965d920a6a4e..57834595dab7 100644 --- a/services/connect/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/connect/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://connect.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://connect.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://connect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://connect-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://connect.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,28 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://connect.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/connect/src/main/resources/codegen-resources/endpoint-tests.json b/services/connect/src/main/resources/codegen-resources/endpoint-tests.json index f021fa49e2aa..f84fda681e70 100644 --- a/services/connect/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/connect/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "af-south-1", "UseFIPS": false, - "Region": "af-south-1" + "UseDualStack": false } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { @@ -112,9 +112,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -125,9 +125,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-west-2" + "UseDualStack": false } }, { @@ -138,9 +138,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -151,9 +151,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -164,9 +164,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -177,9 +177,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -190,9 +190,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -203,9 +203,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -216,9 +216,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -229,9 +229,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -242,9 +242,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -255,9 +255,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -268,9 +268,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { @@ -281,9 +281,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -294,9 +294,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -307,9 +318,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -320,9 +342,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -333,9 +366,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -346,22 +390,35 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -371,9 +428,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -383,11 +440,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/connect/src/main/resources/codegen-resources/paginators-1.json b/services/connect/src/main/resources/codegen-resources/paginators-1.json index bb8c206dddde..bf66f7f5951b 100644 --- a/services/connect/src/main/resources/codegen-resources/paginators-1.json +++ b/services/connect/src/main/resources/codegen-resources/paginators-1.json @@ -15,6 +15,11 @@ "limit_key": "MaxResults", "output_token": "NextToken" }, + "GetMetricDataV2": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, "ListAgentStatuses": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/services/connect/src/main/resources/codegen-resources/service-2.json b/services/connect/src/main/resources/codegen-resources/service-2.json index 3237512bc9bb..d2d0b825c8de 100644 --- a/services/connect/src/main/resources/codegen-resources/service-2.json +++ b/services/connect/src/main/resources/codegen-resources/service-2.json @@ -118,7 +118,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Amazon Lex bot.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Amazon Lex V1 bot. This API only supports the association of Amazon Lex V1 bots.

" }, "AssociatePhoneNumberContactFlow":{ "name":"AssociatePhoneNumberContactFlow", @@ -1028,7 +1028,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes the specified user account. You can find the instance ID in the console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

" + "documentation":"

Describes the specified user account. You can find the instance ID in the Amazon Connect console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

" }, "DescribeUserHierarchyGroup":{ "name":"DescribeUserHierarchyGroup", @@ -1326,6 +1326,23 @@ ], "documentation":"

Gets historical metric data from the specified Amazon Connect instance.

For a description of each historical metric, see Historical Metrics Definitions in the Amazon Connect Administrator Guide.

" }, + "GetMetricDataV2":{ + "name":"GetMetricDataV2", + "http":{ + "method":"POST", + "requestUri":"/metrics/data" + }, + "input":{"shape":"GetMetricDataV2Request"}, + "output":{"shape":"GetMetricDataV2Response"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets metric data from the specified Amazon Connect instance.

GetMetricDataV2 offers more features than GetMetricData, the previous version of this API. It has new metrics, offers filtering at a metric level, and offers the ability to filter and group data by channels, queues, routing profiles, agents, and agent hierarchy levels. It can retrieve historical data for the last 14 days, in 24-hour intervals.

For a description of the historical metrics that are supported by GetMetricDataV2 and GetMetricData, see Historical metrics definitions in the Amazon Connect Administrator's Guide.

This API is not available in the Amazon Web Services GovCloud (US) Regions.

" + }, "GetTaskTemplate":{ "name":"GetTaskTemplate", "http":{ @@ -3174,7 +3191,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3190,7 +3207,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3210,7 +3227,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3241,7 +3258,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3273,7 +3290,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3292,7 +3309,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3318,7 +3335,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactFlowId":{ "shape":"ContactFlowId", @@ -3336,7 +3353,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3362,7 +3379,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3387,7 +3404,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -3491,6 +3508,13 @@ "min":8, "pattern":"[a-z]{2}(-[a-z]+){1,2}(-[0-9])?" }, + "BehaviorType":{ + "type":"string", + "enum":[ + "ROUTE_CURRENT_CHANNEL_ONLY", + "ROUTE_ANY_CHANNEL" + ] + }, "Boolean":{"type":"boolean"}, "BotName":{ "type":"string", @@ -3548,11 +3572,11 @@ "members":{ "ContentType":{ "shape":"ChatContentType", - "documentation":"

The type of the content. Supported types are text/plain, text/markdown, and application/json.

" + "documentation":"

The type of the content. Supported types are text/plain, text/markdown, application/json, and application/vnd.amazonaws.connect.message.interactive.response.

" }, "Content":{ "shape":"ChatContent", - "documentation":"

The content of the chat message.

  • For text/plain and text/markdown, the Length Constraints are Minimum of 1, Maximum of 1024.

  • For application/json, the Length Constraints are Minimum of 1, Maximum of 12000.

" + "documentation":"

The content of the chat message.

  • For text/plain and text/markdown, the Length Constraints are Minimum of 1, Maximum of 1024.

  • For application/json, the Length Constraints are Minimum of 1, Maximum of 12000.

  • For application/vnd.amazonaws.connect.message.interactive.response, the Length Constraints are Minimum of 1, Maximum of 12288.

" } }, "documentation":"

A chat message.

" @@ -3749,6 +3773,10 @@ "RelatedContactId":{ "shape":"ContactId", "documentation":"

The contactId that is related to this contact.

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

Information about Amazon Connect Wisdom.

" } }, "documentation":"

Contains information about a contact.

" @@ -4063,7 +4091,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4113,7 +4141,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4214,7 +4242,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4310,7 +4338,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4363,7 +4391,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4421,7 +4449,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4468,7 +4496,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4486,7 +4514,7 @@ }, "QueueConfigs":{ "shape":"RoutingProfileQueueConfigList", - "documentation":"

The inbound queues associated with the routing profile. If no queue is added, the agent can make only outbound calls.

" + "documentation":"

The inbound queues associated with the routing profile. If no queue is added, the agent can make only outbound calls.

The limit of 10 array members applies to the maximum number of RoutingProfileQueueConfig objects that can be passed during a CreateRoutingProfile API request. It is different from the quota of 50 queues per routing profile per instance that is listed in Amazon Connect service quotas.

" }, "MediaConcurrencies":{ "shape":"MediaConcurrencies", @@ -4524,7 +4552,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4599,7 +4627,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4640,7 +4668,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4749,7 +4777,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4799,7 +4827,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4866,7 +4894,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4905,7 +4933,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -4971,6 +4999,17 @@ }, "documentation":"

Contains credentials to use for federation.

" }, + "CrossChannelBehavior":{ + "type":"structure", + "required":["BehaviorType"], + "members":{ + "BehaviorType":{ + "shape":"BehaviorType", + "documentation":"

Specifies the other channels that can be routed to an agent handling their current channel.

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

Defines the cross-channel routing behavior that allows an agent working on a contact in one channel to be offered a contact from a different channel.

" + }, "CurrentMetric":{ "type":"structure", "members":{ @@ -5087,7 +5126,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "LanguageCode":{ "shape":"VocabularyLanguageCode", @@ -5122,7 +5161,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5148,7 +5187,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5174,7 +5213,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5192,7 +5231,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -5207,7 +5246,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5228,7 +5267,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5249,7 +5288,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5270,7 +5309,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5291,7 +5330,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5335,7 +5374,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5368,7 +5407,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -5383,7 +5422,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5404,7 +5443,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5447,7 +5486,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5477,7 +5516,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5537,7 +5576,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5567,7 +5606,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5597,7 +5636,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5624,7 +5663,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -5649,7 +5688,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5706,7 +5745,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5736,7 +5775,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5766,7 +5805,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5796,7 +5835,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -5833,7 +5872,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -5884,7 +5923,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -5905,7 +5944,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -5935,7 +5974,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -5959,7 +5998,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6019,9 +6058,16 @@ }, "documentation":"

Contains information about the dimensions for a set of metrics.

" }, + "DimensionsV2Key":{"type":"string"}, + "DimensionsV2Map":{ + "type":"map", + "key":{"shape":"DimensionsV2Key"}, + "value":{"shape":"DimensionsV2Value"} + }, + "DimensionsV2Value":{"type":"string"}, "DirectoryAlias":{ "type":"string", - "max":62, + "max":45, "min":1, "pattern":"^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$", "sensitive":true @@ -6050,7 +6096,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6068,7 +6114,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6089,7 +6135,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6116,7 +6162,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance..

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance..

", "location":"uri", "locationName":"InstanceId" }, @@ -6138,7 +6184,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6171,7 +6217,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"querystring", "locationName":"instanceId" } @@ -6187,7 +6233,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6213,7 +6259,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6238,7 +6284,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6345,7 +6391,7 @@ }, "KeyId":{ "shape":"KeyId", - "documentation":"

The full ARN of the encryption key.

Be sure to provide the full ARN of the encryption key, not just the ID.

" + "documentation":"

The full ARN of the encryption key.

Be sure to provide the full ARN of the encryption key, not just the ID.

Amazon Connect supports only KMS keys with the default key spec of SYMMETRIC_DEFAULT .

" } }, "documentation":"

The encryption configuration.

" @@ -6381,6 +6427,26 @@ "OnSalesforceCaseCreate" ] }, + "FilterV2":{ + "type":"structure", + "members":{ + "FilterKey":{ + "shape":"ResourceArnOrId", + "documentation":"

The key to use for filtering data. For example, QUEUE, ROUTING_PROFILE, AGENT, CHANNEL, AGENT_HIERARCHY_LEVEL_ONE, AGENT_HIERARCHY_LEVEL_TWO, AGENT_HIERARCHY_LEVEL_THREE, AGENT_HIERARCHY_LEVEL_FOUR, AGENT_HIERARCHY_LEVEL_FIVE. There must be at least 1 key and a maximum 5 keys.

" + }, + "FilterValues":{ + "shape":"FilterValueList", + "documentation":"

The identifiers to use for filtering data. For example, if you have a filter key of QUEUE, you would add queue IDs or ARNs in FilterValues.

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

Contains the filter to apply when retrieving metrics with the GetMetricDataV2 API.

" + }, + "FilterValueList":{ + "type":"list", + "member":{"shape":"ResourceArnOrId"}, + "max":100, + "min":1 + }, "Filters":{ "type":"structure", "members":{ @@ -6399,6 +6465,12 @@ }, "documentation":"

Contains the filter to apply when retrieving metrics.

" }, + "FiltersV2List":{ + "type":"list", + "member":{"shape":"FilterV2"}, + "max":5, + "min":1 + }, "FunctionArn":{ "type":"string", "max":140, @@ -6448,7 +6520,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6509,7 +6581,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6551,7 +6623,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -6590,7 +6662,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6638,6 +6710,64 @@ } } }, + "GetMetricDataV2Request":{ + "type":"structure", + "required":[ + "ResourceArn", + "StartTime", + "EndTime", + "Filters", + "Metrics" + ], + "members":{ + "ResourceArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the resource. This includes the instanceId an Amazon Connect instance.

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

The timestamp, in UNIX Epoch time format, at which to start the reporting interval for the retrieval of historical metrics data. The time must be before the end time timestamp. The time range between the start and end time must be less than 24 hours. The start time cannot be earlier than 14 days before the time of the request. Historical metrics are available for 14 days.

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

The timestamp, in UNIX Epoch time format, at which to end the reporting interval for the retrieval of historical metrics data. The time must be later than the start time timestamp. It cannot be later than the current timestamp.

The time range between the start and end time must be less than 24 hours.

" + }, + "Filters":{ + "shape":"FiltersV2List", + "documentation":"

The filters to apply to returned metrics. You can filter on the following resources:

  • Queues

  • Routing profiles

  • Agents

  • Channels

  • User hierarchy groups

At least one filter must be passed from queues, routing profiles, agents, or user hierarchy groups.

To filter by phone number, see Create a historical metrics report in the Amazon Connect Administrator's Guide.

Note the following limits:

  • Filter keys: A maximum of 5 filter keys are supported in a single request. Valid filter keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE

  • Filter values: A maximum of 100 filter values are supported in a single request. For example, a GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing profiles for a total of 100 filter values. VOICE, CHAT, and TASK are valid filterValue for the CHANNEL filter key.

" + }, + "Groupings":{ + "shape":"GroupingsV2", + "documentation":"

The grouping applied to the metrics that are returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values that are returned apply to the metrics for each queue. They are not aggregated for all queues.

If no grouping is specified, a summary of all metrics is returned.

Valid grouping keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE

" + }, + "Metrics":{ + "shape":"MetricsV2", + "documentation":"

The metrics to retrieve. Specify the name, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's Guide.

AGENT_ADHERENT_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_NON_RESPONSE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_OCCUPANCY

Unit: Percentage

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

AGENT_SCHEDULE_ADHERENCE

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_SCHEDULED_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_ABANDON_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_AGENT_CONNECTING_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_INTERACTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile

AVG_QUEUE_ANSWER_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile

CONTACTS_ABANDONED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_CREATED

Unit: Count

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile

CONTACTS_HANDLED

Unit: Count

Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_HOLD_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_QUEUED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_TRANSFERRED_OUT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_TRANSFERRED_OUT_BY_AGENT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

MAX_QUEUED_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_ANSWERED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_ABANDONED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_DISCONNECTED

Valid metric filter key: DISCONNECT_REASON

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

SUM_RETRY_CALLBACK_ATTEMPTS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

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

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxResult100", + "documentation":"

The maximum number of results to return per page.

", + "box":true + } + } + }, + "GetMetricDataV2Response":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken2500", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + }, + "MetricResults":{ + "shape":"MetricResultsV2", + "documentation":"

Information about the metrics requested in the API request If no grouping is specified, a summary of metric data is returned.

" + } + } + }, "GetTaskTemplateRequest":{ "type":"structure", "required":[ @@ -6647,7 +6777,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -6675,7 +6805,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Id":{ "shape":"TaskTemplateId", @@ -6764,11 +6894,17 @@ "ROUTING_PROFILE" ] }, + "GroupingV2":{"type":"string"}, "Groupings":{ "type":"list", "member":{"shape":"Grouping"}, "max":2 }, + "GroupingsV2":{ + "type":"list", + "member":{"shape":"GroupingV2"}, + "max":2 + }, "HierarchyGroup":{ "type":"structure", "members":{ @@ -7237,7 +7373,7 @@ "members":{ "Id":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Arn":{ "shape":"ARN", @@ -7375,7 +7511,9 @@ "MEDIA_STREAMS", "CONTACT_TRACE_RECORDS", "AGENT_EVENTS", - "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS" + "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", + "ATTACHMENTS", + "CONTACT_EVALUATIONS" ] }, "InstanceSummary":{ @@ -7446,7 +7584,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "IntegrationType":{ "shape":"IntegrationType", @@ -7614,6 +7752,10 @@ }, "LexBot":{ "type":"structure", + "required":[ + "Name", + "LexRegion" + ], "members":{ "Name":{ "shape":"BotName", @@ -7684,7 +7826,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7728,7 +7870,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7769,7 +7911,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7813,7 +7955,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7857,7 +7999,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7904,7 +8046,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7947,7 +8089,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -7985,7 +8127,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8022,7 +8164,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8063,7 +8205,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8138,7 +8280,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8182,7 +8324,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8220,7 +8362,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8258,7 +8400,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8425,7 +8567,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8469,7 +8611,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8512,7 +8654,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8559,7 +8701,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8603,7 +8745,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8641,7 +8783,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8692,7 +8834,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8739,7 +8881,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8777,7 +8919,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8815,7 +8957,7 @@ "members":{ "resourceArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "documentation":"

The Amazon Resource Name (ARN) of the resource. All Amazon Connect resources (instances, queues, flows, routing profiles, etc) have an ARN. To locate the ARN for an instance, for example, see Find your Amazon Connect instance ID/ARN.

", "location":"uri", "locationName":"resourceArn" } @@ -8836,7 +8978,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8897,7 +9039,7 @@ }, "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"querystring", "locationName":"instanceId" } @@ -8925,7 +9067,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -8970,7 +9112,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -9008,7 +9150,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -9094,11 +9236,100 @@ "Concurrency":{ "shape":"Concurrency", "documentation":"

The number of contacts an agent can have on a channel simultaneously.

Valid Range for VOICE: Minimum value of 1. Maximum value of 1.

Valid Range for CHAT: Minimum value of 1. Maximum value of 10.

Valid Range for TASK: Minimum value of 1. Maximum value of 10.

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

Defines the cross-channel routing behavior for each channel that is enabled for this Routing Profile. For example, this allows you to offer an agent a different contact from another channel when they are currently working with a contact from a Voice channel.

" } }, "documentation":"

Contains information about which channels are supported, and how many contacts an agent can have on a channel simultaneously.

" }, "Message":{"type":"string"}, + "MetricDataCollectionsV2":{ + "type":"list", + "member":{"shape":"MetricDataV2"} + }, + "MetricDataV2":{ + "type":"structure", + "members":{ + "Metric":{ + "shape":"MetricV2", + "documentation":"

The metric name, thresholds, and metric filters of the returned metric.

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

The corresponding value of the metric returned in the response.

", + "box":true + } + }, + "documentation":"

Contains the name, thresholds, and metric filters.

" + }, + "MetricFilterV2":{ + "type":"structure", + "members":{ + "MetricFilterKey":{ + "shape":"String", + "documentation":"

The key to use for filtering data.

Valid metric filter keys: INITIATION_METHOD, DISCONNECT_REASON

" + }, + "MetricFilterValues":{ + "shape":"MetricFilterValueList", + "documentation":"

The values to use for filtering data.

Valid metric filter values for INITIATION_METHOD: INBOUND | OUTBOUND | TRANSFER | QUEUE_TRANSFER | CALLBACK | API

Valid metric filter values for DISCONNECT_REASON: CUSTOMER_DISCONNECT | AGENT_DISCONNECT | THIRD_PARTY_DISCONNECT | TELECOM_PROBLEM | BARGED | CONTACT_FLOW_DISCONNECT | OTHER | EXPIRED | API

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

Contains information about the filter used when retrieving metrics. MetricFiltersV2 can be used on the following metrics: AVG_AGENT_CONNECTING_TIME, CONTACTS_CREATED, CONTACTS_HANDLED, SUM_CONTACTS_DISCONNECTED.

" + }, + "MetricFilterValueList":{ + "type":"list", + "member":{"shape":"String"}, + "max":10, + "min":1 + }, + "MetricFiltersV2List":{ + "type":"list", + "member":{"shape":"MetricFilterV2"}, + "max":2 + }, + "MetricNameV2":{"type":"string"}, + "MetricResultV2":{ + "type":"structure", + "members":{ + "Dimensions":{ + "shape":"DimensionsV2Map", + "documentation":"

The dimension for the metrics.

" + }, + "Collections":{ + "shape":"MetricDataCollectionsV2", + "documentation":"

The set of metrics.

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

Contains information about the metric results.

" + }, + "MetricResultsV2":{ + "type":"list", + "member":{"shape":"MetricResultV2"} + }, + "MetricV2":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"MetricNameV2", + "documentation":"

The name of the metric.

" + }, + "Threshold":{ + "shape":"ThresholdCollections", + "documentation":"

Contains information about the threshold for service level metrics.

" + }, + "MetricFilters":{ + "shape":"MetricFiltersV2List", + "documentation":"

Contains the filters to be used when returning data.

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

Contains information about the metric.

" + }, + "MetricsV2":{ + "type":"list", + "member":{"shape":"MetricV2"} + }, "MinutesLimit60":{ "type":"integer", "max":59, @@ -9844,7 +10075,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -10293,7 +10524,7 @@ "members":{ "InstanceId":{ "shape":"InstanceIdOrArn", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance. You can provide the InstanceId, or the entire ARN.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You can provide the InstanceId, or the entire ARN.

", "location":"uri", "locationName":"InstanceId" }, @@ -10339,6 +10570,11 @@ "type":"list", "member":{"shape":"RequiredFieldInfo"} }, + "ResourceArnOrId":{ + "type":"string", + "max":250, + "min":1 + }, "ResourceConflictException":{ "type":"structure", "members":{ @@ -10408,7 +10644,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -10430,7 +10666,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Name":{ "shape":"RoutingProfileName", @@ -10904,7 +11140,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -10948,7 +11184,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -10992,7 +11228,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -11035,7 +11271,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "NextToken":{ "shape":"NextToken2500", @@ -11076,7 +11312,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -11367,7 +11603,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactFlowId":{ "shape":"ContactFlowId", @@ -11392,15 +11628,19 @@ }, "ChatDurationInMinutes":{ "shape":"ChatDurationInMinutes", - "documentation":"

The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minumum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).

" + "documentation":"

The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minimum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).

" }, "SupportedMessagingContentTypes":{ "shape":"SupportedMessagingContentTypes", - "documentation":"

The supported chat message content types. Content types must always contain text/plain. You can then put any other supported type in the list. For example, all the following lists are valid because they contain text/plain: [text/plain, text/markdown, application/json], [text/markdown, text/plain], [text/plain, application/json].

" + "documentation":"

The supported chat message content types. Supported types are text/plain, text/markdown, application/json, application/vnd.amazonaws.connect.message.interactive, and application/vnd.amazonaws.connect.message.interactive.response.

Content types must always contain text/plain. You can then put any other supported type in the list. For example, all the following lists are valid because they contain text/plain: [text/plain, text/markdown, application/json], [text/markdown, text/plain], [text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response].

The type application/vnd.amazonaws.connect.message.interactive is required to use the Show view flow block.

" }, "PersistentChat":{ "shape":"PersistentChat", "documentation":"

Enable persistent chats. For more information about enabling persistent chat, and for example use cases and how to configure for them, see Enable persistent chat.

" + }, + "RelatedContactId":{ + "shape":"ContactId", + "documentation":"

The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.

You cannot provide data for both RelatedContactId and PersistentChat.

" } } }, @@ -11436,7 +11676,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -11468,7 +11708,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -11513,7 +11753,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ClientToken":{ "shape":"ClientToken", @@ -11564,7 +11804,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "PreviousContactId":{ "shape":"ContactId", @@ -11606,6 +11846,10 @@ "QuickConnectId":{ "shape":"QuickConnectId", "documentation":"

The identifier for the quick connect.

" + }, + "RelatedContactId":{ + "shape":"ContactId", + "documentation":"

The contactId that is related to this contact.

" } } }, @@ -11636,7 +11880,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -11666,7 +11910,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" } } }, @@ -11685,7 +11929,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -11781,7 +12025,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -12119,6 +12363,26 @@ }, "documentation":"

Contains information about the threshold for service level metrics.

" }, + "ThresholdCollections":{ + "type":"list", + "member":{"shape":"ThresholdV2"}, + "max":1 + }, + "ThresholdV2":{ + "type":"structure", + "members":{ + "Comparison":{ + "shape":"ResourceArnOrId", + "documentation":"

The type of comparison. Only \"less than\" (LT) comparisons are supported.

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

The threshold value to compare.

", + "box":true + } + }, + "documentation":"

Contains information about the threshold for service level metrics.

" + }, "ThresholdValue":{"type":"double"}, "ThrottlingException":{ "type":"structure", @@ -12244,7 +12508,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -12330,7 +12594,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12377,7 +12641,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Attributes":{ "shape":"Attributes", @@ -12430,7 +12694,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12469,7 +12733,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12499,7 +12763,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12571,7 +12835,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12610,7 +12874,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "ContactId":{ "shape":"ContactId", @@ -12641,7 +12905,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12679,7 +12943,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12706,7 +12970,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12746,7 +13010,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12814,7 +13078,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12839,7 +13103,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12865,7 +13129,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12895,7 +13159,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12921,7 +13185,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12947,7 +13211,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -12977,7 +13241,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13007,7 +13271,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13033,7 +13297,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13058,7 +13322,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13088,7 +13352,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13123,7 +13387,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13168,7 +13432,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13197,7 +13461,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" }, @@ -13236,7 +13500,7 @@ "members":{ "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

" }, "Id":{ "shape":"TaskTemplateId", @@ -13325,7 +13589,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -13350,7 +13614,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -13369,7 +13633,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -13395,7 +13659,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -13421,7 +13685,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -13447,7 +13711,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -13473,7 +13737,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "location":"uri", "locationName":"InstanceId" } @@ -14044,6 +14308,16 @@ "ALL" ] }, + "WisdomInfo":{ + "type":"structure", + "members":{ + "SessionArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the Wisdom session.

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

Information about Amazon Connect Wisdom.

" + }, "timestamp":{"type":"timestamp"} }, "documentation":"

Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale.

Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents.

There are limits to the number of Amazon Connect resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

You can connect programmatically to an Amazon Web Services service by using an endpoint. For a list of Amazon Connect endpoints, see Amazon Connect Endpoints.

" diff --git a/services/connectcampaigns/pom.xml b/services/connectcampaigns/pom.xml index 4e5fe0e004bc..3a246bf6cea3 100644 --- a/services/connectcampaigns/pom.xml +++ b/services/connectcampaigns/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT connectcampaigns AWS Java SDK :: Services :: Connect Campaigns diff --git a/services/connectcases/pom.xml b/services/connectcases/pom.xml index 69d059d4ce35..ed068b2b9f0b 100644 --- a/services/connectcases/pom.xml +++ b/services/connectcases/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT connectcases AWS Java SDK :: Services :: Connect Cases diff --git a/services/connectcases/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/connectcases/src/main/resources/codegen-resources/endpoint-rule-set.json index da61afd0acad..db1b8a5d690b 100644 --- a/services/connectcases/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/connectcases/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cases-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cases-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cases-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cases-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cases.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://cases.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cases.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://cases.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/connectcases/src/main/resources/codegen-resources/endpoint-tests.json b/services/connectcases/src/main/resources/codegen-resources/endpoint-tests.json index 9e508f597f55..5b806555c80e 100644 --- a/services/connectcases/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/connectcases/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -110,9 +110,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -123,9 +123,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { @@ -134,9 +134,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -147,9 +147,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { @@ -160,9 +160,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -173,9 +173,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -186,9 +186,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -199,9 +199,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -210,9 +210,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -223,9 +223,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -234,9 +234,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -247,9 +247,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -260,9 +260,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -272,9 +272,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -284,9 +284,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/connectcases/src/main/resources/codegen-resources/service-2.json b/services/connectcases/src/main/resources/codegen-resources/service-2.json index 7d90a7c2381f..2869713e24ac 100644 --- a/services/connectcases/src/main/resources/codegen-resources/service-2.json +++ b/services/connectcases/src/main/resources/codegen-resources/service-2.json @@ -68,7 +68,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Creates a case in the specified Cases domain. Case system and custom fields are taken as an array id/value pairs with a declared data types.

customer_id is a required field when creating a case.

", + "documentation":"

Creates a case in the specified Cases domain. Case system and custom fields are taken as an array id/value pairs with a declared data types.

The following fields are required when creating a case:

 <ul> <li> <p> <code>customer_id</code> - You must provide the full customer profile ARN in this format: <code>arn:aws:profile:your AWS Region:your AWS account ID:domains/profiles domain name/profiles/profile ID</code> </p> </li> <li> <p> <code>title</code> </p> </li> </ul> </note> 
", "idempotent":true }, "CreateDomain":{ @@ -88,7 +88,7 @@ {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a domain, which is a container for all case data, such as cases, fields, templates and layouts. Each Amazon Connect instance can be associated with only one Cases domain.

This will not associate your connect instance to Cases domain. Instead, use the Amazon Connect CreateIntegrationAssociation API.

", + "documentation":"

Creates a domain, which is a container for all case data, such as cases, fields, templates and layouts. Each Amazon Connect instance can be associated with only one Cases domain.

This will not associate your connect instance to Cases domain. Instead, use the Amazon Connect CreateIntegrationAssociation API. You need specific IAM permissions to successfully associate the Cases domain. For more information, see Onboard to Cases.

", "idempotent":true }, "CreateField":{ @@ -173,6 +173,26 @@ "documentation":"

Creates a template in the Cases domain. This template is used to define the case object model (that is, to define what data can be captured on cases) in a Cases domain. A template must have a unique name within a domain, and it must reference existing field IDs and layout IDs. Additionally, multiple fields with same IDs are not allowed within the same Template. A template can be either Active or Inactive, as indicated by its status. Inactive templates cannot be used to create cases.

", "idempotent":true }, + "DeleteDomain":{ + "name":"DeleteDomain", + "http":{ + "method":"DELETE", + "requestUri":"/domains/{domainId}", + "responseCode":200 + }, + "input":{"shape":"DeleteDomainRequest"}, + "output":{"shape":"DeleteDomainResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes a domain.

", + "idempotent":true + }, "GetCase":{ "name":"GetCase", "http":{ @@ -423,7 +443,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Searches for cases within their associated Cases domain. Search results are returned as a paginated list of abridged case documents.

" + "documentation":"

Searches for cases within their associated Cases domain. Search results are returned as a paginated list of abridged case documents.

For customer_id you must provide the full customer profile ARN in this format: arn:aws:profile:your AWS Region:your AWS account ID:domains/profiles domain name/profiles/profile ID.

" }, "SearchRelatedItems":{ "name":"SearchRelatedItems", @@ -1161,6 +1181,23 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "DeleteDomainRequest":{ + "type":"structure", + "required":["domainId"], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + } + } + }, + "DeleteDomainResponse":{ + "type":"structure", + "members":{ + } + }, "DomainArn":{ "type":"string", "max":500, @@ -2417,7 +2454,6 @@ "SearchCasesRequestSortsList":{ "type":"list", "member":{"shape":"Sort"}, - "documentation":"

/@documentation("The templateId")

", "max":2, "min":0 }, @@ -2680,7 +2716,6 @@ }, "TemplateStatus":{ "type":"string", - "documentation":"

Status of a template

", "enum":[ "Active", "Inactive" @@ -2689,7 +2724,6 @@ "TemplateStatusFilters":{ "type":"list", "member":{"shape":"TemplateStatus"}, - "documentation":"

List of filters used on the ListTemplates result set

", "max":2, "min":1 }, @@ -2932,5 +2966,5 @@ "min":0 } }, - "documentation":"

Welcome to the Amazon Connect Cases API Reference. This guide provides information about the Amazon Connect Cases API, which you can use to create, update, get, and list Cases domains, fields, field options, layouts, templates, cases, related items, and tags.

 <p>For more information about Amazon Connect Cases, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/cases.html">Amazon Connect Cases</a> in the <i>Amazon Connect Administrator Guide</i>. </p> 
" + "documentation":"

With Amazon Connect Cases, your agents can track and manage customer issues that require multiple interactions, follow-up tasks, and teams in your contact center. A case represents a customer issue. It records the issue, the steps and interactions taken to resolve the issue, and the outcome. For more information, see Amazon Connect Cases in the Amazon Connect Administrator Guide.

" } diff --git a/services/connectcontactlens/pom.xml b/services/connectcontactlens/pom.xml index 73d6c37cf0c6..558dee42d8ee 100644 --- a/services/connectcontactlens/pom.xml +++ b/services/connectcontactlens/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT connectcontactlens AWS Java SDK :: Services :: Connect Contact Lens diff --git a/services/connectparticipant/pom.xml b/services/connectparticipant/pom.xml index 083c1ac5c7c3..9df467539bbe 100644 --- a/services/connectparticipant/pom.xml +++ b/services/connectparticipant/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT connectparticipant AWS Java SDK :: Services :: ConnectParticipant diff --git a/services/connectparticipant/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/connectparticipant/src/main/resources/codegen-resources/endpoint-rule-set.json index 239167e963f3..1662572daf81 100644 --- a/services/connectparticipant/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/connectparticipant/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://participant.connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://participant.connect.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://participant.connect.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://participant.connect-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://participant.connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://participant.connect.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,28 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://participant.connect.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/connectparticipant/src/main/resources/codegen-resources/endpoint-tests.json b/services/connectparticipant/src/main/resources/codegen-resources/endpoint-tests.json index b6732ebed469..3811e928b32d 100644 --- a/services/connectparticipant/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/connectparticipant/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,211 +1,244 @@ { "testCases": [ { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-gov-west-1.amazonaws.com" + "url": "https://participant.connect-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-gov-west-1.amazonaws.com" + "url": "https://participant.connect-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "us-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://participant.connect-fips.us-gov-east-1.api.aws" + "url": "https://participant.connect.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "us-gov-east-1" + "Region": "us-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-gov-east-1.amazonaws.com" + "url": "https://participant.connect.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "us-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-gov-east-1.api.aws" + "url": "https://participant.connect-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, "UseDualStack": true, - "Region": "us-gov-east-1" + "Region": "cn-north-1", + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-gov-east-1.amazonaws.com" + "url": "https://participant.connect-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "cn-north-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://participant.connect-fips.us-east-1.api.aws" + "url": "https://participant.connect.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect-fips.us-east-1.amazonaws.com" + "url": "https://participant.connect.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-east-1.api.aws" + "url": "https://participant.connect.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-east-1.amazonaws.com" + "url": "https://participant.connect.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-gov-west-1", + "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://participant.connect-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://participant.connect-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-east-1" + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.us-iso-east-1.c2s.ic.gov" + "url": "https://participant.connect.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "us-gov-east-1", + "UseFIPS": true } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://participant.connect-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://participant.connect.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "cn-north-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect-fips.cn-north-1.amazonaws.com.cn" + "url": "https://participant.connect.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "cn-north-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://participant.connect-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { "UseDualStack": true, - "Region": "cn-north-1" + "Region": "us-iso-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://participant.connect.cn-north-1.amazonaws.com.cn" + "url": "https://participant.connect.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "cn-north-1" + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true } }, { @@ -216,9 +249,20 @@ } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false } }, { @@ -229,22 +273,35 @@ } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -254,9 +311,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -266,11 +323,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/connectparticipant/src/main/resources/codegen-resources/service-2.json b/services/connectparticipant/src/main/resources/codegen-resources/service-2.json index 4e2dfc6fea8b..97d2c2e3bb41 100644 --- a/services/connectparticipant/src/main/resources/codegen-resources/service-2.json +++ b/services/connectparticipant/src/main/resources/codegen-resources/service-2.json @@ -339,7 +339,7 @@ }, "ConnectParticipant":{ "shape":"Bool", - "documentation":"

Amazon Connect Participant is used to mark the participant as connected for message streaming.

" + "documentation":"

Amazon Connect Participant is used to mark the participant as connected for customer participant in message streaming, as well as for agent or manager participant in non-streaming chats.

" } } }, @@ -688,11 +688,11 @@ "members":{ "ContentType":{ "shape":"ChatContentType", - "documentation":"

The type of the content. Supported types are text/plain, text/markdown, and application/json.

" + "documentation":"

The type of the content. Supported types are text/plain, text/markdown, application/json, and application/vnd.amazonaws.connect.message.interactive.response.

" }, "Content":{ "shape":"ChatContent", - "documentation":"

The content of the message.

  • For text/plain and text/markdown, the Length Constraints are Minimum of 1, Maximum of 1024.

  • For application/json, the Length Constraints are Minimum of 1, Maximum of 12000.

" + "documentation":"

The content of the message.

  • For text/plain and text/markdown, the Length Constraints are Minimum of 1, Maximum of 1024.

  • For application/json, the Length Constraints are Minimum of 1, Maximum of 12000.

  • For application/vnd.amazonaws.connect.message.interactive.response, the Length Constraints are Minimum of 1, Maximum of 12288.

" }, "ClientToken":{ "shape":"ClientToken", @@ -880,5 +880,5 @@ "documentation":"

The websocket for the participant's connection.

" } }, - "documentation":"

Amazon Connect is a cloud-based contact center solution that makes it easy to set up and manage a customer contact center. Amazon Connect enables customer contacts through voice or chat. Use the Amazon Connect Participant Service to manage chat participants, such as agents and customers.

" + "documentation":"

Amazon Connect is an easy-to-use omnichannel cloud contact center service that enables companies of any size to deliver superior customer service at a lower cost. Amazon Connect communications capabilities make it easy for companies to deliver personalized interactions across communication channels, including chat.

Use the Amazon Connect Participant Service to manage participants (for example, agents, customers, and managers listening in), and to send messages and events within a chat contact. The APIs in the service enable the following: sending chat messages, attachment sharing, managing a participant's connection state and message events, and retrieving chat transcripts.

" } diff --git a/services/controltower/pom.xml b/services/controltower/pom.xml index 175dbccdd91f..4239a3e2735d 100644 --- a/services/controltower/pom.xml +++ b/services/controltower/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT controltower AWS Java SDK :: Services :: Control Tower diff --git a/services/costandusagereport/pom.xml b/services/costandusagereport/pom.xml index fac297cb61de..f41242f9f794 100644 --- a/services/costandusagereport/pom.xml +++ b/services/costandusagereport/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT costandusagereport AWS Java SDK :: Services :: AWS Cost and Usage Report diff --git a/services/costexplorer/pom.xml b/services/costexplorer/pom.xml index 578400aa1159..87f930774400 100644 --- a/services/costexplorer/pom.xml +++ b/services/costexplorer/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 costexplorer diff --git a/services/customerprofiles/pom.xml b/services/customerprofiles/pom.xml index b0e5f6b0457b..4aa1142df279 100644 --- a/services/customerprofiles/pom.xml +++ b/services/customerprofiles/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT customerprofiles AWS Java SDK :: Services :: Customer Profiles diff --git a/services/databasemigration/pom.xml b/services/databasemigration/pom.xml index 9f4488eafa51..466eb1261b77 100644 --- a/services/databasemigration/pom.xml +++ b/services/databasemigration/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT databasemigration AWS Java SDK :: Services :: AWS Database Migration Service diff --git a/services/databasemigration/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/databasemigration/src/main/resources/codegen-resources/endpoint-rule-set.json index 86a1825eda0b..c1910361de38 100644 --- a/services/databasemigration/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/databasemigration/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,325 +111,313 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://dms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "dms" - ] - } - ], - "endpoint": { - "url": "https://dms-fips.us-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "dms" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] - } - ], - "endpoint": { - "url": "https://dms.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + }, { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "dms" + "conditions": [], + "endpoint": { + "url": "https://dms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://dms.us-iso-east-1.c2s.ic.gov", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-iso", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dms.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-iso", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dms.{Region}.c2s.ic.gov", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-iso-b", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dms.{Region}.sc2s.sgov.gov", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "dms" + { + "conditions": [], + "endpoint": { + "url": "https://dms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://dms.us-isob-east-1.sc2s.sgov.gov", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-iso-b", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://dms-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "conditions": [], + "endpoint": { + "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://dms.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/databasemigration/src/main/resources/codegen-resources/endpoint-tests.json b/services/databasemigration/src/main/resources/codegen-resources/endpoint-tests.json index ed11166de918..a0ac7e3530c4 100644 --- a/services/databasemigration/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/databasemigration/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,146 +1,159 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.ap-south-2.api.aws" + "url": "https://dms.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-2" + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.ap-south-2.amazonaws.com" + "url": "https://dms.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-south-2" + "Region": "ap-east-1" } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.ap-south-2.api.aws" + "url": "https://dms.ap-northeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-2" + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.ap-south-2.amazonaws.com" + "url": "https://dms.ap-northeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-south-2" + "Region": "ap-northeast-2" } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.ap-south-1.api.aws" + "url": "https://dms.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.ap-south-1.amazonaws.com" + "url": "https://dms.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, "Region": "ap-south-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.ap-south-1.api.aws" + "url": "https://dms.ap-southeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.ap-south-1.amazonaws.com" + "url": "https://dms.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-south-1" + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-south-1.api.aws" + "url": "https://dms.ap-southeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-south-1.amazonaws.com" + "url": "https://dms.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-south-1" + "Region": "ca-central-1" } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.eu-south-1.api.aws" + "url": "https://dms.eu-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-1" + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" } }, { @@ -157,1535 +170,437 @@ } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-south-2.api.aws" + "url": "https://dms.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-2" + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-south-2.amazonaws.com" + "url": "https://dms.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-south-2" + "Region": "eu-west-2" } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.eu-south-2.api.aws" + "url": "https://dms.eu-west-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-2" + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.eu-south-2.amazonaws.com" + "url": "https://dms.me-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-south-2" + "Region": "me-south-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.us-gov-east-1.api.aws" + "url": "https://dms.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.us-gov-east-1.amazonaws.com" + "url": "https://dms.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "us-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.us-gov-east-1.api.aws" + "url": "https://dms-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.us-gov-east-1.amazonaws.com" + "url": "https://dms.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "us-east-2" } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.me-central-1.api.aws" + "url": "https://dms-fips.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "me-central-1" + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.me-central-1.amazonaws.com" + "url": "https://dms.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "me-central-1" + "Region": "us-west-1" } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.me-central-1.api.aws" + "url": "https://dms-fips.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-central-1" + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.me-central-1.amazonaws.com" + "url": "https://dms.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "me-central-1" + "Region": "us-west-2" } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.ca-central-1.api.aws" + "url": "https://dms-fips.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dms-fips.ca-central-1.amazonaws.com" + "url": "https://dms-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "ca-central-1" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dms.ca-central-1.api.aws" + "url": "https://dms.us-east-1.api.aws" } }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "ca-central-1" + "Region": "us-east-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.ca-central-1.amazonaws.com" + "url": "https://dms.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ca-central-1" + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-central-1.api.aws" + "url": "https://dms-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, "UseDualStack": true, - "Region": "eu-central-1" + "Region": "cn-north-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-central-1.amazonaws.com" + "url": "https://dms-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-1" + "Region": "cn-north-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dms.eu-central-1.api.aws" + "url": "https://dms.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "eu-central-1" + "Region": "cn-north-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.eu-central-1.amazonaws.com" + "url": "https://dms.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://dms.us-gov-east-1.amazonaws.com" + } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-west-1" + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.us-iso-west-1.c2s.ic.gov" + "url": "https://dms.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-west-1" + "Region": "us-gov-west-1" } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-central-2.api.aws" + "url": "https://dms.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-2" + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dms-fips.eu-central-2.amazonaws.com" + "url": "https://dms-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-2" + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dms.eu-central-2.api.aws" + "url": "https://dms.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "eu-central-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.eu-central-2.amazonaws.com" + "url": "https://dms.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.us-west-1.api.aws" + "url": "https://dms.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-1" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.us-west-1.amazonaws.com" + "url": "https://dms.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-west-1" + "Region": "us-iso-west-1" } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.us-west-1.api.aws" + "url": "https://dms.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-1" + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-west-1" } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-4.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-4" - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.ap-southeast-4.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-4" - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-4.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-4" - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.ap-southeast-4.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-4" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms.us-east-2.amazonaws.com" + "url": "https://dms.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-northwest-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dms-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://dms.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dms.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dms.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://dms.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1" + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1694,7 +609,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, diff --git a/services/databasemigration/src/main/resources/codegen-resources/paginators-1.json b/services/databasemigration/src/main/resources/codegen-resources/paginators-1.json index 3edda069e559..96cc3488ff04 100644 --- a/services/databasemigration/src/main/resources/codegen-resources/paginators-1.json +++ b/services/databasemigration/src/main/resources/codegen-resources/paginators-1.json @@ -75,6 +75,16 @@ "output_token": "Marker", "limit_key": "MaxRecords" }, + "DescribeRecommendationLimitations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords" + }, + "DescribeRecommendations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords" + }, "DescribeReplicationInstanceTaskLogs": { "input_token": "Marker", "output_token": "Marker", diff --git a/services/databasemigration/src/main/resources/codegen-resources/service-2.json b/services/databasemigration/src/main/resources/codegen-resources/service-2.json index 34eeb4e2fd18..476a4f49a4ff 100644 --- a/services/databasemigration/src/main/resources/codegen-resources/service-2.json +++ b/services/databasemigration/src/main/resources/codegen-resources/service-2.json @@ -23,7 +23,7 @@ "errors":[ {"shape":"ResourceNotFoundFault"} ], - "documentation":"

Adds metadata tags to an DMS resource, including replication instance, endpoint, security group, and migration task. These tags can also be used with cost allocation reporting to track cost associated with DMS resources, or used in a Condition statement in an IAM policy for DMS. For more information, see Tag data type description.

" + "documentation":"

Adds metadata tags to an DMS resource, including replication instance, endpoint, subnet group, and migration task. These tags can also be used with cost allocation reporting to track cost associated with DMS resources, or used in a Condition statement in an IAM policy for DMS. For more information, see Tag data type description.

" }, "ApplyPendingMaintenanceAction":{ "name":"ApplyPendingMaintenanceAction", @@ -38,6 +38,21 @@ ], "documentation":"

Applies a pending maintenance action to a resource (for example, to a replication instance).

" }, + "BatchStartRecommendations":{ + "name":"BatchStartRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchStartRecommendationsRequest"}, + "output":{"shape":"BatchStartRecommendationsResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"AccessDeniedFault"}, + {"shape":"ResourceNotFoundFault"} + ], + "documentation":"

Starts the analysis of up to 20 source databases to recommend target engines for each source database. This is a batch version of StartRecommendations.

The result of analysis of each source database is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.

" + }, "CancelReplicationTaskAssessmentRun":{ "name":"CancelReplicationTaskAssessmentRun", "http":{ @@ -515,6 +530,34 @@ ], "documentation":"

For internal use only

" }, + "DescribeRecommendationLimitations":{ + "name":"DescribeRecommendationLimitations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRecommendationLimitationsRequest"}, + "output":{"shape":"DescribeRecommendationLimitationsResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"AccessDeniedFault"} + ], + "documentation":"

Returns a paginated list of limitations for recommendations of target Amazon Web Services engines.

" + }, + "DescribeRecommendations":{ + "name":"DescribeRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRecommendationsRequest"}, + "output":{"shape":"DescribeRecommendationsResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"AccessDeniedFault"} + ], + "documentation":"

Returns a paginated list of target engine recommendations for your source databases.

" + }, "DescribeRefreshSchemasStatus":{ "name":"DescribeRefreshSchemasStatus", "http":{ @@ -675,7 +718,7 @@ "errors":[ {"shape":"ResourceNotFoundFault"} ], - "documentation":"

Lists all metadata tags attached to an DMS resource, including replication instance, endpoint, security group, and migration task. For more information, see Tag data type description.

" + "documentation":"

Lists all metadata tags attached to an DMS resource, including replication instance, endpoint, subnet group, and migration task. For more information, see Tag data type description.

" }, "ModifyEndpoint":{ "name":"ModifyEndpoint", @@ -840,7 +883,7 @@ "errors":[ {"shape":"ResourceNotFoundFault"} ], - "documentation":"

Removes metadata tags from an DMS resource, including replication instance, endpoint, security group, and migration task. For more information, see Tag data type description.

" + "documentation":"

Removes metadata tags from an DMS resource, including replication instance, endpoint, subnet group, and migration task. For more information, see Tag data type description.

" }, "RunFleetAdvisorLsaAnalysis":{ "name":"RunFleetAdvisorLsaAnalysis", @@ -855,6 +898,20 @@ ], "documentation":"

Runs large-scale assessment (LSA) analysis on every Fleet Advisor collector in your account.

" }, + "StartRecommendations":{ + "name":"StartRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartRecommendationsRequest"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"AccessDeniedFault"}, + {"shape":"ResourceNotFoundFault"} + ], + "documentation":"

Starts the analysis of your source database to provide recommendations of target engines.

You can create recommendations for multiple source databases using BatchStartRecommendations.

" + }, "StartReplicationTask":{ "name":"StartReplicationTask", "http":{ @@ -1078,6 +1135,46 @@ "type":"list", "member":{"shape":"String"} }, + "BatchStartRecommendationsErrorEntry":{ + "type":"structure", + "members":{ + "DatabaseId":{ + "shape":"String", + "documentation":"

The identifier of the source database.

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

The information about the error.

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

The code of an error that occurred during the analysis of the source database.

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

Provides information about the errors that occurred during the analysis of the source database.

" + }, + "BatchStartRecommendationsErrorEntryList":{ + "type":"list", + "member":{"shape":"BatchStartRecommendationsErrorEntry"} + }, + "BatchStartRecommendationsRequest":{ + "type":"structure", + "members":{ + "Data":{ + "shape":"StartRecommendationsRequestEntryList", + "documentation":"

Provides information about source databases to analyze. After this analysis, Fleet Advisor recommends target engines for each source database.

" + } + } + }, + "BatchStartRecommendationsResponse":{ + "type":"structure", + "members":{ + "ErrorEntries":{ + "shape":"BatchStartRecommendationsErrorEntryList", + "documentation":"

A list with error details about the analysis of each source database.

" + } + } + }, "Boolean":{"type":"boolean"}, "BooleanOptional":{"type":"boolean"}, "CancelReplicationTaskAssessmentRunMessage":{ @@ -1620,7 +1717,7 @@ }, "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to true.

Default: true

" + "documentation":"

A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to true.

Default: true

When AutoMinorVersionUpgrade is enabled, DMS uses the current default engine version when you create a replication instance. For example, if you set EngineVersion to a lower version number than the current default version, DMS uses the default version.

If AutoMinorVersionUpgrade isn’t enabled when you create a replication instance, DMS uses the engine version specified by the EngineVersion parameter.

" }, "Tags":{ "shape":"TagList", @@ -1745,7 +1842,7 @@ }, "CdcStopPosition":{ "shape":"String", - "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “

" + "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12“

" }, "Tags":{ "shape":"TagList", @@ -2641,6 +2738,66 @@ }, "documentation":"

" }, + "DescribeRecommendationLimitationsRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

Filters applied to the limitations described in the form of key-value pairs.

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, Fleet Advisor includes a pagination token in the response so that you can retrieve the remaining results.

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

Specifies the unique pagination token that makes it possible to display the next page of results. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeRecommendationLimitationsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The unique pagination token returned for you to pass to a subsequent request. Fleet Advisor returns this token when the number of records in the response is greater than the MaxRecords value. To retrieve the next page, make the call again using the returned token and keeping all other arguments unchanged.

" + }, + "Limitations":{ + "shape":"LimitationList", + "documentation":"

The list of limitations for recommendations of target Amazon Web Services engines.

" + } + } + }, + "DescribeRecommendationsRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

Filters applied to the target engine recommendations described in the form of key-value pairs.

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, Fleet Advisor includes a pagination token in the response so that you can retrieve the remaining results.

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

Specifies the unique pagination token that makes it possible to display the next page of results. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeRecommendationsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The unique pagination token returned for you to pass to a subsequent request. Fleet Advisor returns this token when the number of records in the response is greater than the MaxRecords value. To retrieve the next page, make the call again using the returned token and keeping all other arguments unchanged.

" + }, + "Recommendations":{ + "shape":"RecommendationList", + "documentation":"

The list of recommendations of target engines that Fleet Advisor created for the source database.

" + } + } + }, "DescribeRefreshSchemasStatusMessage":{ "type":"structure", "required":["EndpointArn"], @@ -3497,7 +3654,7 @@ }, "CleanSourceMetadataOnMismatch":{ "shape":"BooleanOptional", - "documentation":"

Adjusts the behavior of DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster. If you need DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to false.

" + "documentation":"

Cleans and recreates table metadata information on the replication instance when a mismatch occurs. For example, in a situation where running an alter DDL on the table could result in different information about the table cached in the replication instance.

" }, "DatabaseName":{ "shape":"String", @@ -3525,11 +3682,11 @@ }, "Port":{ "shape":"IntegerOptional", - "documentation":"

" + "documentation":"

Endpoint TCP port.

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

Endpoint TCP port.

" + "documentation":"

The MySQL host name.

" }, "ServerTimezone":{ "shape":"String", @@ -3763,6 +3920,13 @@ "documentation":"

This request triggered KMS request throttling.

", "exception":true }, + "KafkaSaslMechanism":{ + "type":"string", + "enum":[ + "scram-sha-512", + "plain" + ] + }, "KafkaSecurityProtocol":{ "type":"string", "enum":[ @@ -3846,6 +4010,10 @@ "NoHexPrefix":{ "shape":"BooleanOptional", "documentation":"

Set this optional parameter to true to avoid adding a '0x' prefix to raw data in hexadecimal format. For example, by default, DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target. Use the NoHexPrefix endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.

" + }, + "SaslMechanism":{ + "shape":"KafkaSaslMechanism", + "documentation":"

For SASL/SSL authentication, DMS supports the SCRAM-SHA-512 mechanism by default. DMS versions 3.5.0 and later also support the PLAIN mechanism. To use the PLAIN mechanism, set this parameter to PLAIN.

" } }, "documentation":"

Provides information that describes an Apache Kafka endpoint. This information includes the output format of records applied to the endpoint and details of transaction and control table data information.

" @@ -3900,6 +4068,40 @@ }, "documentation":"

Provides information that describes an Amazon Kinesis Data Stream endpoint. This information includes the output format of records applied to the endpoint and details of transaction and control table data information.

" }, + "Limitation":{ + "type":"structure", + "members":{ + "DatabaseId":{ + "shape":"String", + "documentation":"

The identifier of the source database.

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

The name of the target engine that Fleet Advisor should use in the target engine recommendation. Valid values include \"rds-aurora-mysql\", \"rds-aurora-postgresql\", \"rds-mysql\", \"rds-oracle\", \"rds-sql-server\", and \"rds-postgresql\".

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

The name of the limitation. Describes unsupported database features, migration action items, and other limitations.

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

A description of the limitation. Provides additional information about the limitation, and includes recommended actions that you can take to address or avoid this limitation.

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

The impact of the limitation. You can use this parameter to prioritize limitations that you want to address. Valid values include \"Blocker\", \"High\", \"Medium\", and \"Low\".

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

The type of the limitation, such as action required, upgrade required, and limited feature.

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

Provides information about the limitations of target Amazon Web Services engines.

Your source database might include features that the target Amazon Web Services engine doesn't support. Fleet Advisor lists these features as limitations. You should consider these limitations during database migration. For each limitation, Fleet Advisor recommends an action that you can take to address or avoid this limitation.

" + }, + "LimitationList":{ + "type":"list", + "member":{"shape":"Limitation"} + }, "ListTagsForResourceMessage":{ "type":"structure", "members":{ @@ -3970,7 +4172,7 @@ }, "ServerName":{ "shape":"String", - "documentation":"

Fully qualified domain name of the endpoint.

" + "documentation":"

Fully qualified domain name of the endpoint. For an Amazon RDS SQL Server instance, this is the output of DescribeDBInstances, in the Endpoint.Address field.

" }, "Username":{ "shape":"String", @@ -3995,6 +4197,14 @@ "TrimSpaceInChar":{ "shape":"BooleanOptional", "documentation":"

Use the TrimSpaceInChar source endpoint setting to trim data on CHAR and NCHAR data types during migration. The default value is true.

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

Indicates the mode used to fetch CDC data.

" + }, + "ForceLobLookup":{ + "shape":"BooleanOptional", + "documentation":"

Forces LOB lookup on inline LOB.

" } }, "documentation":"

Provides information that defines a Microsoft SQL Server endpoint.

" @@ -4232,7 +4442,7 @@ }, "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates that minor version upgrades are applied automatically to the replication instance during the maintenance window. Changing this parameter doesn't result in an outage, except in the case described following. The change is asynchronously applied as soon as possible.

An outage does result if these factors apply:

  • This parameter is set to true during the maintenance window.

  • A newer minor version is available.

  • DMS has enabled automatic patching for the given engine version.

" + "documentation":"

A value that indicates that minor version upgrades are applied automatically to the replication instance during the maintenance window. Changing this parameter doesn't result in an outage, except in the case described following. The change is asynchronously applied as soon as possible.

An outage does result if these factors apply:

  • This parameter is set to true during the maintenance window.

  • A newer minor version is available.

  • DMS has enabled automatic patching for the given engine version.

When AutoMinorVersionUpgrade is enabled, DMS uses the current default engine version when you modify a replication instance. For example, if you set EngineVersion to a lower version number than the current default version, DMS uses the default version.

If AutoMinorVersionUpgrade isn’t enabled when you modify a replication instance, DMS uses the engine version specified by the EngineVersion parameter.

" }, "ReplicationInstanceIdentifier":{ "shape":"String", @@ -4321,7 +4531,7 @@ }, "CdcStopPosition":{ "shape":"String", - "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “

" + "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12“

" }, "TaskData":{ "shape":"String", @@ -4439,7 +4649,7 @@ }, "CleanSourceMetadataOnMismatch":{ "shape":"BooleanOptional", - "documentation":"

Adjusts the behavior of DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster. If you need DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to false.

" + "documentation":"

Cleans and recreates table metadata information on the replication instance when a mismatch occurs. For example, in a situation where running an alter DDL on the table could result in different information about the table cached in the replication instance.

" }, "DatabaseName":{ "shape":"String", @@ -4471,7 +4681,7 @@ }, "ServerName":{ "shape":"String", - "documentation":"

Fully qualified domain name of the endpoint.

" + "documentation":"

The host name of the endpoint database.

For an Amazon RDS MySQL instance, this is the output of DescribeDBInstances, in the Endpoint.Address field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, in the Endpoint field.

" }, "ServerTimezone":{ "shape":"String", @@ -4658,7 +4868,7 @@ }, "ServerName":{ "shape":"String", - "documentation":"

Fully qualified domain name of the endpoint.

" + "documentation":"

Fully qualified domain name of the endpoint.

For an Amazon RDS Oracle instance, this is the output of DescribeDBInstances, in the Endpoint.Address field.

" }, "SpatialDataOptionToGeoJsonFunctionName":{ "shape":"String", @@ -4703,6 +4913,10 @@ "TrimSpaceInChar":{ "shape":"BooleanOptional", "documentation":"

Use the TrimSpaceInChar source endpoint setting to trim data on CHAR and NCHAR data types during migration. The default value is true.

" + }, + "ConvertTimestampWithZoneToUTC":{ + "shape":"BooleanOptional", + "documentation":"

When true, converts timestamps with the timezone datatype to their UTC value.

" } }, "documentation":"

Provides information that defines an Oracle endpoint.

" @@ -4859,7 +5073,7 @@ }, "ServerName":{ "shape":"String", - "documentation":"

Fully qualified domain name of the endpoint.

" + "documentation":"

The host name of the endpoint database.

For an Amazon RDS PostgreSQL instance, this is the output of DescribeDBInstances, in the Endpoint.Address field.

For an Aurora PostgreSQL instance, this is the output of DescribeDBClusters, in the Endpoint field.

" }, "Username":{ "shape":"String", @@ -4884,10 +5098,96 @@ "TrimSpaceInChar":{ "shape":"BooleanOptional", "documentation":"

Use the TrimSpaceInChar source endpoint setting to trim data on CHAR and NCHAR data types during migration. The default value is true.

" + }, + "MapBooleanAsBoolean":{ + "shape":"BooleanOptional", + "documentation":"

When true, lets PostgreSQL migrate the boolean type as boolean. By default, PostgreSQL migrates booleans as varchar(5).

" } }, "documentation":"

Provides information that defines a PostgreSQL endpoint.

" }, + "RdsConfiguration":{ + "type":"structure", + "members":{ + "EngineEdition":{ + "shape":"String", + "documentation":"

Describes the recommended target Amazon RDS engine edition.

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

Describes the recommended target Amazon RDS instance type.

" + }, + "InstanceVcpu":{ + "shape":"DoubleOptional", + "documentation":"

Describes the number of virtual CPUs (vCPU) on the recommended Amazon RDS DB instance that meets your requirements.

" + }, + "InstanceMemory":{ + "shape":"DoubleOptional", + "documentation":"

Describes the memory on the recommended Amazon RDS DB instance that meets your requirements.

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

Describes the storage type of the recommended Amazon RDS DB instance that meets your requirements.

Amazon RDS provides three storage types: General Purpose SSD (also known as gp2 and gp3), Provisioned IOPS SSD (also known as io1), and magnetic (also known as standard).

" + }, + "StorageSize":{ + "shape":"IntegerOptional", + "documentation":"

Describes the storage size of the recommended Amazon RDS DB instance that meets your requirements.

" + }, + "StorageIops":{ + "shape":"IntegerOptional", + "documentation":"

Describes the number of I/O operations completed each second (IOPS) on the recommended Amazon RDS DB instance that meets your requirements.

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

Describes the deployment option for the recommended Amazon RDS DB instance. The deployment options include Multi-AZ and Single-AZ deployments. Valid values include \"MULTI_AZ\" and \"SINGLE_AZ\".

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

Provides information that describes the configuration of the recommended target engine on Amazon RDS.

" + }, + "RdsRecommendation":{ + "type":"structure", + "members":{ + "RequirementsToTarget":{ + "shape":"RdsRequirements", + "documentation":"

Supplemental information about the requirements to the recommended target database on Amazon RDS.

" + }, + "TargetConfiguration":{ + "shape":"RdsConfiguration", + "documentation":"

Supplemental information about the configuration of the recommended target database on Amazon RDS.

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

Provides information that describes a recommendation of a target engine on Amazon RDS.

" + }, + "RdsRequirements":{ + "type":"structure", + "members":{ + "EngineEdition":{ + "shape":"String", + "documentation":"

The required target Amazon RDS engine edition.

" + }, + "InstanceVcpu":{ + "shape":"DoubleOptional", + "documentation":"

The required number of virtual CPUs (vCPU) on the Amazon RDS DB instance.

" + }, + "InstanceMemory":{ + "shape":"DoubleOptional", + "documentation":"

The required memory on the Amazon RDS DB instance.

" + }, + "StorageSize":{ + "shape":"IntegerOptional", + "documentation":"

The required Amazon RDS DB instance storage size.

" + }, + "StorageIops":{ + "shape":"IntegerOptional", + "documentation":"

The required number of I/O operations completed each second (IOPS) on your Amazon RDS DB instance.

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

The required deployment option for the Amazon RDS DB instance. Valid values include \"MULTI_AZ\" for Multi-AZ deployments and \"SINGLE_AZ\" for Single-AZ deployments.

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

Provides information that describes the requirements to the target engine on Amazon RDS.

" + }, "RebootReplicationInstanceMessage":{ "type":"structure", "required":["ReplicationInstanceArn"], @@ -4915,6 +5215,72 @@ } } }, + "Recommendation":{ + "type":"structure", + "members":{ + "DatabaseId":{ + "shape":"String", + "documentation":"

The identifier of the source database for which Fleet Advisor provided this recommendation.

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

The name of the target engine. Valid values include \"rds-aurora-mysql\", \"rds-aurora-postgresql\", \"rds-mysql\", \"rds-oracle\", \"rds-sql-server\", and \"rds-postgresql\".

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

The date when Fleet Advisor created the target engine recommendation.

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

The status of the target engine recommendation. Valid values include \"alternate\", \"in-progress\", \"not-viable\", and \"recommended\".

" + }, + "Preferred":{ + "shape":"BooleanOptional", + "documentation":"

Indicates that this target is the rightsized migration destination.

" + }, + "Settings":{ + "shape":"RecommendationSettings", + "documentation":"

The settings in JSON format for the preferred target engine parameters. These parameters include capacity, resource utilization, and the usage type (production, development, or testing).

" + }, + "Data":{ + "shape":"RecommendationData", + "documentation":"

The recommendation of a target engine for the specified source database.

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

Provides information that describes a recommendation of a target engine.

A recommendation is a set of possible Amazon Web Services target engines that you can choose to migrate your source on-premises database. In this set, Fleet Advisor suggests a single target engine as the right sized migration destination. To determine this rightsized migration destination, Fleet Advisor uses the inventory metadata and metrics from data collector. You can use recommendations before the start of migration to save costs and reduce risks.

With recommendations, you can explore different target options and compare metrics, so you can make an informed decision when you choose the migration target.

" + }, + "RecommendationData":{ + "type":"structure", + "members":{ + "RdsEngine":{ + "shape":"RdsRecommendation", + "documentation":"

The recommendation of a target Amazon RDS database engine.

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

Provides information about the target engine for the specified source database.

" + }, + "RecommendationList":{ + "type":"list", + "member":{"shape":"Recommendation"} + }, + "RecommendationSettings":{ + "type":"structure", + "required":[ + "InstanceSizingType", + "WorkloadType" + ], + "members":{ + "InstanceSizingType":{ + "shape":"String", + "documentation":"

The size of your target instance. Fleet Advisor calculates this value based on your data collection type, such as total capacity and resource utilization. Valid values include \"total-capacity\" and \"utilization\".

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

The deployment option for your target engine. For production databases, Fleet Advisor chooses Multi-AZ deployment. For development or test databases, Fleet Advisor chooses Single-AZ deployment. Valid values include \"development\" and \"production\".

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

Provides information about the required target engine settings.

" + }, "RedisAuthTypeValue":{ "type":"string", "enum":[ @@ -5083,6 +5449,10 @@ "SecretsManagerSecretId":{ "shape":"String", "documentation":"

The full ARN, partial ARN, or friendly name of the SecretsManagerSecret that contains the Amazon Redshift endpoint connection details.

" + }, + "MapBooleanAsBoolean":{ + "shape":"BooleanOptional", + "documentation":"

When true, lets Redshift migrate the boolean type as boolean. By default, Redshift migrates booleans as varchar(1).

" } }, "documentation":"

Provides information that defines an Amazon Redshift endpoint.

" @@ -5151,7 +5521,10 @@ }, "ReleaseStatusValues":{ "type":"string", - "enum":["beta"] + "enum":[ + "beta", + "prod" + ] }, "ReloadOptionValue":{ "type":"string", @@ -5495,7 +5868,7 @@ }, "CdcStopPosition":{ "shape":"String", - "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “

" + "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12“

" }, "RecoveryCheckpoint":{ "shape":"String", @@ -5954,6 +6327,10 @@ "ExpectedBucketOwner":{ "shape":"String", "documentation":"

To specify a bucket owner and prevent sniping, you can use the ExpectedBucketOwner endpoint setting.

Example: --s3-settings='{\"ExpectedBucketOwner\": \"AWS_Account_ID\"}'

When you make a request to test a connection or perform a migration, S3 checks the account ID of the bucket owner against the specified parameter.

" + }, + "GlueCatalogGeneration":{ + "shape":"BooleanOptional", + "documentation":"

When true, allows Glue to catalog your S3 bucket. Creating an Glue catalog lets you use Athena to query your data.

" } }, "documentation":"

Settings for exporting data to Amazon S3.

" @@ -6094,6 +6471,45 @@ "ssl-encryption" ] }, + "StartRecommendationsRequest":{ + "type":"structure", + "required":[ + "DatabaseId", + "Settings" + ], + "members":{ + "DatabaseId":{ + "shape":"String", + "documentation":"

The identifier of the source database to analyze and provide recommendations for.

" + }, + "Settings":{ + "shape":"RecommendationSettings", + "documentation":"

The settings in JSON format that Fleet Advisor uses to determine target engine recommendations. These parameters include target instance sizing and availability and durability settings. For target instance sizing, Fleet Advisor supports the following two options: total capacity and resource utilization. For availability and durability, Fleet Advisor supports the following two options: production (Multi-AZ deployments) and Dev/Test (Single-AZ deployments).

" + } + } + }, + "StartRecommendationsRequestEntry":{ + "type":"structure", + "required":[ + "DatabaseId", + "Settings" + ], + "members":{ + "DatabaseId":{ + "shape":"String", + "documentation":"

The identifier of the source database.

" + }, + "Settings":{ + "shape":"RecommendationSettings", + "documentation":"

The required target engine settings.

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

Provides information about the source database to analyze and provide target recommendations according to the specified requirements.

" + }, + "StartRecommendationsRequestEntryList":{ + "type":"list", + "member":{"shape":"StartRecommendationsRequestEntry"} + }, "StartReplicationTaskAssessmentMessage":{ "type":"structure", "required":["ReplicationTaskArn"], @@ -6186,7 +6602,7 @@ }, "StartReplicationTaskType":{ "shape":"StartReplicationTaskTypeValue", - "documentation":"

The type of replication task to start.

When the migration type is full-load or full-load-and-cdc, the only valid value for the first run of the task is start-replication. You use reload-target to restart the task and resume-processing to resume the task.

When the migration type is cdc, you use start-replication to start or restart the task, and resume-processing to resume the task. reload-target is not a valid value for a task with migration type of cdc.

" + "documentation":"

The type of replication task to start.

When the migration type is full-load or full-load-and-cdc, the only valid value for the first run of the task is start-replication. This option will start the migration.

You can also use ReloadTables to reload specific tables that failed during migration instead of restarting the task.

The resume-processing option isn't applicable for a full-load task, because you can't resume partially loaded tables during the full load phase.

For a full-load-and-cdc task, DMS migrates table data, and then applies data changes that occur on the source. To load all the tables again, and start capturing source changes, use reload-target. Otherwise use resume-processing, to replicate the changes from the last stop position.

" }, "CdcStartTime":{ "shape":"TStamp", @@ -6198,7 +6614,7 @@ }, "CdcStopPosition":{ "shape":"String", - "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “

" + "documentation":"

Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12“

" } }, "documentation":"

" @@ -6541,6 +6957,15 @@ }, "documentation":"

" }, + "TlogAccessMode":{ + "type":"string", + "enum":[ + "BackupOnly", + "PreferBackup", + "PreferTlog", + "TlogOnly" + ] + }, "UpdateSubscriptionsToEventBridgeMessage":{ "type":"structure", "members":{ diff --git a/services/databrew/pom.xml b/services/databrew/pom.xml index d29c674a0042..412d87dc3466 100644 --- a/services/databrew/pom.xml +++ b/services/databrew/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT databrew AWS Java SDK :: Services :: Data Brew diff --git a/services/dataexchange/pom.xml b/services/dataexchange/pom.xml index 59085a2faebd..fc4924ace3c3 100644 --- a/services/dataexchange/pom.xml +++ b/services/dataexchange/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT dataexchange AWS Java SDK :: Services :: DataExchange diff --git a/services/dataexchange/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/dataexchange/src/main/resources/codegen-resources/endpoint-rule-set.json index 6c8aa80368d2..1efff28c887e 100644 --- a/services/dataexchange/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/dataexchange/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dataexchange-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dataexchange-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://dataexchange-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dataexchange.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://dataexchange-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://dataexchange.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://dataexchange.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://dataexchange.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/dataexchange/src/main/resources/codegen-resources/endpoint-tests.json b/services/dataexchange/src/main/resources/codegen-resources/endpoint-tests.json index 04b505dca707..d25d3633ad59 100644 --- a/services/dataexchange/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/dataexchange/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,579 +1,403 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.eu-central-1.amazonaws.com" + "url": "https://dataexchange.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.eu-central-1.amazonaws.com" + "url": "https://dataexchange.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "Region": "eu-central-1", "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.us-west-1.amazonaws.com" + "url": "https://dataexchange.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.us-west-1.amazonaws.com" + "url": "https://dataexchange.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "us-west-1", "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.us-west-2.amazonaws.com" + "url": "https://dataexchange.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.us-west-2.amazonaws.com" + "url": "https://dataexchange.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "us-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.eu-west-2.api.aws" + "url": "https://dataexchange.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dataexchange-fips.eu-west-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.eu-west-2.amazonaws.com" + "url": "https://dataexchange.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.eu-west-1.amazonaws.com" + "url": "https://dataexchange.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.eu-west-1.api.aws" + "url": "https://dataexchange.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-west-1", + "Region": "us-west-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.eu-west-1.amazonaws.com" + "url": "https://dataexchange.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "eu-west-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.ap-northeast-2.api.aws" + "url": "https://dataexchange-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.ap-northeast-2.amazonaws.com" + "url": "https://dataexchange-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "ap-northeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataexchange.ap-northeast-2.api.aws" + "url": "https://dataexchange.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataexchange.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange-fips.ap-northeast-1.api.aws" + "url": "https://dataexchange-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-northeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.ap-northeast-1.amazonaws.com" + "url": "https://dataexchange-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-northeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataexchange.ap-northeast-1.api.aws" + "url": "https://dataexchange.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-northeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.ap-northeast-1.amazonaws.com" + "url": "https://dataexchange.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-northeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.ap-southeast-1.api.aws" + "url": "https://dataexchange-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.ap-southeast-1.amazonaws.com" + "url": "https://dataexchange-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dataexchange.ap-southeast-1.api.aws" + "url": "https://dataexchange.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.ap-southeast-1.amazonaws.com" + "url": "https://dataexchange.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://dataexchange-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.ap-southeast-2.amazonaws.com" + "url": "https://dataexchange-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://dataexchange.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.ap-southeast-2.amazonaws.com" + "url": "https://dataexchange.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://dataexchange-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.us-east-1.amazonaws.com" + "url": "https://dataexchange-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://dataexchange.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dataexchange.us-east-1.amazonaws.com" + "url": "https://dataexchange.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://dataexchange-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dataexchange-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dataexchange.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dataexchange.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -581,7 +405,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -592,8 +415,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -604,11 +427,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/dataexchange/src/main/resources/codegen-resources/service-2.json b/services/dataexchange/src/main/resources/codegen-resources/service-2.json index 8e87e382241d..ca14273651d1 100644 --- a/services/dataexchange/src/main/resources/codegen-resources/service-2.json +++ b/services/dataexchange/src/main/resources/codegen-resources/service-2.json @@ -2258,6 +2258,22 @@ "DATA_SET" ] }, + "KmsKeyArn":{ + "type":"string", + "max":2048, + "min":1 + }, + "KmsKeyToGrant":{ + "type":"structure", + "required":["KmsKeyArn"], + "members":{ + "KmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The AWS KMS CMK (Key Management System Customer Managed Key) used to encrypt S3 objects in the shared S3 Bucket. AWS Data exchange will create a KMS grant for each subscriber to allow them to access and decrypt their entitled data that is encrypted using this KMS key specified.

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

The Amazon Resource Name (ARN) of the AWS KMS key used to encrypt the shared S3 objects.

" + }, "LFPermission":{ "type":"string", "enum":[ @@ -2584,6 +2600,12 @@ "type":"list", "member":{"shape":"JobError"} }, + "ListOfKmsKeysToGrant":{ + "type":"list", + "member":{"shape":"KmsKeyToGrant"}, + "max":10, + "min":1 + }, "ListOfLFPermissions":{ "type":"list", "member":{"shape":"LFPermission"} @@ -2691,7 +2713,7 @@ }, "MaxResults":{ "type":"integer", - "max":25, + "max":200, "min":1 }, "Name":{"type":"string"}, @@ -3050,6 +3072,10 @@ "S3AccessPointArn":{ "shape":"__string", "documentation":"

The ARN for your Amazon S3 Access Point. Customers can also access their entitled data using the S3 Access Point ARN.

" + }, + "KmsKeysToGrant":{ + "shape":"ListOfKmsKeysToGrant", + "documentation":"

List of AWS KMS CMKs (Key Management System Customer Managed Keys) and ARNs used to encrypt S3 objects being shared in this S3 Data Access asset. Providers must include all AWS KMS keys used to encrypt these shared S3 objects.

" } }, "documentation":"

The Amazon S3 data access that is the asset.

" @@ -3069,6 +3095,10 @@ "Keys":{ "shape":"ListOf__string", "documentation":"

The keys used to create the Amazon S3 data access.

" + }, + "KmsKeysToGrant":{ + "shape":"ListOfKmsKeysToGrant", + "documentation":"

List of AWS KMS CMKs (Key Management System Customer Managed Keys) and ARNs used to encrypt S3 objects being shared in this S3 Data Access asset.

" } }, "documentation":"

Source details for an Amazon S3 data access asset.

" diff --git a/services/datapipeline/pom.xml b/services/datapipeline/pom.xml index dcf39284f336..f9292090ddc6 100644 --- a/services/datapipeline/pom.xml +++ b/services/datapipeline/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT datapipeline AWS Java SDK :: Services :: AWS Data Pipeline diff --git a/services/datasync/pom.xml b/services/datasync/pom.xml index 0ba34cf336c5..2212af382636 100644 --- a/services/datasync/pom.xml +++ b/services/datasync/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT datasync AWS Java SDK :: Services :: DataSync diff --git a/services/datasync/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/datasync/src/main/resources/codegen-resources/endpoint-rule-set.json index 4593ca9438a3..d1fda177e764 100644 --- a/services/datasync/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/datasync/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datasync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datasync-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://datasync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datasync.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://datasync-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://datasync.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://datasync.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://datasync.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/datasync/src/main/resources/codegen-resources/endpoint-tests.json b/services/datasync/src/main/resources/codegen-resources/endpoint-tests.json index 974854e93929..cd873b96aa53 100644 --- a/services/datasync/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/datasync/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1514 +1,536 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.me-south-1.amazonaws.com" + "url": "https://datasync.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.sa-east-1.api.aws" + "url": "https://datasync.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "sa-east-1" + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.sa-east-1.amazonaws.com" + "url": "https://datasync.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "sa-east-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.sa-east-1.api.aws" + "url": "https://datasync.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.sa-east-1.amazonaws.com" + "url": "https://datasync.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-east-1.api.aws" + "url": "https://datasync.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-east-1" + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-east-1.amazonaws.com" + "url": "https://datasync.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-east-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.ap-east-1.api.aws" + "url": "https://datasync.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.ap-east-1.amazonaws.com" + "url": "https://datasync.ap-southeast-3.amazonaws.com" } }, "params": { + "Region": "ap-southeast-3", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://datasync.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.cn-north-1.amazonaws.com.cn" + "url": "https://datasync-fips.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://datasync.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.cn-north-1.amazonaws.com.cn" + "url": "https://datasync.eu-north-1.amazonaws.com" } }, "params": { + "Region": "eu-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.us-gov-west-1.amazonaws.com" + "url": "https://datasync.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.us-gov-west-1.api.aws" + "url": "https://datasync.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.us-gov-west-1.amazonaws.com" + "url": "https://datasync.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-southeast-1.api.aws" + "url": "https://datasync.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-southeast-1.amazonaws.com" + "url": "https://datasync.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-1" + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.ap-southeast-1.api.aws" + "url": "https://datasync.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.ap-southeast-1.amazonaws.com" + "url": "https://datasync.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-southeast-2.api.aws" + "url": "https://datasync-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-southeast-2.amazonaws.com" + "url": "https://datasync.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.ap-southeast-2.api.aws" + "url": "https://datasync-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.ap-southeast-2.amazonaws.com" + "url": "https://datasync.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://datasync-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.us-iso-east-1.c2s.ic.gov" + "url": "https://datasync.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-southeast-3.api.aws" + "url": "https://datasync-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://datasync-fips.ap-southeast-3.amazonaws.com" + "url": "https://datasync-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://datasync.ap-southeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://datasync.ap-southeast-3.amazonaws.com" + "url": "https://datasync.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://datasync-fips.us-east-1.api.aws" + "url": "https://datasync-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.us-east-1.amazonaws.com" + "url": "https://datasync-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://datasync.us-east-1.api.aws" + "url": "https://datasync.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.us-east-1.amazonaws.com" + "url": "https://datasync.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.us-east-2.api.aws" + "url": "https://datasync.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync-fips.us-east-2.amazonaws.com" + "url": "https://datasync-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.us-east-2.api.aws" + "url": "https://datasync.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.us-east-2.amazonaws.com" + "url": "https://datasync-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://datasync-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://datasync-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://datasync-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://datasync.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-northwest-1" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://datasync-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://datasync.cn-northwest-1.amazonaws.com.cn" + "url": "https://datasync.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { @@ -1519,37 +541,40 @@ } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://datasync.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://datasync.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1558,7 +583,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1568,9 +592,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1580,9 +604,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/datasync/src/main/resources/codegen-resources/service-2.json b/services/datasync/src/main/resources/codegen-resources/service-2.json index ad611db5e9d5..e72ab54e82bf 100644 --- a/services/datasync/src/main/resources/codegen-resources/service-2.json +++ b/services/datasync/src/main/resources/codegen-resources/service-2.json @@ -166,7 +166,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Creates an endpoint for an Amazon S3 bucket that DataSync can access for a transfer.

For more information, see Create an Amazon S3 location in the DataSync User Guide.

" + "documentation":"

Creates an endpoint for an Amazon S3 bucket that DataSync can access for a transfer. For more information, see Create an Amazon S3 location.

" }, "CreateLocationSmb":{ "name":"CreateLocationSmb", @@ -180,7 +180,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Defines a file system on a Server Message Block (SMB) server that can be read from or written to.

" + "documentation":"

Creates an endpoint for a Server Message Block (SMB) file server that DataSync can access for a transfer. For more information, see Creating an SMB location.

" }, "CreateTask":{ "name":"CreateTask", @@ -250,7 +250,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Returns metadata such as the name, the network interfaces, and the status (that is, whether the agent is running or not) for an agent. To specify which agent to describe, use the Amazon Resource Name (ARN) of the agent in your request.

" + "documentation":"

Returns metadata about an DataSync agent, such as its name, endpoint type, and status.

" }, "DescribeLocationEfs":{ "name":"DescribeLocationEfs", @@ -432,7 +432,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Returns a list of agents owned by an Amazon Web Services account in the Amazon Web Services Region specified in the request. The returned list is ordered by agent Amazon Resource Name (ARN).

By default, this operation returns a maximum of 100 agents. This operation supports pagination that enables you to optionally reduce the number of agents returned in a response.

If you have more agents than are returned in a response (that is, the response returns only a truncated list of your agents), the response contains a marker that you can specify in your next request to fetch the next page of agents.

" + "documentation":"

Returns a list of DataSync agents that belong to an Amazon Web Services account in the Amazon Web Services Region specified in the request.

With pagination, you can reduce the number of agents returned in a response. If you get a truncated list of agents in a response, the response contains a marker that you can specify in your next request to fetch the next page of agents.

ListAgents is eventually consistent. This means the result of running the operation might not reflect that you just created or deleted an agent. For example, if you create an agent with CreateAgent and then immediately run ListAgents, that agent might not show up in the list right away. In situations like this, you can always confirm whether an agent has been created (or deleted) by using DescribeAgent.

" }, "ListLocations":{ "name":"ListLocations", @@ -657,18 +657,18 @@ "members":{ "AgentArn":{ "shape":"AgentArn", - "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + "documentation":"

The Amazon Resource Name (ARN) of a DataSync agent.

" }, "Name":{ "shape":"TagValue", - "documentation":"

The name of the agent.

" + "documentation":"

The name of an agent.

" }, "Status":{ "shape":"AgentStatus", - "documentation":"

The status of the agent.

" + "documentation":"

The status of an agent. For more information, see DataSync agent statuses.

" } }, - "documentation":"

Represents a single entry in a list of agents. AgentListEntry returns an array that contains a list of agents when the ListAgents operation is called.

" + "documentation":"

Represents a single entry in a list (or array) of DataSync agents when you call the ListAgents operation.

" }, "AgentStatus":{ "type":"string", @@ -842,11 +842,11 @@ }, "StorageVirtualMachineArn":{ "shape":"StorageVirtualMachineArn", - "documentation":"

Specifies the ARN of the storage virtual machine (SVM) on your file system where you're copying data to or from.

" + "documentation":"

Specifies the ARN of the storage virtual machine (SVM) in your file system where you want to copy data to or from.

" }, "Subdirectory":{ "shape":"FsxOntapSubdirectory", - "documentation":"

Specifies the junction path (also known as a mount point) in the SVM volume where you're copying data to or from (for example, /vol1).

Don't specify a junction path in the SVM's root volume. For more information, see Managing FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP User Guide.

" + "documentation":"

Specifies a path to the file share in the SVM where you'll copy your data.

You can specify a junction path (also known as a mount point), qtree path (for NFS file shares), or share name (for SMB file shares). For example, your mount path might be /vol1, /vol1/tree1, or /share1.

Don't specify a junction path in the SVM's root volume. For more information, see Managing FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP User Guide.

" }, "Tags":{ "shape":"InputTagList", @@ -1176,35 +1176,35 @@ "members":{ "Subdirectory":{ "shape":"SmbSubdirectory", - "documentation":"

The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path. The path should be such that it can be mounted by other SMB clients in your network.

Subdirectory must be specified with forward slashes. For example, /path/to/folder.

To transfer all the data in the folder you specified, DataSync needs to have permissions to mount the SMB share, as well as to access all the data in that share. To ensure this, either ensure that the user/password specified belongs to the user who can mount the share, and who has the appropriate permissions for all of the files and directories that you want DataSync to access, or use credentials of a member of the Backup Operators group to mount the share. Doing either enables the agent to access the data. For the agent to access directories, you must additionally enable all execute access.

" + "documentation":"

Specifies the name of the share exported by your SMB file server where DataSync will read or write data. You can include a subdirectory in the share path (for example, /path/to/subdirectory). Make sure that other SMB clients in your network can also mount this path.

To copy all data in the specified subdirectory, DataSync must be able to mount the SMB share and access all of its data. For more information, see required permissions for SMB locations.

" }, "ServerHostname":{ "shape":"ServerHostname", - "documentation":"

The name of the SMB server. This value is the IP address or Domain Name Service (DNS) name of the SMB server. An agent that is installed on-premises uses this hostname to mount the SMB server in a network.

This name must either be DNS-compliant or must be an IP version 4 (IPv4) address.

" + "documentation":"

Specifies the Domain Name Service (DNS) name or IP address of the SMB file server that your DataSync agent will mount.

You can't specify an IP version 6 (IPv6) address.

" }, "User":{ "shape":"SmbUser", - "documentation":"

The user who can mount the share, has the permissions to access files and folders in the SMB share.

For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see the User setting for SMB locations.

" + "documentation":"

Specifies the user name that can mount your SMB file server and has permission to access the files and folders involved in your transfer.

For information about choosing a user with the right level of access for your transfer, see required permissions for SMB locations.

" }, "Domain":{ "shape":"SmbDomain", - "documentation":"

The name of the Windows domain that the SMB server belongs to.

" + "documentation":"

Specifies the Windows domain name that your SMB file server belongs to.

For more information, see required permissions for SMB locations.

" }, "Password":{ "shape":"SmbPassword", - "documentation":"

The password of the user who can mount the share, has the permissions to access files and folders in the SMB share.

" + "documentation":"

Specifies the password of the user who can mount your SMB file server and has permission to access the files and folders involved in your transfer.

For more information, see required permissions for SMB locations.

" }, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location.

" + "documentation":"

Specifies the DataSync agent (or agents) which you want to connect to your SMB file server. You specify an agent by using its Amazon Resource Name (ARN).

" }, "MountOptions":{ "shape":"SmbMountOptions", - "documentation":"

The mount options used by DataSync to access the SMB server.

" + "documentation":"

Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.

" }, "Tags":{ "shape":"InputTagList", - "documentation":"

The key-value pair that represents the tag that you want to add to the location. The value can be an empty string. We recommend using tags to name your resources.

" + "documentation":"

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.

" } }, "documentation":"

CreateLocationSmbRequest

" @@ -1214,7 +1214,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the source SMB file system location that is created.

" + "documentation":"

The ARN of the SMB location that you created.

" } }, "documentation":"

CreateLocationSmbResponse

" @@ -1329,7 +1329,7 @@ "members":{ "AgentArn":{ "shape":"AgentArn", - "documentation":"

The Amazon Resource Name (ARN) of the agent to describe.

" + "documentation":"

Specifies the Amazon Resource Name (ARN) of the DataSync agent to describe.

" } }, "documentation":"

DescribeAgent

" @@ -1339,7 +1339,7 @@ "members":{ "AgentArn":{ "shape":"AgentArn", - "documentation":"

The Amazon Resource Name (ARN) of the agent.

" + "documentation":"

The ARN of the agent.

" }, "Name":{ "shape":"TagValue", @@ -2267,11 +2267,11 @@ "members":{ "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of agents to list.

" + "documentation":"

Specifies the maximum number of DataSync agents to list in a response. By default, a response shows a maximum of 100 agents.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

An opaque string that indicates the position at which to begin the next list of agents.

" + "documentation":"

Specifies an opaque string that indicates the position to begin the next list of results in the response.

" } }, "documentation":"

ListAgentsRequest

" @@ -2281,11 +2281,11 @@ "members":{ "Agents":{ "shape":"AgentList", - "documentation":"

A list of agents in your account.

" + "documentation":"

A list of DataSync agents in your Amazon Web Services account in the Amazon Web Services Region specified in the request. The list is ordered by the agents' Amazon Resource Names (ARNs).

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

An opaque string that indicates the position at which to begin returning the next list of agents.

" + "documentation":"

The opaque string that indicates the position to begin the next list of results in the response.

" } }, "documentation":"

ListAgentsResponse

" @@ -2544,7 +2544,7 @@ "ObjectStorageAccessKey":{ "type":"string", "max":200, - "min":8, + "min":1, "pattern":"^.+$" }, "ObjectStorageBucketName":{ @@ -2560,7 +2560,7 @@ "ObjectStorageSecretKey":{ "type":"string", "max":200, - "min":8, + "min":1, "pattern":"^.+$", "sensitive":true }, @@ -2619,7 +2619,7 @@ }, "OverwriteMode":{ "shape":"OverwriteMode", - "documentation":"

Specifies whether data at the destination location should be overwritten or preserved. If set to NEVER, a destination file for example will not be replaced by a source file (even if the destination file differs from the source file). If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.

Some storage classes have specific behaviors that can affect your Amazon S3 storage cost. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync .

" + "documentation":"

Specifies whether data at the destination location should be overwritten or preserved. If set to NEVER, a destination file for example will not be replaced by a source file (even if the destination file differs from the source file). If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.

Some storage classes have specific behaviors that can affect your Amazon S3 storage cost. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

" }, "Atime":{ "shape":"Atime", @@ -2639,7 +2639,7 @@ }, "PreserveDeletedFiles":{ "shape":"PreserveDeletedFiles", - "documentation":"

Specifies whether files in the destination location that don't exist in the source should be preserved. This option can affect your Amazon S3 storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync .

Default value: PRESERVE

PRESERVE: Ignore such destination files (recommended).

REMOVE: Delete destination files that aren’t present in the source.

" + "documentation":"

Specifies whether files in the destination location that don't exist in the source should be preserved. This option can affect your Amazon S3 storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

Default value: PRESERVE

PRESERVE: Ignore such destination files (recommended).

REMOVE: Delete destination files that aren’t present in the source.

If you set this parameter to REMOVE, you can't set TransferMode to ALL. When you transfer all data, DataSync doesn't scan your destination location and doesn't know what to delete.

" }, "PreserveDevices":{ "shape":"PreserveDevices", @@ -2820,10 +2820,10 @@ "members":{ "Version":{ "shape":"SmbVersion", - "documentation":"

Specifies the SMB version that you want DataSync to use when mounting your SMB share. If you don't specify a version, DataSync defaults to AUTOMATIC and chooses a version based on negotiation with the SMB server.

" + "documentation":"

By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically.

These are the following options for configuring the SMB version:

  • AUTOMATIC (default): DataSync and the SMB file server negotiate a protocol version that they mutually support. (DataSync supports SMB versions 1.0 and later.)

    This is the recommended option. If you instead choose a specific version that your file server doesn't support, you may get an Operation Not Supported error.

  • SMB3: Restricts the protocol negotiation to only SMB version 3.0.2.

  • SMB2: Restricts the protocol negotiation to only SMB version 2.1.

  • SMB2_0: Restricts the protocol negotiation to only SMB version 2.0.

  • SMB1: Restricts the protocol negotiation to only SMB version 1.0.

    The SMB1 option isn't available when creating an Amazon FSx for NetApp ONTAP location.

" } }, - "documentation":"

Specifies how DataSync can access a location using the SMB protocol.

" + "documentation":"

Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.

" }, "SmbPassword":{ "type":"string", @@ -2854,7 +2854,9 @@ "enum":[ "AUTOMATIC", "SMB2", - "SMB3" + "SMB3", + "SMB1", + "SMB2_0" ] }, "SourceNetworkInterfaceArns":{ diff --git a/services/dax/pom.xml b/services/dax/pom.xml index 2b3298ffb898..26fe53a17075 100644 --- a/services/dax/pom.xml +++ b/services/dax/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT dax AWS Java SDK :: Services :: Amazon DynamoDB Accelerator (DAX) diff --git a/services/detective/pom.xml b/services/detective/pom.xml index 9dbce14ffc89..f1af8b16d04c 100644 --- a/services/detective/pom.xml +++ b/services/detective/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT detective AWS Java SDK :: Services :: Detective diff --git a/services/devicefarm/pom.xml b/services/devicefarm/pom.xml index b4bbba1926bc..bf1e694fbd46 100644 --- a/services/devicefarm/pom.xml +++ b/services/devicefarm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT devicefarm AWS Java SDK :: Services :: AWS Device Farm diff --git a/services/devopsguru/pom.xml b/services/devopsguru/pom.xml index 1c26f09d4372..5763e6223369 100644 --- a/services/devopsguru/pom.xml +++ b/services/devopsguru/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT devopsguru AWS Java SDK :: Services :: Dev Ops Guru diff --git a/services/devopsguru/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/devopsguru/src/main/resources/codegen-resources/endpoint-rule-set.json index cc4fecffa0e5..d1ead35506cf 100644 --- a/services/devopsguru/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/devopsguru/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://devops-guru-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://devops-guru-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://devops-guru.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://devops-guru.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://devops-guru.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/devopsguru/src/main/resources/codegen-resources/endpoint-tests.json b/services/devopsguru/src/main/resources/codegen-resources/endpoint-tests.json index 5c3d00cd98c0..c03e296a37ec 100644 --- a/services/devopsguru/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/devopsguru/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,145 +1,41 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.ap-south-1.amazonaws.com" + "url": "https://devops-guru.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "ap-south-1", "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.ca-central-1.amazonaws.com" + "url": "https://devops-guru.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "Region": "ca-central-1", "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.eu-central-1.amazonaws.com" + "url": "https://devops-guru.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", "UseFIPS": false } }, @@ -151,151 +47,8 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.us-west-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", "UseFIPS": false } }, @@ -307,533 +60,300 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.eu-west-3.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "eu-west-3", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.eu-west-2.amazonaws.com" + "url": "https://devops-guru.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.eu-west-2.amazonaws.com" + "url": "https://devops-guru.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "eu-west-2", "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.eu-west-1.amazonaws.com" + "url": "https://devops-guru-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "eu-west-1", "UseFIPS": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.eu-west-1.amazonaws.com" + "url": "https://devops-guru.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "eu-west-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.ap-northeast-2.amazonaws.com" + "url": "https://devops-guru-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "ap-northeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.ap-northeast-2.amazonaws.com" + "url": "https://devops-guru.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "ap-northeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.ap-northeast-1.amazonaws.com" + "url": "https://devops-guru-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "ap-northeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.sa-east-1.api.aws" + "url": "https://devops-guru-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", "UseFIPS": true } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://devops-guru.sa-east-1.api.aws" + "url": "https://devops-guru.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.ap-southeast-1.api.aws" + "url": "https://devops-guru-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.ap-southeast-1.amazonaws.com" + "url": "https://devops-guru-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://devops-guru.ap-southeast-1.api.aws" + "url": "https://devops-guru.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.ap-southeast-1.amazonaws.com" + "url": "https://devops-guru.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.ap-southeast-2.api.aws" + "url": "https://devops-guru-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.ap-southeast-2.amazonaws.com" + "url": "https://devops-guru-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://devops-guru.ap-southeast-2.api.aws" + "url": "https://devops-guru.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.ap-southeast-2.amazonaws.com" + "url": "https://devops-guru.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.us-east-1.amazonaws.com" + "url": "https://devops-guru-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://devops-guru.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.us-east-1.amazonaws.com" + "url": "https://devops-guru.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://devops-guru-fips.us-east-2.amazonaws.com" + "url": "https://devops-guru-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.us-east-2.api.aws" + "url": "https://devops-guru.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", + "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://devops-guru.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -841,7 +361,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -852,8 +371,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -864,8 +383,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/devopsguru/src/main/resources/codegen-resources/service-2.json b/services/devopsguru/src/main/resources/codegen-resources/service-2.json index 92431f56548e..fdb10983689e 100644 --- a/services/devopsguru/src/main/resources/codegen-resources/service-2.json +++ b/services/devopsguru/src/main/resources/codegen-resources/service-2.json @@ -995,7 +995,7 @@ }, "Tags":{ "shape":"TagCostEstimationResourceCollectionFilters", - "documentation":"

The Amazon Web Services tags used to filter the resource collection that is used for a cost estimate.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags used to filter the resource collection that is used for a cost estimate.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

Information about a filter used to specify which Amazon Web Services resources are analyzed to create a monthly DevOps Guru cost estimate. For more information, see Estimate your Amazon DevOps Guru costs and Amazon DevOps Guru pricing.

" @@ -1347,7 +1347,7 @@ }, "Tags":{ "shape":"TagHealths", - "documentation":"

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } } }, @@ -1386,7 +1386,7 @@ }, "Tags":{ "shape":"TagHealths", - "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } } }, @@ -2717,6 +2717,10 @@ "AnomalyResources":{ "shape":"AnomalyResources", "documentation":"

Information about a resource in which DevOps Guru detected anomalous behavior.

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

A description of the proactive anomaly.

" } }, "documentation":"

Information about an anomaly. This object is returned by ListAnomalies.

" @@ -2766,6 +2770,10 @@ "AnomalyResources":{ "shape":"AnomalyResources", "documentation":"

Information about a resource in which DevOps Guru detected anomalous behavior.

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

A description of the proactive anomaly.

" } }, "documentation":"

Details about a proactive anomaly. This object is returned by DescribeAnomaly.

" @@ -3296,7 +3304,7 @@ }, "Tags":{ "shape":"TagCollections", - "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

A collection of Amazon Web Services resources supported by DevOps Guru. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag key. You can specify up to 500 Amazon Web Services CloudFormation stacks.

" @@ -3310,7 +3318,7 @@ }, "Tags":{ "shape":"TagCollectionFilters", - "documentation":"

The Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

Information about a filter used to specify which Amazon Web Services resources are analyzed for anomalous behavior by DevOps Guru.

" @@ -3422,7 +3430,7 @@ "documentation":"

A collection of the names of Amazon Web Services services.

" } }, - "documentation":"

Specifies one or more severity values and one or more status values that are used to search for insights.

" + "documentation":"

Specifies values used to filter responses when searching for insights. You can use a ResourceCollection, ServiceCollection, array of severities, and an array of status values. Each filter type contains one or more values to search for. If you specify multiple filter types, the filter types are joined with an AND, and the request returns only results that match all of the specified filters.

" }, "SearchInsightsMaxResults":{ "type":"integer", @@ -3753,7 +3761,7 @@ "documentation":"

The values in an Amazon Web Services tag collection.

The tag's value is an optional field used to associate a string with the tag key (for example, 111122223333, Production, or a team name). The key and value are the tag's key pair. Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive. You can specify a maximum of 256 characters for a tag value.

" } }, - "documentation":"

A collection of Amazon Web Services tags.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

A collection of Amazon Web Services tags.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" }, "TagCollectionFilter":{ "type":"structure", @@ -3928,7 +3936,7 @@ }, "Tags":{ "shape":"UpdateTagCollectionFilters", - "documentation":"

The updated Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The updated Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

Contains information used to update a collection of Amazon Web Services resources.

" diff --git a/services/directconnect/pom.xml b/services/directconnect/pom.xml index 36f8d5719669..9f7d9a7f2cc5 100644 --- a/services/directconnect/pom.xml +++ b/services/directconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT directconnect AWS Java SDK :: Services :: AWS Direct Connect diff --git a/services/directconnect/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/directconnect/src/main/resources/codegen-resources/endpoint-rule-set.json index 58989c64a378..ca7630b25501 100644 --- a/services/directconnect/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/directconnect/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,174 +111,276 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://directconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://directconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://directconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://directconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", "rules": [ { - "conditions": [], + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], "endpoint": { - "url": "https://directconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://directconnect.us-gov-east-1.amazonaws.com", "properties": {}, "headers": {} }, "type": "endpoint" - } - ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", - "argv": [ + "conditions": [ { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://directconnect.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://directconnect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://directconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://directconnect.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/directconnect/src/main/resources/codegen-resources/endpoint-tests.json b/services/directconnect/src/main/resources/codegen-resources/endpoint-tests.json index 12a71ac538c9..c49c16762361 100644 --- a/services/directconnect/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/directconnect/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1722 +1,549 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.sa-east-1.amazonaws.com" + "url": "https://directconnect.af-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "af-south-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-east-1.amazonaws.com" + "url": "https://directconnect.ap-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "ap-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-east-1.api.aws" + "url": "https://directconnect.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-east-1.amazonaws.com" + "url": "https://directconnect.ap-northeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "ap-northeast-2" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://directconnect.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.cn-north-1.amazonaws.com.cn" + "url": "https://directconnect.ap-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true + "Region": "ap-south-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://directconnect.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.cn-north-1.amazonaws.com.cn" + "url": "https://directconnect.ap-southeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false + "Region": "ap-southeast-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.us-gov-west-1.api.aws" + "url": "https://directconnect.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.us-gov-west-1.amazonaws.com" + "url": "https://directconnect.ca-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true + "Region": "ca-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.us-gov-west-1.api.aws" + "url": "https://directconnect.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.us-gov-west-1.amazonaws.com" + "url": "https://directconnect.eu-north-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false + "Region": "eu-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-1.api.aws" + "url": "https://directconnect.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-1.amazonaws.com" + "url": "https://directconnect.eu-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "eu-west-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-1.api.aws" + "url": "https://directconnect.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-1.amazonaws.com" + "url": "https://directconnect.eu-west-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "eu-west-3" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-2.api.aws" + "url": "https://directconnect.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-2.amazonaws.com" + "url": "https://directconnect.sa-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-2.api.aws" + "url": "https://directconnect.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-2.amazonaws.com" + "url": "https://directconnect-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://directconnect.us-east-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true + "Region": "us-east-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.us-iso-east-1.c2s.ic.gov" + "url": "https://directconnect-fips.us-east-2.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": false + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-3.api.aws" + "url": "https://directconnect.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-3.amazonaws.com" + "url": "https://directconnect-fips.us-west-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-3.api.aws" + "url": "https://directconnect.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-3.amazonaws.com" + "url": "https://directconnect-fips.us-west-2.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": false + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-4.api.aws" + "url": "https://directconnect-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.ap-southeast-4.amazonaws.com" + "url": "https://directconnect.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-4.api.aws" + "url": "https://directconnect.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.ap-southeast-4.amazonaws.com" + "url": "https://directconnect.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": false + "Region": "cn-northwest-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.us-east-1.api.aws" + "url": "https://directconnect-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.us-east-1.amazonaws.com" + "url": "https://directconnect-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://directconnect.us-east-1.api.aws" + "url": "https://directconnect.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.us-east-1.amazonaws.com" + "url": "https://directconnect.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://directconnect-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.us-east-2.amazonaws.com" + "url": "https://directconnect.us-gov-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://directconnect.us-east-2.api.aws" + "url": "https://directconnect-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.us-east-2.amazonaws.com" + "url": "https://directconnect-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://directconnect.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://directconnect.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://directconnect.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-west-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://directconnect.cn-northwest-1.amazonaws.com.cn" + "url": "https://directconnect-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://directconnect.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { @@ -1727,46 +554,35 @@ } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://directconnect.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1776,9 +592,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1788,9 +604,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/directconnect/src/main/resources/codegen-resources/service-2.json b/services/directconnect/src/main/resources/codegen-resources/service-2.json index 892f091aa553..bb4ec8f20151 100644 --- a/services/directconnect/src/main/resources/codegen-resources/service-2.json +++ b/services/directconnect/src/main/resources/codegen-resources/service-2.json @@ -243,7 +243,7 @@ {"shape":"DirectConnectServerException"}, {"shape":"DirectConnectClientException"} ], - "documentation":"

Creates a BGP peer on the specified virtual interface.

You must create a BGP peer for the corresponding address family (IPv4/IPv6) in order to access Amazon Web Services resources that also use that address family.

If logical redundancy is not supported by the connection, interconnect, or LAG, the BGP peer cannot be in the same address family as an existing BGP peer on the virtual interface.

When creating a IPv6 BGP peer, omit the Amazon address and customer address. IPv6 addresses are automatically assigned from the Amazon pool of IPv6 addresses; you cannot specify custom IPv6 addresses.

For a public virtual interface, the Autonomous System Number (ASN) must be private or already on the allow list for the virtual interface.

" + "documentation":"

Creates a BGP peer on the specified virtual interface.

You must create a BGP peer for the corresponding address family (IPv4/IPv6) in order to access Amazon Web Services resources that also use that address family.

If logical redundancy is not supported by the connection, interconnect, or LAG, the BGP peer cannot be in the same address family as an existing BGP peer on the virtual interface.

When creating a IPv6 BGP peer, omit the Amazon address and customer address. IPv6 addresses are automatically assigned from the Amazon pool of IPv6 addresses; you cannot specify custom IPv6 addresses.

If you let Amazon Web Services auto-assign IPv4 addresses, a /30 CIDR will be allocated from 169.254.0.0/16. Amazon Web Services does not recommend this option if you intend to use the customer router peer IP address as the source and destination for traffic. Instead you should use RFC 1918 or other addressing, and specify the address yourself. For more information about RFC 1918 see Address Allocation for Private Internets.

For a public virtual interface, the Autonomous System Number (ASN) must be private or already on the allow list for the virtual interface.

" }, "CreateConnection":{ "name":"CreateConnection", @@ -381,7 +381,7 @@ {"shape":"DirectConnectServerException"}, {"shape":"DirectConnectClientException"} ], - "documentation":"

Creates a transit virtual interface. A transit virtual interface should be used to access one or more transit gateways associated with Direct Connect gateways. A transit virtual interface enables the connection of multiple VPCs attached to a transit gateway to a Direct Connect gateway.

If you associate your transit gateway with one or more Direct Connect gateways, the Autonomous System Number (ASN) used by the transit gateway and the Direct Connect gateway must be different. For example, if you use the default ASN 64512 for both your the transit gateway and Direct Connect gateway, the association request fails.

Setting the MTU of a virtual interface to 8500 (jumbo frames) can cause an update to the underlying physical connection if it wasn't updated to support jumbo frames. Updating the connection disrupts network connectivity for all virtual interfaces associated with the connection for up to 30 seconds. To check whether your connection supports jumbo frames, call DescribeConnections. To check whether your virtual interface supports jumbo frames, call DescribeVirtualInterfaces.

" + "documentation":"

Creates a transit virtual interface. A transit virtual interface should be used to access one or more transit gateways associated with Direct Connect gateways. A transit virtual interface enables the connection of multiple VPCs attached to a transit gateway to a Direct Connect gateway.

If you associate your transit gateway with one or more Direct Connect gateways, the Autonomous System Number (ASN) used by the transit gateway and the Direct Connect gateway must be different. For example, if you use the default ASN 64512 for both your the transit gateway and Direct Connect gateway, the association request fails.

A jumbo MTU value must be either 1500 or 8500. No other values will be accepted. Setting the MTU of a virtual interface to 8500 (jumbo frames) can cause an update to the underlying physical connection if it wasn't updated to support jumbo frames. Updating the connection disrupts network connectivity for all virtual interfaces associated with the connection for up to 30 seconds. To check whether your connection supports jumbo frames, call DescribeConnections. To check whether your virtual interface supports jumbo frames, call DescribeVirtualInterfaces.

" }, "DeleteBGPPeer":{ "name":"DeleteBGPPeer", @@ -2396,7 +2396,7 @@ }, "associationState":{ "shape":"DirectConnectGatewayAssociationState", - "documentation":"

The state of the association. The following are the possible values:

  • associating: The initial state after calling CreateDirectConnectGatewayAssociation.

  • associated: The Direct Connect gateway and virtual private gateway or transit gateway are successfully associated and ready to pass traffic.

  • disassociating: The initial state after calling DeleteDirectConnectGatewayAssociation.

  • disassociated: The virtual private gateway or transit gateway is disassociated from the Direct Connect gateway. Traffic flow between the Direct Connect gateway and virtual private gateway or transit gateway is stopped.

" + "documentation":"

The state of the association. The following are the possible values:

  • associating: The initial state after calling CreateDirectConnectGatewayAssociation.

  • associated: The Direct Connect gateway and virtual private gateway or transit gateway are successfully associated and ready to pass traffic.

  • disassociating: The initial state after calling DeleteDirectConnectGatewayAssociation.

  • disassociated: The virtual private gateway or transit gateway is disassociated from the Direct Connect gateway. Traffic flow between the Direct Connect gateway and virtual private gateway or transit gateway is stopped.

  • updating: The CIDR blocks for the virtual private gateway or transit gateway are currently being updated. This could be new CIDR blocks added or current CIDR blocks removed.

" }, "stateChangeError":{ "shape":"StateChangeError", @@ -3420,7 +3420,7 @@ }, "testDurationInMinutes":{ "shape":"TestDuration", - "documentation":"

The time in minutes that the virtual interface failover test will last.

Maximum value: 180 minutes (3 hours).

Default: 180 minutes (3 hours).

" + "documentation":"

The time in minutes that the virtual interface failover test will last.

Maximum value: 4,320 minutes (72 hours).

Default: 180 minutes (3 hours).

" } } }, diff --git a/services/directory/pom.xml b/services/directory/pom.xml index 0bc6ba54fb57..aed6c2c01c90 100644 --- a/services/directory/pom.xml +++ b/services/directory/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT directory AWS Java SDK :: Services :: AWS Directory Service diff --git a/services/dlm/pom.xml b/services/dlm/pom.xml index f47aa15cdec3..66430c10dd10 100644 --- a/services/dlm/pom.xml +++ b/services/dlm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT dlm AWS Java SDK :: Services :: DLM diff --git a/services/dlm/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/dlm/src/main/resources/codegen-resources/endpoint-rule-set.json index efc50d4c587b..7069e7a3bbb4 100644 --- a/services/dlm/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/dlm/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dlm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://dlm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://dlm.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dlm.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dlm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://dlm-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dlm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://dlm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://dlm.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,28 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://dlm.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/dlm/src/main/resources/codegen-resources/endpoint-tests.json b/services/dlm/src/main/resources/codegen-resources/endpoint-tests.json index e0a57f37a787..53f0e7caa24f 100644 --- a/services/dlm/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/dlm/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,159 +1,159 @@ { "testCases": [ { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://dlm.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-iso-east-1.c2s.ic.gov" + "url": "https://dlm.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-east-1", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-northeast-3.amazonaws.com" + "url": "https://dlm.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "ap-northeast-3" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-east-1.amazonaws.com" + "url": "https://dlm.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.eu-west-1.amazonaws.com" + "url": "https://dlm.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.eu-west-2.amazonaws.com" + "url": "https://dlm.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.eu-west-3.amazonaws.com" + "url": "https://dlm.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "eu-west-3" + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.me-south-1.amazonaws.com" + "url": "https://dlm.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.eu-north-1.amazonaws.com" + "url": "https://dlm.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "eu-north-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-east-2.amazonaws.com" + "url": "https://dlm.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.sa-east-1.amazonaws.com" + "url": "https://dlm.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-east-1.amazonaws.com" + "url": "https://dlm.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-north-1", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { @@ -164,74 +164,100 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-south-1", "UseFIPS": false, - "Region": "eu-south-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.eu-central-1.amazonaws.com" + "url": "https://dlm.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-southeast-1.amazonaws.com" + "url": "https://dlm.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-southeast-2.amazonaws.com" + "url": "https://dlm.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-3", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-southeast-3.amazonaws.com" + "url": "https://dlm.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "me-south-1", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ca-central-1.amazonaws.com" + "url": "https://dlm.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", "UseFIPS": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -242,9 +268,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-1", "UseFIPS": false, - "Region": "us-west-1" + "UseDualStack": false } }, { @@ -255,152 +281,165 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-west-2" + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dlm.af-south-1.amazonaws.com" + "url": "https://dlm-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-south-1.amazonaws.com" + "url": "https://dlm-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-northeast-1.amazonaws.com" + "url": "https://dlm.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.ap-northeast-2.amazonaws.com" + "url": "https://dlm.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dlm-fips.us-east-1.api.aws" + "url": "https://dlm-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm-fips.us-east-1.amazonaws.com" + "url": "https://dlm-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dlm.us-east-1.api.aws" + "url": "https://dlm.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-gov-west-1.amazonaws.com" + "url": "https://dlm.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-gov-west-1.amazonaws.com" + "url": "https://dlm.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-gov-east-1.amazonaws.com" + "url": "https://dlm.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-gov-east-1.amazonaws.com" + "url": "https://dlm.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { @@ -411,9 +450,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -424,113 +463,131 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://dlm-fips.us-isob-east-1.sc2s.sgov.gov" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.us-isob-east-1.sc2s.sgov.gov" + "url": "https://dlm-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://dlm.cn-northwest-1.amazonaws.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.cn-north-1.amazonaws.com.cn" + "url": "https://dlm.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://dlm-fips.cn-north-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": true } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm-fips.cn-north-1.amazonaws.com.cn" + "url": "https://dlm-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dlm.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://dlm.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -540,9 +597,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -552,11 +609,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/docdb/pom.xml b/services/docdb/pom.xml index c5b9b6138b71..ca5450f79bf0 100644 --- a/services/docdb/pom.xml +++ b/services/docdb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT docdb AWS Java SDK :: Services :: DocDB diff --git a/services/docdb/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/docdb/src/main/resources/codegen-resources/endpoint-rule-set.json index 1becf46c1600..b9aff9f06c88 100644 --- a/services/docdb/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/docdb/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,294 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.ca-central-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] - } - ], - "endpoint": { - "url": "https://rds-fips.ca-central-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + }, { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.us-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://rds-fips.us-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "rds.us-east-2" + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rds-fips.us-east-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.us-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://rds-fips.us-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "rds.us-west-2" + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rds-fips.us-west-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/docdb/src/main/resources/codegen-resources/endpoint-tests.json b/services/docdb/src/main/resources/codegen-resources/endpoint-tests.json index d64b18b64c4c..8b0bc663a10f 100644 --- a/services/docdb/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/docdb/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,68 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-south-2.api.aws" + "url": "https://rds.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": false + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-south-2.amazonaws.com" + "url": "https://rds.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": false + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-south-1.api.aws" + "url": "https://rds.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-south-1.amazonaws.com" + "url": "https://rds.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-south-1.api.aws" + "url": "https://rds.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -99,230 +73,61 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.me-central-1.amazonaws.com" + "url": "https://rds.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": true + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.me-central-1.api.aws" + "url": "https://rds.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": false + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.me-central-1.amazonaws.com" + "url": "https://rds.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ca-central-1.api.aws" + "url": "https://rds.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "ca-central-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false } }, { @@ -333,1379 +138,460 @@ } }, "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.eu-central-1.api.aws" + "url": "https://rds.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "eu-central-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.eu-central-1.amazonaws.com" + "url": "https://rds.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-gov-west-1.amazonaws.com" + "url": "https://rds.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-1.api.aws" + "url": "https://rds.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-1.amazonaws.com" + "url": "https://rds.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-1.api.aws" + "url": "https://rds.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-1.amazonaws.com" + "url": "https://rds.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-2.api.aws" + "url": "https://rds.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-2.amazonaws.com" + "url": "https://rds.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-2.api.aws" + "url": "https://rds-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-2.amazonaws.com" + "url": "https://rds.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://rds.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-iso-east-1.c2s.ic.gov" + "url": "https://rds.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": false + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-3.api.aws" + "url": "https://rds-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-3.amazonaws.com" + "url": "https://rds-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-3.api.aws" + "url": "https://rds.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-3.amazonaws.com" + "url": "https://rds.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-4.api.aws" + "url": "https://rds.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": true + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-4.amazonaws.com" + "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-4.api.aws" + "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-4.amazonaws.com" + "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-1.api.aws" + "url": "https://rds.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-1.amazonaws.com" + "url": "https://rds.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-1.api.aws" + "url": "https://rds.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-1.amazonaws.com" + "url": "https://rds.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-2.api.aws" + "url": "https://rds-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-2.amazonaws.com" + "url": "https://rds.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-2.api.aws" + "url": "https://rds.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-2.amazonaws.com" + "url": "https://rds.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rds-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rds.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-northwest-1.amazonaws.com.cn" + "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": false + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -1714,9 +600,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -1727,9 +613,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -1738,35 +624,35 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1776,9 +662,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1788,11 +674,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/docdb/src/main/resources/codegen-resources/service-2.json b/services/docdb/src/main/resources/codegen-resources/service-2.json index 07b323f63890..7770a50038eb 100644 --- a/services/docdb/src/main/resources/codegen-resources/service-2.json +++ b/services/docdb/src/main/resources/codegen-resources/service-2.json @@ -3328,7 +3328,7 @@ }, "GlobalClusterResourceId":{ "shape":"String", - "documentation":"

The Amazon Web Services Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS customer master key (CMK) for the cluster is accessed.

" + "documentation":"

The Amazon Web Services Region-unique, immutable identifier for the global database cluster. This identifier is found in CloudTrail log entries whenever the KMS customer master key (CMK) for the cluster is accessed.

" }, "GlobalClusterArn":{ "shape":"String", @@ -4391,6 +4391,10 @@ "DeletionProtection":{ "shape":"BooleanOptional", "documentation":"

Specifies whether this cluster can be deleted. If DeletionProtection is enabled, the cluster cannot be deleted unless it is modified and DeletionProtection is disabled. DeletionProtection protects clusters from being accidentally deleted.

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

The name of the DB cluster parameter group to associate with this DB cluster.

Type: String.       Required: No.

If this argument is omitted, the default DB cluster parameter group is used. If supplied, must match the name of an existing default DB cluster parameter group. The string must consist of from 1 to 255 letters, numbers or hyphens. Its first character must be a letter, and it cannot end with a hyphen or contain two consecutive hyphens.

" } }, "documentation":"

Represents the input to RestoreDBClusterFromSnapshot.

" @@ -4414,7 +4418,7 @@ }, "RestoreType":{ "shape":"String", - "documentation":"

The type of restore to be performed. You can specify one of the following values:

  • full-copy - The new DB cluster is restored as a full copy of the source DB cluster.

  • copy-on-write - The new DB cluster is restored as a clone of the source DB cluster.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

" + "documentation":"

The type of restore to be performed. You can specify one of the following values:

  • full-copy - The new DB cluster is restored as a full copy of the source DB cluster.

  • copy-on-write - The new DB cluster is restored as a clone of the source DB cluster.

Constraints: You can't specify copy-on-write if the engine version of the source DB cluster is earlier than 1.11.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

" }, "SourceDBClusterIdentifier":{ "shape":"String", diff --git a/services/docdbelastic/pom.xml b/services/docdbelastic/pom.xml index 2ab70cea4e65..4a7a9eb3fcc2 100644 --- a/services/docdbelastic/pom.xml +++ b/services/docdbelastic/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT docdbelastic AWS Java SDK :: Services :: Doc DB Elastic diff --git a/services/drs/pom.xml b/services/drs/pom.xml index 8fcabdb0f763..72b158c81d3e 100644 --- a/services/drs/pom.xml +++ b/services/drs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT drs AWS Java SDK :: Services :: Drs diff --git a/services/drs/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/drs/src/main/resources/codegen-resources/endpoint-rule-set.json index 73c6ccc3634a..2d8239a87a96 100644 --- a/services/drs/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/drs/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://drs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://drs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://drs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://drs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://drs-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://drs.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://drs.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://drs.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/drs/src/main/resources/codegen-resources/endpoint-tests.json b/services/drs/src/main/resources/codegen-resources/endpoint-tests.json index c3812a58f33b..33d0ad0b7c6c 100644 --- a/services/drs/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/drs/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,614 +1,55 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.eu-west-2.amazonaws.com" + "url": "https://drs.af-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.eu-west-1.api.aws" + "url": "https://drs.ap-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.eu-west-1.amazonaws.com" + "url": "https://drs.ap-northeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-northeast-3.api.aws" + "url": "https://drs.ap-northeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-northeast-2" } }, { @@ -620,151 +61,138 @@ }, "params": { "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-northeast-2.amazonaws.com" + "url": "https://drs.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-northeast-2.api.aws" + "url": "https://drs.ap-southeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-northeast-2.amazonaws.com" + "url": "https://drs.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-northeast-1.api.aws" + "url": "https://drs.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-northeast-1.amazonaws.com" + "url": "https://drs.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-northeast-1.api.aws" + "url": "https://drs.eu-north-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-northeast-1.amazonaws.com" + "url": "https://drs.eu-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.me-south-1.api.aws" + "url": "https://drs.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.me-south-1.amazonaws.com" + "url": "https://drs.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.me-south-1.api.aws" + "url": "https://drs.eu-west-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-west-3" } }, { @@ -776,47 +204,8 @@ }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "me-south-1" } }, { @@ -828,324 +217,273 @@ }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-east-1.api.aws" + "url": "https://drs.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-east-1.amazonaws.com" + "url": "https://drs.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-east-1.api.aws" + "url": "https://drs.us-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-east-1.amazonaws.com" + "url": "https://drs.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-southeast-1.api.aws" + "url": "https://drs-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-southeast-1.amazonaws.com" + "url": "https://drs-fips.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.ap-southeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://drs.ap-southeast-1.amazonaws.com" + "url": "https://drs.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-southeast-2.api.aws" + "url": "https://drs-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-southeast-2.amazonaws.com" + "url": "https://drs-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://drs.ap-southeast-2.api.aws" + "url": "https://drs.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-southeast-2.amazonaws.com" + "url": "https://drs.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-southeast-3.api.aws" + "url": "https://drs-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.ap-southeast-3.amazonaws.com" + "url": "https://drs-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://drs.ap-southeast-3.api.aws" + "url": "https://drs.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.ap-southeast-3.amazonaws.com" + "url": "https://drs.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.us-east-1.amazonaws.com" + "url": "https://drs-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.us-east-1.amazonaws.com" + "url": "https://drs.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://drs-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs-fips.us-east-2.amazonaws.com" + "url": "https://drs-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://drs.us-east-2.api.aws" + "url": "https://drs.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://drs.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1153,7 +491,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1165,8 +502,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1177,8 +514,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/drs/src/main/resources/codegen-resources/service-2.json b/services/drs/src/main/resources/codegen-resources/service-2.json index fe47f97f8a88..687b5887dd04 100644 --- a/services/drs/src/main/resources/codegen-resources/service-2.json +++ b/services/drs/src/main/resources/codegen-resources/service-2.json @@ -405,7 +405,9 @@ {"shape":"ValidationException"}, {"shape":"UninitializedAccountException"} ], - "documentation":"

Causes the data replication initiation sequence to begin immediately upon next Handshake for the specified Source Server ID, regardless of when the previous initiation started. This command will work only if the Source Server is stalled or is in a DISCONNECTED or STOPPED state.

" + "documentation":"

WARNING: RetryDataReplication is deprecated. Causes the data replication initiation sequence to begin immediately upon next Handshake for the specified Source Server ID, regardless of when the previous initiation started. This command will work only if the Source Server is stalled or is in a DISCONNECTED or STOPPED state.

", + "deprecated":true, + "deprecatedMessage":"WARNING: RetryDataReplication is deprecated" }, "ReverseReplication":{ "name":"ReverseReplication", @@ -754,8 +756,8 @@ }, "ConversionMap":{ "type":"map", - "key":{"shape":"ebsSnapshot"}, - "value":{"shape":"ebsSnapshot"} + "key":{"shape":"EbsSnapshot"}, + "value":{"shape":"EbsSnapshot"} }, "ConversionProperties":{ "type":"structure", @@ -833,6 +835,10 @@ "shape":"Boolean", "documentation":"

Whether to associate the default Elastic Disaster Recovery Security group with the Replication Configuration Template.

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

Whether to allow the AWS replication agent to automatically replicate newly added disks.

" + }, "bandwidthThrottling":{ "shape":"PositiveInteger", "documentation":"

Configure bandwidth throttling for the outbound data transfer rate of the Source Server in Mbps.

" @@ -946,6 +952,10 @@ "replicatedDisks":{ "shape":"DataReplicationInfoReplicatedDisks", "documentation":"

The disks that should be replicated.

" + }, + "stagingAvailabilityZone":{ + "shape":"AwsAvailabilityZone", + "documentation":"

AWS Availability zone into which data is being replicated.

" } }, "documentation":"

Information about Data Replication

" @@ -1447,9 +1457,13 @@ "max":255, "min":0 }, + "EbsSnapshot":{ + "type":"string", + "pattern":"^snap-[0-9a-zA-Z]{17}$" + }, "EbsSnapshotsList":{ "type":"list", - "member":{"shape":"ebsSnapshot"} + "member":{"shape":"EbsSnapshot"} }, "EbsVolumeID":{ "type":"string", @@ -1893,6 +1907,10 @@ "initiated":{ "shape":"LifeCycleLastLaunchInitiated", "documentation":"

An object containing information regarding the initiation of the last launch of a Source Server.

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

Status of Source Server's last launch.

" } }, "documentation":"

An object containing information regarding the last launch of a Source Server.

" @@ -2156,9 +2174,13 @@ "shape":"JobID", "documentation":"

The ID of the Job that created the Recovery Instance.

" }, + "originAvailabilityZone":{ + "shape":"AwsAvailabilityZone", + "documentation":"

AWS availability zone associated with the recovery instance.

" + }, "originEnvironment":{ "shape":"OriginEnvironment", - "documentation":"

Environment (On Premises / AWS) of the instance that the recovery instance originated from.

" + "documentation":"

Environment (On Premises / AWS) of the instance that the recovery instance originated from.

" }, "pointInTimeSnapshotDateTime":{ "shape":"ISO8601DatetimeString", @@ -2223,6 +2245,10 @@ "replicatedDisks":{ "shape":"RecoveryInstanceDataReplicationInfoReplicatedDisks", "documentation":"

The disks that should be replicated.

" + }, + "stagingAvailabilityZone":{ + "shape":"AwsAvailabilityZone", + "documentation":"

AWS Availability zone into which data is being replicated.

" } }, "documentation":"

Information about Data Replication

" @@ -2518,6 +2544,10 @@ "shape":"Boolean", "documentation":"

Whether to associate the default Elastic Disaster Recovery Security group with the Replication Configuration.

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

Whether to allow the AWS replication agent to automatically replicate newly added disks.

" + }, "bandwidthThrottling":{ "shape":"PositiveInteger", "documentation":"

Configure bandwidth throttling for the outbound data transfer rate of the Source Server in Mbps.

" @@ -2620,7 +2650,7 @@ }, "optimizedStagingDiskType":{ "shape":"ReplicationConfigurationReplicatedDiskStagingDiskType", - "documentation":"

When stagingDiskType is set to Auto, this field shows the current staging disk EBS volume type as it is constantly updated by the service. This is a read-only field.

" + "documentation":"

The Staging Disk EBS volume type to be used during replication when stagingDiskType is set to Auto. This is a read-only field.

" }, "stagingDiskType":{ "shape":"ReplicationConfigurationReplicatedDiskStagingDiskType", @@ -2663,6 +2693,10 @@ "shape":"Boolean", "documentation":"

Whether to associate the default Elastic Disaster Recovery Security group with the Replication Configuration Template.

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

Whether to allow the AWS replication agent to automatically replicate newly added disks.

" + }, "bandwidthThrottling":{ "shape":"PositiveInteger", "documentation":"

Configure bandwidth throttling for the outbound data transfer rate of the Source Server in Mbps.

" @@ -2780,7 +2814,9 @@ "shape":"SourceServerID", "documentation":"

The ID of the Source Server whose data replication should be retried.

" } - } + }, + "deprecated":true, + "deprecatedMessage":"WARNING: RetryDataReplication is deprecated" }, "ReverseReplicationRequest":{ "type":"structure", @@ -3340,6 +3376,10 @@ "shape":"Boolean", "documentation":"

Whether to associate the default Elastic Disaster Recovery Security group with the Replication Configuration.

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

Whether to allow the AWS replication agent to automatically replicate newly added disks.

" + }, "bandwidthThrottling":{ "shape":"PositiveInteger", "documentation":"

Configure bandwidth throttling for the outbound data transfer rate of the Source Server in Mbps.

" @@ -3414,6 +3454,10 @@ "shape":"Boolean", "documentation":"

Whether to associate the default Elastic Disaster Recovery Security group with the Replication Configuration Template.

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

Whether to allow the AWS replication agent to automatically replicate newly added disks.

" + }, "bandwidthThrottling":{ "shape":"PositiveInteger", "documentation":"

Configure bandwidth throttling for the outbound data transfer rate of the Source Server in Mbps.

" @@ -3525,10 +3569,6 @@ "type":"map", "key":{"shape":"LargeBoundedString"}, "value":{"shape":"PositiveInteger"} - }, - "ebsSnapshot":{ - "type":"string", - "pattern":"^snap-[0-9a-zA-Z]{17}$" } }, "documentation":"

AWS Elastic Disaster Recovery Service.

" diff --git a/services/dynamodb/pom.xml b/services/dynamodb/pom.xml index 3e80016606ca..1feb2ef26622 100644 --- a/services/dynamodb/pom.xml +++ b/services/dynamodb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT dynamodb AWS Java SDK :: Services :: Amazon DynamoDB diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json index e98b735cff8e..d79f53d622fc 100644 --- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json +++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,115 +111,267 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dynamodb.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "local" + ] + } + ], "endpoint": { - "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, "headers": {} }, "type": "endpoint" @@ -247,7 +379,7 @@ { "conditions": [], "endpoint": { - "url": "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -256,107 +388,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "local" - ] - } - ], - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "dynamodb" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json index cd9c93198d8a..23c1d4d1f5a7 100644 --- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json +++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/endpoint-tests.json @@ -1,1724 +1,599 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.ap-south-2.api.aws" + "url": "https://dynamodb.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": true + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.ap-south-2.amazonaws.com" + "url": "https://dynamodb.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.ap-south-2.api.aws" + "url": "https://dynamodb.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-2", + "Region": "ap-northeast-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.ap-south-2.amazonaws.com" + "url": "https://dynamodb.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "Region": "ap-south-2", "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.ap-south-1.api.aws" + "url": "https://dynamodb.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.ap-south-1.amazonaws.com" + "url": "https://dynamodb.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.ap-south-1.api.aws" + "url": "https://dynamodb.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", + "Region": "ap-southeast-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.ap-south-1.amazonaws.com" + "url": "https://dynamodb.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "ap-south-1", "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-south-1.api.aws" + "url": "https://dynamodb.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-south-1.amazonaws.com" + "url": "https://dynamodb.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-south-1.api.aws" + "url": "https://dynamodb-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-south-1.amazonaws.com" + "url": "https://dynamodb.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "Region": "eu-south-1", "UseFIPS": false } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-south-2.api.aws" + "url": "https://dynamodb.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": true + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-south-2.amazonaws.com" + "url": "https://dynamodb.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-south-2.api.aws" + "url": "https://dynamodb.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-south-2", + "Region": "eu-west-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-south-2.amazonaws.com" + "url": "https://dynamodb.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseDualStack": false, - "Region": "eu-south-2", "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-gov-east-1.api.aws" + "url": "https://dynamodb.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region local with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://localhost:8000" } }, "params": { + "Region": "local", "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.us-gov-east-1.api.aws" + "url": "https://dynamodb.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", + "Region": "me-south-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + "url": "https://dynamodb.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "Region": "us-gov-east-1", "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.me-central-1.api.aws" + "url": "https://dynamodb.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.me-central-1.amazonaws.com" + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "me-central-1", "UseFIPS": true } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.me-central-1.api.aws" + "url": "https://dynamodb.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-central-1", + "Region": "us-east-2", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.me-central-1.amazonaws.com" + "url": "https://dynamodb-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.ca-central-1.api.aws" + "url": "https://dynamodb.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.ca-central-1.amazonaws.com" + "url": "https://dynamodb-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "Region": "ca-central-1", "UseFIPS": true } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.ca-central-1.api.aws" + "url": "https://dynamodb.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", + "Region": "us-west-2", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.ca-central-1.amazonaws.com" + "url": "https://dynamodb-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-central-1.api.aws" + "url": "https://dynamodb-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "eu-central-1", "UseFIPS": true } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-central-1.amazonaws.com" + "url": "https://dynamodb.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-central-1.api.aws" + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", + "Region": "cn-north-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-central-1.amazonaws.com" + "url": "https://dynamodb.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "Region": "eu-central-1", "UseFIPS": false } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-iso-west-1", "UseFIPS": true } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-iso-west-1.c2s.ic.gov" + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-iso-west-1", "UseFIPS": true } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-iso-west-1", "UseFIPS": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.us-iso-west-1.c2s.ic.gov" + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "us-iso-west-1", "UseFIPS": false } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-central-2.api.aws" + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-2", + "Region": "us-gov-east-1", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.eu-central-2.amazonaws.com" + "url": "https://dynamodb.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-central-2.api.aws" + "url": "https://dynamodb.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": false + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dynamodb.eu-central-2.amazonaws.com" + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-west-1.api.aws" + "url": "https://dynamodb.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.us-west-1.amazonaws.com" + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-4.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.ap-southeast-4.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-4.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-4", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.ap-southeast-4.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-4", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.us-east-2.amazonaws.com" + "url": "https://dynamodb.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://dynamodb.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.cn-northwest-1.amazonaws.com.cn" + "url": "https://dynamodb.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": false } }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": true - } - }, { "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { @@ -1727,37 +602,27 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://dynamodb.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1765,7 +630,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -1776,8 +640,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -1788,8 +652,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json index 639aec3a2226..813a5a720b3a 100644 --- a/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json +++ b/services/dynamodb/src/main/resources/codegen-resources/dynamodb/service-2.json @@ -98,7 +98,7 @@ {"shape":"GlobalTableAlreadyExistsException"}, {"shape":"TableNotFoundException"} ], - "documentation":"

Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided Regions.

This operation only applies to Version 2017.11.29 of global tables.

If you want to add a new replica table to a global table, each of the following conditions must be true:

  • The table must have the same primary key as all of the other replicas.

  • The table must have the same name as all of the other replicas.

  • The table must have DynamoDB Streams enabled, with the stream containing both the new and the old images of the item.

  • None of the replica tables in the global table can contain any data.

If global secondary indexes are specified, then the following conditions must also be met:

  • The global secondary indexes must have the same name.

  • The global secondary indexes must have the same hash key and sort key (if present).

If local secondary indexes are specified, then the following conditions must also be met:

  • The local secondary indexes must have the same name.

  • The local secondary indexes must have the same hash key and sort key (if present).

Write capacity settings should be set consistently across your replica tables and secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the write capacity settings for all of your global tables replicas and indexes.

If you prefer to manage write capacity settings manually, you should provision equal replicated write capacity units to your replica tables. You should also provision equal replicated write capacity units to matching secondary indexes across your global table.

", + "documentation":"

Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided Regions.

This operation only applies to Version 2017.11.29 (Legacy) of global tables. We recommend using Version 2019.11.21 (Current) when creating new global tables, as it provides greater flexibility, higher efficiency and consumes less write capacity than 2017.11.29 (Legacy). To determine which version you are using, see Determining the version. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Updating global tables.

If you want to add a new replica table to a global table, each of the following conditions must be true:

  • The table must have the same primary key as all of the other replicas.

  • The table must have the same name as all of the other replicas.

  • The table must have DynamoDB Streams enabled, with the stream containing both the new and the old images of the item.

  • None of the replica tables in the global table can contain any data.

If global secondary indexes are specified, then the following conditions must also be met:

  • The global secondary indexes must have the same name.

  • The global secondary indexes must have the same hash key and sort key (if present).

If local secondary indexes are specified, then the following conditions must also be met:

  • The local secondary indexes must have the same name.

  • The local secondary indexes must have the same hash key and sort key (if present).

Write capacity settings should be set consistently across your replica tables and secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the write capacity settings for all of your global tables replicas and indexes.

If you prefer to manage write capacity settings manually, you should provision equal replicated write capacity units to your replica tables. You should also provision equal replicated write capacity units to matching secondary indexes across your global table.

", "endpointdiscovery":{ } }, @@ -172,7 +172,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned.

DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete.

When you delete a table, any indexes on that table are also deleted.

If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the DISABLED state, and the stream is automatically deleted after 24 hours.

Use the DescribeTable action to check the status of the table.

", + "documentation":"

The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned.

This operation only applies to Version 2019.11.21 (Current) of global tables.

DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete.

When you delete a table, any indexes on that table are also deleted.

If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the DISABLED state, and the stream is automatically deleted after 24 hours.

Use the DescribeTable action to check the status of the table.

", "endpointdiscovery":{ } }, @@ -220,7 +220,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerError"} ], - "documentation":"

Returns information about contributor insights, for a given table or global secondary index.

" + "documentation":"

Returns information about contributor insights for a given table or global secondary index.

" }, "DescribeEndpoints":{ "name":"DescribeEndpoints", @@ -230,7 +230,7 @@ }, "input":{"shape":"DescribeEndpointsRequest"}, "output":{"shape":"DescribeEndpointsResponse"}, - "documentation":"

Returns the regional endpoint information.

", + "documentation":"

Returns the regional endpoint information. This action must be included in your VPC endpoint policies, or access to the DescribeEndpoints API will be denied. For more information on policy permissions, please see Internetwork traffic privacy.

", "endpointoperation":true }, "DescribeExport":{ @@ -260,7 +260,7 @@ {"shape":"InternalServerError"}, {"shape":"GlobalTableNotFoundException"} ], - "documentation":"

Returns information about the specified global table.

This operation only applies to Version 2017.11.29 of global tables. If you are using global tables Version 2019.11.21 you can use DescribeTable instead.

", + "documentation":"

Returns information about the specified global table.

This operation only applies to Version 2017.11.29 (Legacy) of global tables. We recommend using Version 2019.11.21 (Current) when creating new global tables, as it provides greater flexibility, higher efficiency and consumes less write capacity than 2017.11.29 (Legacy). To determine which version you are using, see Determining the version. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Updating global tables.

", "endpointdiscovery":{ } }, @@ -276,7 +276,7 @@ {"shape":"GlobalTableNotFoundException"}, {"shape":"InternalServerError"} ], - "documentation":"

Describes Region-specific settings for a global table.

This operation only applies to Version 2017.11.29 of global tables.

", + "documentation":"

Describes Region-specific settings for a global table.

This operation only applies to Version 2017.11.29 (Legacy) of global tables. We recommend using Version 2019.11.21 (Current) when creating new global tables, as it provides greater flexibility, higher efficiency and consumes less write capacity than 2017.11.29 (Legacy). To determine which version you are using, see Determining the version. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Updating global tables.

", "endpointdiscovery":{ } }, @@ -336,7 +336,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerError"} ], - "documentation":"

Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.

If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again.

", + "documentation":"

Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.

This operation only applies to Version 2019.11.21 (Current) of global tables.

If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again.

", "endpointdiscovery":{ } }, @@ -352,7 +352,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerError"} ], - "documentation":"

Describes auto scaling settings across replicas of the global table at once.

This operation only applies to Version 2019.11.21 of global tables.

" + "documentation":"

Describes auto scaling settings across replicas of the global table at once.

This operation only applies to Version 2019.11.21 (Current) of global tables.

" }, "DescribeTimeToLive":{ "name":"DescribeTimeToLive", @@ -424,7 +424,7 @@ {"shape":"InternalServerError"}, {"shape":"DuplicateItemException"} ], - "documentation":"

This operation allows you to perform reads and singleton writes on data stored in DynamoDB, using PartiQL.

For PartiQL reads (SELECT statement), if the total number of processed items exceeds the maximum dataset size limit of 1 MB, the read stops and results are returned to the user as a LastEvaluatedKey value to continue the read in a subsequent operation. If the filter criteria in WHERE clause does not match any data, the read will return an empty result set.

A single SELECT statement response can return up to the maximum number of items (if using the Limit parameter) or a maximum of 1 MB of data (and then apply any filtering to the results using WHERE clause). If LastEvaluatedKey is present in the response, you need to paginate the result set.

" + "documentation":"

This operation allows you to perform reads and singleton writes on data stored in DynamoDB, using PartiQL.

For PartiQL reads (SELECT statement), if the total number of processed items exceeds the maximum dataset size limit of 1 MB, the read stops and results are returned to the user as a LastEvaluatedKey value to continue the read in a subsequent operation. If the filter criteria in WHERE clause does not match any data, the read will return an empty result set.

A single SELECT statement response can return up to the maximum number of items (if using the Limit parameter) or a maximum of 1 MB of data (and then apply any filtering to the results using WHERE clause). If LastEvaluatedKey is present in the response, you need to paginate the result set. If NextToken is present, you need to paginate the result set and include NextToken.

" }, "ExecuteTransaction":{ "name":"ExecuteTransaction", @@ -550,7 +550,7 @@ "errors":[ {"shape":"InternalServerError"} ], - "documentation":"

Lists all global tables that have a replica in the specified Region.

This operation only applies to Version 2017.11.29 of global tables.

", + "documentation":"

Lists all global tables that have a replica in the specified Region.

This operation only applies to Version 2017.11.29 (Legacy) of global tables. We recommend using Version 2019.11.21 (Current) when creating new global tables, as it provides greater flexibility, higher efficiency and consumes less write capacity than 2017.11.29 (Legacy). To determine which version you are using, see Determining the version. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Updating global tables.

", "endpointdiscovery":{ } }, @@ -728,7 +728,7 @@ {"shape":"RequestLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

TransactGetItems is a synchronous operation that atomically retrieves multiple items from one or more tables (but not from indexes) in a single account and Region. A TransactGetItems call can contain up to 100 TransactGetItem objects, each of which contains a Get structure that specifies an item to retrieve from a table in the account and Region. A call to TransactGetItems cannot retrieve items from tables in more than one Amazon Web Services account or Region. The aggregate size of the items in the transaction cannot exceed 4 MB.

DynamoDB rejects the entire TransactGetItems request if any of the following is true:

  • A conflicting operation is in the process of updating an item to be read.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

  • The aggregate size of the items in the transaction cannot exceed 4 MB.

", + "documentation":"

TransactGetItems is a synchronous operation that atomically retrieves multiple items from one or more tables (but not from indexes) in a single account and Region. A TransactGetItems call can contain up to 100 TransactGetItem objects, each of which contains a Get structure that specifies an item to retrieve from a table in the account and Region. A call to TransactGetItems cannot retrieve items from tables in more than one Amazon Web Services account or Region. The aggregate size of the items in the transaction cannot exceed 4 MB.

DynamoDB rejects the entire TransactGetItems request if any of the following is true:

  • A conflicting operation is in the process of updating an item to be read.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

  • The aggregate size of the items in the transaction exceeded 4 MB.

", "endpointdiscovery":{ } }, @@ -816,7 +816,7 @@ {"shape":"ReplicaNotFoundException"}, {"shape":"TableNotFoundException"} ], - "documentation":"

Adds or removes replicas in the specified global table. The global table must already exist to be able to use this operation. Any replica to be added must be empty, have the same name as the global table, have the same key schema, have DynamoDB Streams enabled, and have the same provisioned and maximum write capacity units.

Although you can use UpdateGlobalTable to add replicas and remove replicas in a single request, for simplicity we recommend that you issue separate requests for adding or removing replicas.

If global secondary indexes are specified, then the following conditions must also be met:

  • The global secondary indexes must have the same name.

  • The global secondary indexes must have the same hash key and sort key (if present).

  • The global secondary indexes must have the same provisioned and maximum write capacity units.

", + "documentation":"

Adds or removes replicas in the specified global table. The global table must already exist to be able to use this operation. Any replica to be added must be empty, have the same name as the global table, have the same key schema, have DynamoDB Streams enabled, and have the same provisioned and maximum write capacity units.

This operation only applies to Version 2017.11.29 (Legacy) of global tables. We recommend using Version 2019.11.21 (Current) when creating new global tables, as it provides greater flexibility, higher efficiency and consumes less write capacity than 2017.11.29 (Legacy). To determine which version you are using, see Determining the version. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Updating global tables.

This operation only applies to Version 2017.11.29 of global tables. If you are using global tables Version 2019.11.21 you can use DescribeTable instead.

Although you can use UpdateGlobalTable to add replicas and remove replicas in a single request, for simplicity we recommend that you issue separate requests for adding or removing replicas.

If global secondary indexes are specified, then the following conditions must also be met:

  • The global secondary indexes must have the same name.

  • The global secondary indexes must have the same hash key and sort key (if present).

  • The global secondary indexes must have the same provisioned and maximum write capacity units.

", "endpointdiscovery":{ } }, @@ -836,7 +836,7 @@ {"shape":"ResourceInUseException"}, {"shape":"InternalServerError"} ], - "documentation":"

Updates settings for a global table.

", + "documentation":"

Updates settings for a global table.

This operation only applies to Version 2017.11.29 (Legacy) of global tables. We recommend using Version 2019.11.21 (Current) when creating new global tables, as it provides greater flexibility, higher efficiency and consumes less write capacity than 2017.11.29 (Legacy). To determine which version you are using, see Determining the version. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Updating global tables.

", "endpointdiscovery":{ } }, @@ -875,7 +875,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

You can only perform one of the following operations at once:

  • Modify the provisioned throughput settings of the table.

  • Remove a global secondary index from the table.

  • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

UpdateTable is an asynchronous operation; while it is executing, the table status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

", + "documentation":"

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

This operation only applies to Version 2019.11.21 (Current) of global tables.

You can only perform one of the following operations at once:

  • Modify the provisioned throughput settings of the table.

  • Remove a global secondary index from the table.

  • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

UpdateTable is an asynchronous operation; while it is executing, the table status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

", "endpointdiscovery":{ } }, @@ -893,7 +893,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

Updates auto scaling settings on your global tables at once.

This operation only applies to Version 2019.11.21 of global tables.

" + "documentation":"

Updates auto scaling settings on your global tables at once.

This operation only applies to Version 2019.11.21 (Current) of global tables.

" }, "UpdateTimeToLive":{ "name":"UpdateTimeToLive", @@ -1161,7 +1161,7 @@ "documentation":"

The amount of time, in seconds, after a scale out activity completes before another scale out activity can start. While the cooldown period is in effect, the capacity that has been added by the previous scale out event that initiated the cooldown is calculated as part of the desired capacity for the next scale out. You should continuously (but not excessively) scale out.

" }, "TargetValue":{ - "shape":"Double", + "shape":"DoubleObject", "documentation":"

The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2).

" } }, @@ -1184,7 +1184,7 @@ "documentation":"

The amount of time, in seconds, after a scale out activity completes before another scale out activity can start. While the cooldown period is in effect, the capacity that has been added by the previous scale out event that initiated the cooldown is calculated as part of the desired capacity for the next scale out. You should continuously (but not excessively) scale out.

" }, "TargetValue":{ - "shape":"Double", + "shape":"DoubleObject", "documentation":"

The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2).

" } }, @@ -1676,15 +1676,15 @@ }, "ConditionExpression":{ "shape":"ConditionExpression", - "documentation":"

A condition that must be satisfied in order for a conditional update to succeed.

" + "documentation":"

A condition that must be satisfied in order for a conditional update to succeed. For more information, see Condition expressions in the Amazon DynamoDB Developer Guide.

" }, "ExpressionAttributeNames":{ "shape":"ExpressionAttributeNameMap", - "documentation":"

One or more substitution tokens for attribute names in an expression.

" + "documentation":"

One or more substitution tokens for attribute names in an expression. For more information, see Expression attribute names in the Amazon DynamoDB Developer Guide.

" }, "ExpressionAttributeValues":{ "shape":"ExpressionAttributeValueMap", - "documentation":"

One or more values that can be substituted in an expression.

" + "documentation":"

One or more values that can be substituted in an expression. For more information, see Condition expressions in the Amazon DynamoDB Developer Guide.

" }, "ReturnValuesOnConditionCheckFailure":{ "shape":"ReturnValuesOnConditionCheckFailure", @@ -1997,6 +1997,10 @@ "TableClass":{ "shape":"TableClass", "documentation":"

The table class of the new table. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

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

Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table.

" } }, "documentation":"

Represents the input of a CreateTable operation.

" @@ -2121,7 +2125,7 @@ }, "Key":{ "shape":"Key", - "documentation":"

A map of attribute names to AttributeValue objects, representing the primary key of the item to delete.

For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.

" + "documentation":"

A map of attribute names to AttributeValue objects, representing the primary key of the item to delete.

For the primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.

" }, "Expected":{ "shape":"ExpectedAttributeMap", @@ -2164,7 +2168,7 @@ }, "ConsumedCapacity":{ "shape":"ConsumedCapacity", - "documentation":"

The capacity units consumed by the DeleteItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Mode in the Amazon DynamoDB Developer Guide.

" + "documentation":"

The capacity units consumed by the DeleteItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

" }, "ItemCollectionMetrics":{ "shape":"ItemCollectionMetrics", @@ -2227,6 +2231,7 @@ }, "documentation":"

Represents the output of a DeleteTable operation.

" }, + "DeletionProtectionEnabled":{"type":"boolean"}, "DescribeBackupInput":{ "type":"structure", "required":["BackupArn"], @@ -2524,7 +2529,7 @@ "ENABLE_FAILED" ] }, - "Double":{"type":"double"}, + "DoubleObject":{"type":"double"}, "DuplicateItemException":{ "type":"structure", "members":{ @@ -2965,7 +2970,7 @@ }, "ConsumedCapacity":{ "shape":"ConsumedCapacity", - "documentation":"

The capacity units consumed by the GetItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Read/Write Capacity Mode in the Amazon DynamoDB Developer Guide.

" + "documentation":"

The capacity units consumed by the GetItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

" } }, "documentation":"

Represents the output of a GetItem operation.

" @@ -3041,11 +3046,11 @@ "documentation":"

Represents the provisioned throughput settings for the specified global secondary index.

For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide.

" }, "IndexSizeBytes":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" }, "ItemCount":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" }, "IndexArn":{ @@ -3355,7 +3360,7 @@ "documentation":"

The time at which the creation of the table associated with this import task completed.

" }, "ProcessedSizeBytes":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

The total size of data processed from the source file, in Bytes.

" }, "ProcessedItemCount":{ @@ -4002,11 +4007,11 @@ "documentation":"

Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

" }, "IndexSizeBytes":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" }, "ItemCount":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" }, "IndexArn":{ @@ -4047,6 +4052,7 @@ "member":{"shape":"LocalSecondaryIndexInfo"} }, "Long":{"type":"long"}, + "LongObject":{"type":"long"}, "MapAttributeValue":{ "type":"map", "key":{"shape":"AttributeName"}, @@ -4359,7 +4365,7 @@ }, "ConsumedCapacity":{ "shape":"ConsumedCapacity", - "documentation":"

The capacity units consumed by the PutItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Read/Write Capacity Mode in the Amazon DynamoDB Developer Guide.

" + "documentation":"

The capacity units consumed by the PutItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

" }, "ItemCollectionMetrics":{ "shape":"ItemCollectionMetrics", @@ -4393,7 +4399,7 @@ }, "Select":{ "shape":"Select", - "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in ProjectionExpression. This return value is equivalent to specifying ProjectionExpression without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation will read only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor ProjectionExpression are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and ProjectionExpression together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying ProjectionExpression without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" + "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves. Note that this uses the same quantity of read capacity units as getting the items, and is subject to the same item size calculations.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in ProjectionExpression. This return value is equivalent to specifying ProjectionExpression without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation will read only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor ProjectionExpression are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and ProjectionExpression together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying ProjectionExpression without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" }, "AttributesToGet":{ "shape":"AttributeNameList", @@ -5189,7 +5195,7 @@ }, "Select":{ "shape":"Select", - "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in ProjectionExpression. This return value is equivalent to specifying ProjectionExpression without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation reads only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor ProjectionExpression are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and ProjectionExpression together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying ProjectionExpression without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" + "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves. Note that this uses the same quantity of read capacity units as getting the items, and is subject to the same item size calculations.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in ProjectionExpression. This return value is equivalent to specifying ProjectionExpression without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation reads only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor ProjectionExpression are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and ProjectionExpression together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying ProjectionExpression without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" }, "ScanFilter":{ "shape":"FilterConditionMap", @@ -5256,7 +5262,7 @@ }, "ConsumedCapacity":{ "shape":"ConsumedCapacity", - "documentation":"

The capacity units consumed by the Scan operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

" + "documentation":"

The capacity units consumed by the Scan operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

" } }, "documentation":"

Represents the output of a Scan operation.

" @@ -5308,7 +5314,7 @@ "documentation":"

ARN of the table for which backup was created.

" }, "TableSizeBytes":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

Size of the table in bytes. Note that this is an approximate value.

" }, "KeySchema":{ @@ -5506,11 +5512,11 @@ "documentation":"

The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.

" }, "TableSizeBytes":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" }, "ItemCount":{ - "shape":"Long", + "shape":"LongObject", "documentation":"

The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" }, "TableArn":{ @@ -5568,6 +5574,10 @@ "TableClassSummary":{ "shape":"TableClassSummary", "documentation":"

Contains details of the table class.

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

Indicates whether deletion protection is enabled (true) or disabled (false) on the table.

" } }, "documentation":"

Represents the properties of a table.

" @@ -5803,7 +5813,7 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

Providing a ClientRequestToken makes the call to TransactWriteItems idempotent, meaning that multiple identical calls have the same effect as one single call.

Although multiple identical calls using the same client request token produce the same result on the server (no side effects), the responses to the calls might not be the same. If the ReturnConsumedCapacity> parameter is set, then the initial TransactWriteItems call returns the amount of write capacity units consumed in making the changes. Subsequent TransactWriteItems calls with the same client token return the number of read capacity units consumed in reading the item.

A client request token is valid for 10 minutes after the first request that uses it is completed. After 10 minutes, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 10 minutes, or the result might not be idempotent.

If you submit a request with the same client token but a change in other parameters within the 10-minute idempotency window, DynamoDB returns an IdempotentParameterMismatch exception.

", + "documentation":"

Providing a ClientRequestToken makes the call to TransactWriteItems idempotent, meaning that multiple identical calls have the same effect as one single call.

Although multiple identical calls using the same client request token produce the same result on the server (no side effects), the responses to the calls might not be the same. If the ReturnConsumedCapacity parameter is set, then the initial TransactWriteItems call returns the amount of write capacity units consumed in making the changes. Subsequent TransactWriteItems calls with the same client token return the number of read capacity units consumed in reading the item.

A client request token is valid for 10 minutes after the first request that uses it is completed. After 10 minutes, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 10 minutes, or the result might not be idempotent.

If you submit a request with the same client token but a change in other parameters within the 10-minute idempotency window, DynamoDB returns an IdempotentParameterMismatch exception.

", "idempotencyToken":true } } @@ -5830,7 +5840,7 @@ "documentation":"

A list of cancellation reasons.

" } }, - "documentation":"

The entire transaction request was canceled.

DynamoDB cancels a TransactWriteItems request under the following circumstances:

  • A condition in one of the condition expressions is not met.

  • A table in the TransactWriteItems request is in a different account or region.

  • More than one action in the TransactWriteItems operation targets the same item.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • An item size becomes too large (larger than 400 KB), or a local secondary index (LSI) becomes too large, or a similar validation error occurs because of changes made by the transaction.

  • There is a user error, such as an invalid data format.

DynamoDB cancels a TransactGetItems request under the following circumstances:

  • There is an ongoing TransactGetItems operation that conflicts with a concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request. In this case the TransactGetItems operation fails with a TransactionCanceledException.

  • A table in the TransactGetItems request is in a different account or region.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons property. This property is not set for other languages. Transaction cancellation reasons are ordered in the order of requested items, if an item has no error it will have None code and Null message.

Cancellation reason codes and possible error messages:

  • No Errors:

    • Code: None

    • Message: null

  • Conditional Check Failed:

    • Code: ConditionalCheckFailed

    • Message: The conditional request failed.

  • Item Collection Size Limit Exceeded:

    • Code: ItemCollectionSizeLimitExceeded

    • Message: Collection size exceeded.

  • Transaction Conflict:

    • Code: TransactionConflict

    • Message: Transaction is ongoing for the item.

  • Provisioned Throughput Exceeded:

    • Code: ProvisionedThroughputExceeded

    • Messages:

      • The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API.

        This Message is received when provisioned throughput is exceeded is on a provisioned DynamoDB table.

      • The level of configured provisioned throughput for one or more global secondary indexes of the table was exceeded. Consider increasing your provisioning level for the under-provisioned global secondary indexes with the UpdateTable API.

        This message is returned when provisioned throughput is exceeded is on a provisioned GSI.

  • Throttling Error:

    • Code: ThrottlingError

    • Messages:

      • Throughput exceeds the current capacity of your table or index. DynamoDB is automatically scaling your table or index so please try again shortly. If exceptions persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.

        This message is returned when writes get throttled on an On-Demand table as DynamoDB is automatically scaling the table.

      • Throughput exceeds the current capacity for one or more global secondary indexes. DynamoDB is automatically scaling your index so please try again shortly.

        This message is returned when when writes get throttled on an On-Demand GSI as DynamoDB is automatically scaling the GSI.

  • Validation Error:

    • Code: ValidationError

    • Messages:

      • One or more parameter values were invalid.

      • The update expression attempted to update the secondary index key beyond allowed size limits.

      • The update expression attempted to update the secondary index key to unsupported type.

      • An operand in the update expression has an incorrect data type.

      • Item size to update has exceeded the maximum allowed size.

      • Number overflow. Attempting to store a number with magnitude larger than supported range.

      • Type mismatch for attribute to update.

      • Nesting Levels have exceeded supported limits.

      • The document path provided in the update expression is invalid for update.

      • The provided expression refers to an attribute that does not exist in the item.

", + "documentation":"

The entire transaction request was canceled.

DynamoDB cancels a TransactWriteItems request under the following circumstances:

  • A condition in one of the condition expressions is not met.

  • A table in the TransactWriteItems request is in a different account or region.

  • More than one action in the TransactWriteItems operation targets the same item.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • An item size becomes too large (larger than 400 KB), or a local secondary index (LSI) becomes too large, or a similar validation error occurs because of changes made by the transaction.

  • There is a user error, such as an invalid data format.

DynamoDB cancels a TransactGetItems request under the following circumstances:

  • There is an ongoing TransactGetItems operation that conflicts with a concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request. In this case the TransactGetItems operation fails with a TransactionCanceledException.

  • A table in the TransactGetItems request is in a different account or region.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons property. This property is not set for other languages. Transaction cancellation reasons are ordered in the order of requested items, if an item has no error it will have None code and Null message.

Cancellation reason codes and possible error messages:

  • No Errors:

    • Code: None

    • Message: null

  • Conditional Check Failed:

    • Code: ConditionalCheckFailed

    • Message: The conditional request failed.

  • Item Collection Size Limit Exceeded:

    • Code: ItemCollectionSizeLimitExceeded

    • Message: Collection size exceeded.

  • Transaction Conflict:

    • Code: TransactionConflict

    • Message: Transaction is ongoing for the item.

  • Provisioned Throughput Exceeded:

    • Code: ProvisionedThroughputExceeded

    • Messages:

      • The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API.

        This Message is received when provisioned throughput is exceeded is on a provisioned DynamoDB table.

      • The level of configured provisioned throughput for one or more global secondary indexes of the table was exceeded. Consider increasing your provisioning level for the under-provisioned global secondary indexes with the UpdateTable API.

        This message is returned when provisioned throughput is exceeded is on a provisioned GSI.

  • Throttling Error:

    • Code: ThrottlingError

    • Messages:

      • Throughput exceeds the current capacity of your table or index. DynamoDB is automatically scaling your table or index so please try again shortly. If exceptions persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.

        This message is returned when writes get throttled on an On-Demand table as DynamoDB is automatically scaling the table.

      • Throughput exceeds the current capacity for one or more global secondary indexes. DynamoDB is automatically scaling your index so please try again shortly.

        This message is returned when writes get throttled on an On-Demand GSI as DynamoDB is automatically scaling the GSI.

  • Validation Error:

    • Code: ValidationError

    • Messages:

      • One or more parameter values were invalid.

      • The update expression attempted to update the secondary index key beyond allowed size limits.

      • The update expression attempted to update the secondary index key to unsupported type.

      • An operand in the update expression has an incorrect data type.

      • Item size to update has exceeded the maximum allowed size.

      • Number overflow. Attempting to store a number with magnitude larger than supported range.

      • Type mismatch for attribute to update.

      • Nesting Levels have exceeded supported limits.

      • The document path provided in the update expression is invalid for update.

      • The provided expression refers to an attribute that does not exist in the item.

", "exception":true }, "TransactionConflictException":{ @@ -5846,7 +5856,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

The transaction with the given request token is already in progress.

", + "documentation":"

The transaction with the given request token is already in progress.

Recommended Settings

This is a general recommendation for handling the TransactionInProgressException. These settings help ensure that the client retries will trigger completion of the ongoing TransactWriteItems request.

  • Set clientExecutionTimeout to a value that allows at least one retry to be processed after 5 seconds have elapsed since the first attempt for the TransactWriteItems operation.

  • Set socketTimeout to a value a little lower than the requestTimeout setting.

  • requestTimeout should be set based on the time taken for the individual retries of a single HTTP request for your use case, but setting it to 1 second or higher should work well to reduce chances of retries and TransactionInProgressException errors.

  • Use exponential backoff when retrying and tune backoff if needed.

Assuming default retry policy, example timeout settings based on the guidelines above are as follows:

Example timeline:

  • 0-1000 first attempt

  • 1000-1500 first sleep/delay (default retry policy uses 500 ms as base delay for 4xx errors)

  • 1500-2500 second attempt

  • 2500-3500 second sleep/delay (500 * 2, exponential backoff)

  • 3500-4500 third attempt

  • 4500-6500 third sleep/delay (500 * 2^2)

  • 6500-7500 fourth attempt (this can trigger inline recovery since 5 seconds have elapsed since the first attempt reached TC)

", "exception":true }, "UntagResourceInput":{ @@ -6086,7 +6096,7 @@ }, "ReturnValues":{ "shape":"ReturnValue", - "documentation":"

Use ReturnValues if you want to get the item attributes as they appear before or after they are updated. For UpdateItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - Returns all of the attributes of the item, as they appeared before the UpdateItem operation.

  • UPDATED_OLD - Returns only the updated attributes, as they appeared before the UpdateItem operation.

  • ALL_NEW - Returns all of the attributes of the item, as they appear after the UpdateItem operation.

  • UPDATED_NEW - Returns only the updated attributes, as they appear after the UpdateItem operation.

There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.

The values returned are strongly consistent.

" + "documentation":"

Use ReturnValues if you want to get the item attributes as they appear before or after they are successfully updated. For UpdateItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - Returns all of the attributes of the item, as they appeared before the UpdateItem operation.

  • UPDATED_OLD - Returns only the updated attributes, as they appeared before the UpdateItem operation.

  • ALL_NEW - Returns all of the attributes of the item, as they appear after the UpdateItem operation.

  • UPDATED_NEW - Returns only the updated attributes, as they appear after the UpdateItem operation.

There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.

The values returned are strongly consistent.

" }, "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, "ReturnItemCollectionMetrics":{ @@ -6117,11 +6127,11 @@ "members":{ "Attributes":{ "shape":"AttributeMap", - "documentation":"

A map of attribute values as they appear before or after the UpdateItem operation, as determined by the ReturnValues parameter.

The Attributes map is only present if ReturnValues was specified as something other than NONE in the request. Each element represents one attribute.

" + "documentation":"

A map of attribute values as they appear before or after the UpdateItem operation, as determined by the ReturnValues parameter.

The Attributes map is only present if the update was successful and ReturnValues was specified as something other than NONE in the request. Each element represents one attribute.

" }, "ConsumedCapacity":{ "shape":"ConsumedCapacity", - "documentation":"

The capacity units consumed by the UpdateItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

" + "documentation":"

The capacity units consumed by the UpdateItem operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the ReturnConsumedCapacity parameter was specified. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

" }, "ItemCollectionMetrics":{ "shape":"ItemCollectionMetrics", @@ -6191,11 +6201,15 @@ }, "ReplicaUpdates":{ "shape":"ReplicationGroupUpdateList", - "documentation":"

A list of replica update actions (create, delete, or update) for the table.

This property only applies to Version 2019.11.21 of global tables.

" + "documentation":"

A list of replica update actions (create, delete, or update) for the table.

This property only applies to Version 2019.11.21 (Current) of global tables.

" }, "TableClass":{ "shape":"TableClass", "documentation":"

The table class of the table to be updated. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS.

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

Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table.

" } }, "documentation":"

Represents the input of an UpdateTable operation.

" diff --git a/services/ebs/pom.xml b/services/ebs/pom.xml index c4aa0b98874d..2f44b31b21b5 100644 --- a/services/ebs/pom.xml +++ b/services/ebs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ebs AWS Java SDK :: Services :: EBS diff --git a/services/ec2/pom.xml b/services/ec2/pom.xml index c0501e5a0dea..9ce39a442a7a 100644 --- a/services/ec2/pom.xml +++ b/services/ec2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ec2 AWS Java SDK :: Services :: Amazon EC2 diff --git a/services/ec2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ec2/src/main/resources/codegen-resources/endpoint-rule-set.json index 842499e38293..bdc98a72139e 100644 --- a/services/ec2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ec2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://ec2.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,66 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://ec2.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://ec2.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ec2/src/main/resources/codegen-resources/endpoint-tests.json b/services/ec2/src/main/resources/codegen-resources/endpoint-tests.json index 1bbbe994a996..46ee7e1ef7f5 100644 --- a/services/ec2/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ec2/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": false, "Region": "af-south-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-northeast-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-northeast-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-northeast-3", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": true, "Region": "ap-south-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-southeast-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -112,9 +112,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-southeast-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -125,9 +125,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-southeast-3", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -138,9 +138,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ca-central-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -151,9 +151,9 @@ } }, "params": { - "UseDualStack": false, "Region": "ca-central-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -164,9 +164,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-central-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -177,9 +177,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -190,9 +190,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-south-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -203,9 +203,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -216,9 +216,9 @@ } }, "params": { - "UseDualStack": true, "Region": "eu-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -229,9 +229,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-west-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -242,9 +242,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-west-3", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -255,9 +255,9 @@ } }, "params": { - "UseDualStack": false, "Region": "me-south-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -268,9 +268,9 @@ } }, "params": { - "UseDualStack": false, "Region": "sa-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -281,9 +281,9 @@ } }, "params": { - "UseDualStack": true, "Region": "sa-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -294,9 +294,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -307,9 +307,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -320,9 +320,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -333,9 +333,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -346,9 +346,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-2", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -359,9 +359,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -372,9 +372,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -385,9 +385,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-west-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -398,9 +398,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-west-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -411,9 +411,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-west-2", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -424,9 +424,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-west-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -437,9 +437,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -450,9 +450,9 @@ } }, "params": { - "UseDualStack": false, "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -463,9 +463,9 @@ } }, "params": { - "UseDualStack": false, "Region": "cn-northwest-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -476,9 +476,9 @@ } }, "params": { - "UseDualStack": true, "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -489,9 +489,9 @@ } }, "params": { - "UseDualStack": false, "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -502,9 +502,9 @@ } }, "params": { - "UseDualStack": true, "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -515,9 +515,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -528,9 +528,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -541,9 +541,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-gov-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -554,9 +554,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -567,9 +567,9 @@ } }, "params": { - "UseDualStack": true, "Region": "us-gov-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -580,9 +580,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-iso-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -593,9 +593,20 @@ } }, "params": { - "UseDualStack": false, "Region": "us-iso-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -606,9 +617,20 @@ } }, "params": { - "UseDualStack": false, "Region": "us-iso-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -619,9 +641,20 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -632,22 +665,46 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -657,9 +714,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -669,11 +726,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/ec2/src/main/resources/codegen-resources/service-2.json b/services/ec2/src/main/resources/codegen-resources/service-2.json index d999c6a3a4e3..1ba1ee1dbb12 100644 --- a/services/ec2/src/main/resources/codegen-resources/service-2.json +++ b/services/ec2/src/main/resources/codegen-resources/service-2.json @@ -120,7 +120,7 @@ }, "input":{"shape":"AllocateIpamPoolCidrRequest"}, "output":{"shape":"AllocateIpamPoolCidrResult"}, - "documentation":"

Allocate a CIDR from an IPAM pool. In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM pool or to a resource. For more information, see Allocate CIDRs in the Amazon VPC IPAM User Guide.

" + "documentation":"

Allocate a CIDR from an IPAM pool. In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM pool or to a resource. For more information, see Allocate CIDRs in the Amazon VPC IPAM User Guide.

This action creates an allocation with strong consistency. The returned CIDR will not overlap with any other allocations from the same pool.

" }, "ApplySecurityGroupsToClientVpnTargetNetwork":{ "name":"ApplySecurityGroupsToClientVpnTargetNetwork", @@ -466,7 +466,7 @@ }, "input":{"shape":"CancelImageLaunchPermissionRequest"}, "output":{"shape":"CancelImageLaunchPermissionResult"}, - "documentation":"

Removes your Amazon Web Services account from the launch permissions for the specified AMI. For more information, see Cancel having an AMI shared with your Amazon Web Services account in the Amazon EC2 User Guide.

" + "documentation":"

Removes your Amazon Web Services account from the launch permissions for the specified AMI. For more information, see Cancel having an AMI shared with your Amazon Web Services account in the Amazon EC2 User Guide.

" }, "CancelImportTask":{ "name":"CancelImportTask", @@ -496,7 +496,7 @@ }, "input":{"shape":"CancelSpotFleetRequestsRequest"}, "output":{"shape":"CancelSpotFleetRequestsResponse"}, - "documentation":"

Cancels the specified Spot Fleet requests.

After you cancel a Spot Fleet request, the Spot Fleet launches no new Spot Instances. You must specify whether the Spot Fleet should also terminate its Spot Instances. If you terminate the instances, the Spot Fleet request enters the cancelled_terminating state. Otherwise, the Spot Fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually.

" + "documentation":"

Cancels the specified Spot Fleet requests.

After you cancel a Spot Fleet request, the Spot Fleet launches no new instances.

You must also specify whether a canceled Spot Fleet request should terminate its instances. If you choose to terminate the instances, the Spot Fleet request enters the cancelled_terminating state. Otherwise, the Spot Fleet request enters the cancelled_running state and the instances continue to run until they are interrupted or you terminate them manually.

" }, "CancelSpotInstanceRequests":{ "name":"CancelSpotInstanceRequests", @@ -905,7 +905,7 @@ }, "input":{"shape":"CreateNetworkInsightsPathRequest"}, "output":{"shape":"CreateNetworkInsightsPathResult"}, - "documentation":"

Creates a path to analyze for reachability.

Reachability Analyzer enables you to analyze and debug network reachability between two resources in your virtual private cloud (VPC). For more information, see What is Reachability Analyzer.

" + "documentation":"

Creates a path to analyze for reachability.

Reachability Analyzer enables you to analyze and debug network reachability between two resources in your virtual private cloud (VPC). For more information, see the Reachability Analyzer Guide.

" }, "CreateNetworkInterface":{ "name":"CreateNetworkInterface", @@ -1015,7 +1015,7 @@ }, "input":{"shape":"CreateSnapshotRequest"}, "output":{"shape":"Snapshot"}, - "documentation":"

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

You can create snapshots of volumes in a Region and volumes on an Outpost. If you create a snapshot of a volume in a Region, the snapshot must be stored in the same Region as the volume. If you create a snapshot of a volume on an Outpost, the snapshot can be stored on the same Outpost as the volume, or in the Region for that Outpost.

When a snapshot is created, any Amazon Web Services Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your Amazon EBS volume at the time the snapshot command is issued; this might exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

To create a snapshot for Amazon EBS volumes that serve as root devices, you should stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

You can tag your snapshots during creation. For more information, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide.

For more information, see Amazon Elastic Block Store and Amazon EBS encryption in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

You can create snapshots of volumes in a Region and volumes on an Outpost. If you create a snapshot of a volume in a Region, the snapshot must be stored in the same Region as the volume. If you create a snapshot of a volume on an Outpost, the snapshot can be stored on the same Outpost as the volume, or in the Region for that Outpost.

When a snapshot is created, any Amazon Web Services Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your Amazon EBS volume at the time the snapshot command is issued; this might exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

When you create a snapshot for an EBS volume that serves as a root device, we recommend that you stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

You can tag your snapshots during creation. For more information, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide.

For more information, see Amazon Elastic Block Store and Amazon EBS encryption in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateSnapshots":{ "name":"CreateSnapshots", @@ -1441,7 +1441,7 @@ }, "input":{"shape":"DeleteFleetsRequest"}, "output":{"shape":"DeleteFleetsResult"}, - "documentation":"

Deletes the specified EC2 Fleet.

After you delete an EC2 Fleet, it launches no new instances.

You must specify whether a deleted EC2 Fleet should also terminate its instances. If you choose to terminate the instances, the EC2 Fleet enters the deleted_terminating state. Otherwise, the EC2 Fleet enters the deleted_running state, and the instances continue to run until they are interrupted or you terminate them manually.

For instant fleets, EC2 Fleet must terminate the instances when the fleet is deleted. A deleted instant fleet with running instances is not supported.

Restrictions

  • You can delete up to 25 instant fleets in a single request. If you exceed this number, no instant fleets are deleted and an error is returned. There is no restriction on the number of fleets of type maintain or request that can be deleted in a single request.

  • Up to 1000 instances can be terminated in a single request to delete instant fleets.

For more information, see Delete an EC2 Fleet in the Amazon EC2 User Guide.

" + "documentation":"

Deletes the specified EC2 Fleets.

After you delete an EC2 Fleet, it launches no new instances.

You must also specify whether a deleted EC2 Fleet should terminate its instances. If you choose to terminate the instances, the EC2 Fleet enters the deleted_terminating state. Otherwise, the EC2 Fleet enters the deleted_running state, and the instances continue to run until they are interrupted or you terminate them manually.

For instant fleets, EC2 Fleet must terminate the instances when the fleet is deleted. A deleted instant fleet with running instances is not supported.

Restrictions

  • You can delete up to 25 instant fleets in a single request. If you exceed this number, no instant fleets are deleted and an error is returned. There is no restriction on the number of fleets of type maintain or request that can be deleted in a single request.

  • Up to 1000 instances can be terminated in a single request to delete instant fleets.

For more information, see Delete an EC2 Fleet in the Amazon EC2 User Guide.

" }, "DeleteFlowLogs":{ "name":"DeleteFlowLogs", @@ -3112,7 +3112,7 @@ }, "input":{"shape":"DescribeSnapshotsRequest"}, "output":{"shape":"DescribeSnapshotsResult"}, - "documentation":"

Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.

The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions.

The create volume permissions fall into the following categories:

  • public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All Amazon Web Services accounts have create volume permissions for these snapshots.

  • explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account.

  • implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns.

The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the Amazon Web Services account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, we recommend that you paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results.

To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.

The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume permissions.

The create volume permissions fall into the following categories:

  • public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All Amazon Web Services accounts have create volume permissions for these snapshots.

  • explicit: The owner of the snapshot granted create volume permissions to a specific Amazon Web Services account.

  • implicit: An Amazon Web Services account has implicit create volume permissions for all snapshots it owns.

The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the Amazon Web Services account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination.

To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeSpotDatafeedSubscription":{ "name":"DescribeSpotDatafeedSubscription", @@ -3162,7 +3162,7 @@ }, "input":{"shape":"DescribeSpotInstanceRequestsRequest"}, "output":{"shape":"DescribeSpotInstanceRequestsResult"}, - "documentation":"

Describes the specified Spot Instance requests.

You can use DescribeSpotInstanceRequests to find a running Spot Instance by examining the response. If the status of the Spot Instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot.

We recommend that you set MaxResults to a value between 5 and 1000 to limit the number of results returned. This paginates the output, which makes the list more manageable and returns the results faster. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSpotInstanceRequests request to retrieve the remaining results.

Spot Instance requests are deleted four hours after they are canceled and their instances are terminated.

" + "documentation":"

Describes the specified Spot Instance requests.

You can use DescribeSpotInstanceRequests to find a running Spot Instance by examining the response. If the status of the Spot Instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot.

We recommend that you set MaxResults to a value between 5 and 1000 to limit the number of items returned. This paginates the output, which makes the list more manageable and returns the items faster. If the list of items exceeds your MaxResults value, then that number of items is returned along with a NextToken value that can be passed to a subsequent DescribeSpotInstanceRequests request to retrieve the remaining items.

Spot Instance requests are deleted four hours after they are canceled and their instances are terminated.

" }, "DescribeSpotPriceHistory":{ "name":"DescribeSpotPriceHistory", @@ -3432,7 +3432,7 @@ }, "input":{"shape":"DescribeVolumesRequest"}, "output":{"shape":"DescribeVolumesResult"}, - "documentation":"

Describes the specified EBS volumes or all of your EBS volumes.

If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeVolumes request to retrieve the remaining results.

For more information about EBS volumes, see Amazon EBS volumes in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Describes the specified EBS volumes or all of your EBS volumes.

If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. For more information, see Pagination.

For more information about EBS volumes, see Amazon EBS volumes in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeVolumesModifications":{ "name":"DescribeVolumesModifications", @@ -4254,7 +4254,7 @@ }, "input":{"shape":"GetIpamPoolAllocationsRequest"}, "output":{"shape":"GetIpamPoolAllocationsResult"}, - "documentation":"

Get a list of all the CIDR allocations in an IPAM pool.

" + "documentation":"

Get a list of all the CIDR allocations in an IPAM pool.

If you use this action after AllocateIpamPoolCidr or ReleaseIpamPoolAllocation, note that all EC2 API actions follow an eventual consistency model.

" }, "GetIpamPoolCidrs":{ "name":"GetIpamPoolCidrs", @@ -4486,6 +4486,16 @@ "output":{"shape":"GetVpnConnectionDeviceTypesResult"}, "documentation":"

Obtain a list of customer gateway devices for which sample configuration files can be provided. The request has no additional parameters. You can also see the list of device types with sample configuration files available under Your customer gateway device in the Amazon Web Services Site-to-Site VPN User Guide.

" }, + "GetVpnTunnelReplacementStatus":{ + "name":"GetVpnTunnelReplacementStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetVpnTunnelReplacementStatusRequest"}, + "output":{"shape":"GetVpnTunnelReplacementStatusResult"}, + "documentation":"

Get details of available tunnel endpoint maintenance.

" + }, "ImportClientVpnClientCertificateRevocationList":{ "name":"ImportClientVpnClientCertificateRevocationList", "http":{ @@ -4504,7 +4514,7 @@ }, "input":{"shape":"ImportImageRequest"}, "output":{"shape":"ImportImageResult"}, - "documentation":"

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI).

Amazon Web Services VM Import/Export strongly recommends specifying a value for either the --license-type or --usage-operation parameter when you create a new VM Import task. This ensures your operating system is licensed appropriately and your billing is optimized.

For more information, see Importing a VM as an image using VM Import/Export in the VM Import/Export User Guide.

" + "documentation":"

To import your virtual machines (VMs) with a console-based experience, you can use the Import virtual machine images to Amazon Web Services template in the Migration Hub Orchestrator console. For more information, see the Migration Hub Orchestrator User Guide .

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI).

Amazon Web Services VM Import/Export strongly recommends specifying a value for either the --license-type or --usage-operation parameter when you create a new VM Import task. This ensures your operating system is licensed appropriately and your billing is optimized.

For more information, see Importing a VM as an image using VM Import/Export in the VM Import/Export User Guide.

" }, "ImportInstance":{ "name":"ImportInstance", @@ -4691,7 +4701,7 @@ "requestUri":"/" }, "input":{"shape":"ModifyImageAttributeRequest"}, - "documentation":"

Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. You can use the Attribute parameter to specify the attribute or one of the following parameters: Description or LaunchPermission.

Images with an Amazon Web Services Marketplace product code cannot be made public.

To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance and create an AMI from the instance.

" + "documentation":"

Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.

To specify the attribute, you can use the Attribute parameter, or one of the following parameters: Description, ImdsSupport, or LaunchPermission.

Images with an Amazon Web Services Marketplace product code cannot be made public.

To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance and create an AMI from the instance.

" }, "ModifyInstanceAttribute":{ "name":"ModifyInstanceAttribute", @@ -5145,7 +5155,7 @@ }, "input":{"shape":"ModifyVpcPeeringConnectionOptionsRequest"}, "output":{"shape":"ModifyVpcPeeringConnectionOptionsResult"}, - "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:

  • Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.

  • Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.

  • Enable/disable the ability to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.

If the peered VPCs are in the same Amazon Web Services account, you can enable DNS resolution for queries from the local VPC. This ensures that queries from the local VPC resolve to private IP addresses in the peer VPC. This option is not available if the peered VPCs are in different different Amazon Web Services accounts or different Regions. For peered VPCs in different Amazon Web Services accounts, each Amazon Web Services account owner must initiate a separate request to modify the peering connection options. For inter-region peering connections, you must use the Region for the requester VPC to modify the requester VPC peering options and the Region for the accepter VPC to modify the accepter VPC peering options. To verify which VPCs are the accepter and the requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:

  • Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.

  • Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.

  • Enable/disable the ability to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.

If the peered VPCs are in the same Amazon Web Services account, you can enable DNS resolution for queries from the local VPC. This ensures that queries from the local VPC resolve to private IP addresses in the peer VPC. This option is not available if the peered VPCs are in different Amazon Web Services accounts or different Regions. For peered VPCs in different Amazon Web Services accounts, each Amazon Web Services account owner must initiate a separate request to modify the peering connection options. For inter-region peering connections, you must use the Region for the requester VPC to modify the requester VPC peering options and the Region for the accepter VPC to modify the accepter VPC peering options. To verify which VPCs are the accepter and the requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.

" }, "ModifyVpcTenancy":{ "name":"ModifyVpcTenancy", @@ -5413,7 +5423,7 @@ }, "input":{"shape":"ReleaseIpamPoolAllocationRequest"}, "output":{"shape":"ReleaseIpamPoolAllocationResult"}, - "documentation":"

Release an allocation within an IPAM pool. You can only use this action to release manual allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using ModifyIpamResourceCidr. For more information, see Release an allocation in the Amazon VPC IPAM User Guide.

" + "documentation":"

Release an allocation within an IPAM pool. You can only use this action to release manual allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using ModifyIpamResourceCidr. For more information, see Release an allocation in the Amazon VPC IPAM User Guide.

All EC2 API actions follow an eventual consistency model.

" }, "ReplaceIamInstanceProfileAssociation":{ "name":"ReplaceIamInstanceProfileAssociation", @@ -5473,6 +5483,16 @@ "output":{"shape":"ReplaceTransitGatewayRouteResult"}, "documentation":"

Replaces the specified route in the specified transit gateway route table.

" }, + "ReplaceVpnTunnel":{ + "name":"ReplaceVpnTunnel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceVpnTunnelRequest"}, + "output":{"shape":"ReplaceVpnTunnelResult"}, + "documentation":"

Trigger replacement of specified VPN tunnel.

" + }, "ReportInstanceStatus":{ "name":"ReportInstanceStatus", "http":{ @@ -5804,7 +5824,7 @@ }, "input":{"shape":"UnassignPrivateNatGatewayAddressRequest"}, "output":{"shape":"UnassignPrivateNatGatewayAddressResult"}, - "documentation":"

Unassigns secondary private NAT gateway IPv4 addresses from a private NAT gateway. You cannot unassign your primary private IP. For more information, see Edit secondary IP address associations in the Amazon Virtual Private Cloud User Guide.

While unassigning is in progress, you cannot assign/unassign additional IP addresses while the connections are being drained. You are, however, allowed to delete the NAT gateway.

A private IP address will only be released at the end of MaxDrainDurationSeconds. The private IP addresses stay associated and support the existing connections but do not support any new connections (new connections are distributed across the remaining assigned private IP address). After the existing connections drain out, the private IP addresses get released.

" + "documentation":"

Unassigns secondary private IPv4 addresses from a private NAT gateway. You cannot unassign your primary private IP. For more information, see Edit secondary IP address associations in the Amazon Virtual Private Cloud User Guide.

While unassigning is in progress, you cannot assign/unassign additional IP addresses while the connections are being drained. You are, however, allowed to delete the NAT gateway.

A private IP address will only be released at the end of MaxDrainDurationSeconds. The private IP addresses stay associated and support the existing connections but do not support any new connections (new connections are distributed across the remaining assigned private IP address). After the existing connections drain out, the private IP addresses get released.

" }, "UnmonitorInstances":{ "name":"UnmonitorInstances", @@ -6417,16 +6437,46 @@ "members":{ "AdditionalDetailType":{ "shape":"String", - "documentation":"

The information type.

", + "documentation":"

The additional detail code.

", "locationName":"additionalDetailType" }, "Component":{ "shape":"AnalysisComponent", "documentation":"

The path component.

", "locationName":"component" + }, + "VpcEndpointService":{ + "shape":"AnalysisComponent", + "documentation":"

The VPC endpoint service.

", + "locationName":"vpcEndpointService" + }, + "RuleOptions":{ + "shape":"RuleOptionList", + "documentation":"

The rule options.

", + "locationName":"ruleOptionSet" + }, + "RuleGroupTypePairs":{ + "shape":"RuleGroupTypePairList", + "documentation":"

The rule group type.

", + "locationName":"ruleGroupTypePairSet" + }, + "RuleGroupRuleOptionsPairs":{ + "shape":"RuleGroupRuleOptionsPairList", + "documentation":"

The rule options.

", + "locationName":"ruleGroupRuleOptionsPairSet" + }, + "ServiceName":{ + "shape":"String", + "documentation":"

The name of the VPC endpoint service.

", + "locationName":"serviceName" + }, + "LoadBalancers":{ + "shape":"AnalysisComponentList", + "documentation":"

The load balancers.

", + "locationName":"loadBalancerSet" } }, - "documentation":"

Describes an additional detail for a path analysis.

" + "documentation":"

Describes an additional detail for a path analysis. For more information, see Reachability Analyzer additional detail codes.

" }, "AdditionalDetailList":{ "type":"list", @@ -6777,6 +6827,10 @@ "OutpostArn":{ "shape":"String", "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate the Dedicated Host.

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

Indicates whether to enable or disable host maintenance for the Dedicated Host. For more information, see Host maintenance in the Amazon EC2 User Guide.

" } } }, @@ -7158,6 +7212,21 @@ "shape":"String", "documentation":"

The state. The following are the possible values:

  • active

  • blackhole

", "locationName":"state" + }, + "CarrierGatewayId":{ + "shape":"String", + "documentation":"

The ID of a carrier gateway.

", + "locationName":"carrierGatewayId" + }, + "CoreNetworkArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of a core network.

", + "locationName":"coreNetworkArn" + }, + "LocalGatewayId":{ + "shape":"String", + "documentation":"

The ID of a local gateway.

", + "locationName":"localGatewayId" } }, "documentation":"

Describes a route table route.

" @@ -7467,7 +7536,7 @@ "documentation":"

The ID of the instance. The instance must have exactly one attached network interface. For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both. For EC2-Classic, you must specify an instance ID and the instance must be in the running state.

" }, "PublicIp":{ - "shape":"String", + "shape":"EipAllocationPublicIp", "documentation":"

[EC2-Classic] The Elastic IP address to associate with the instance. This is required for EC2-Classic.

" }, "AllowReassociation":{ @@ -8779,6 +8848,7 @@ "locationName":"item" } }, + "AvailabilityZoneName":{"type":"string"}, "AvailabilityZoneOptInStatus":{ "type":"string", "enum":[ @@ -8963,7 +9033,8 @@ "type":"string", "enum":[ "legacy-bios", - "uefi" + "uefi", + "uefi-preferred" ] }, "BoxedDouble":{"type":"double"}, @@ -9427,7 +9498,7 @@ }, "TerminateInstances":{ "shape":"Boolean", - "documentation":"

Indicates whether to terminate instances for a Spot Fleet request if it is canceled successfully.

", + "documentation":"

Indicates whether to terminate the associated instances when the Spot Fleet request is canceled. The default is to terminate the instances.

To let the instances continue to run after the Spot Fleet request is canceled, specify no-terminate-instances.

", "locationName":"terminateInstances" } }, @@ -11785,10 +11856,7 @@ }, "CreateCustomerGatewayRequest":{ "type":"structure", - "required":[ - "BgpAsn", - "Type" - ], + "required":["Type"], "members":{ "BgpAsn":{ "shape":"Integer", @@ -13142,26 +13210,25 @@ "type":"structure", "required":[ "Source", - "Destination", "Protocol", "ClientToken" ], "members":{ "SourceIp":{ "shape":"IpAddress", - "documentation":"

The IP address of the Amazon Web Services resource that is the source of the path.

" + "documentation":"

The IP address of the source.

" }, "DestinationIp":{ "shape":"IpAddress", - "documentation":"

The IP address of the Amazon Web Services resource that is the destination of the path.

" + "documentation":"

The IP address of the destination.

" }, "Source":{ "shape":"NetworkInsightsResourceId", - "documentation":"

The Amazon Web Services resource that is the source of the path.

" + "documentation":"

The ID or ARN of the source. If the resource is in another account, you must specify an ARN.

" }, "Destination":{ "shape":"NetworkInsightsResourceId", - "documentation":"

The Amazon Web Services resource that is the destination of the path.

" + "documentation":"

The ID or ARN of the destination. If the resource is in another account, you must specify an ARN.

" }, "Protocol":{ "shape":"Protocol", @@ -13184,6 +13251,14 @@ "shape":"String", "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", "idempotencyToken":true + }, + "FilterAtSource":{ + "shape":"PathRequestFilter", + "documentation":"

Scopes the analysis to network paths that match specific filters at the source. If you specify this parameter, you can't specify the parameters for the source IP address or the destination port.

" + }, + "FilterAtDestination":{ + "shape":"PathRequestFilter", + "documentation":"

Scopes the analysis to network paths that match specific filters at the destination. If you specify this parameter, you can't specify the parameter for the destination IP address.

" } } }, @@ -13662,7 +13737,7 @@ "members":{ "Description":{ "shape":"String", - "documentation":"

A description for the security group. This is informational only.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", + "documentation":"

A description for the security group.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", "locationName":"GroupDescription" }, "GroupName":{ @@ -15017,7 +15092,7 @@ "required":["AvailabilityZone"], "members":{ "AvailabilityZone":{ - "shape":"String", + "shape":"AvailabilityZoneName", "documentation":"

The Availability Zone in which to create the volume.

" }, "Encrypted":{ @@ -15987,7 +16062,7 @@ }, "TerminateInstances":{ "shape":"Boolean", - "documentation":"

Indicates whether to terminate the instances when the EC2 Fleet is deleted. The default is to terminate the instances.

To let the instances continue to run after the EC2 Fleet is deleted, specify NoTerminateInstances. Supported only for fleets of type maintain and request.

For instant fleets, you cannot specify NoTerminateInstances. A deleted instant fleet with running instances is not supported.

" + "documentation":"

Indicates whether to terminate the associated instances when the EC2 Fleet is deleted. The default is to terminate the instances.

To let the instances continue to run after the EC2 Fleet is deleted, specify no-terminate-instances. Supported only for fleets of type maintain and request.

For instant fleets, you cannot specify NoTerminateInstances. A deleted instant fleet with running instances is not supported.

" } } }, @@ -17677,7 +17752,7 @@ }, "Cidr":{ "shape":"String", - "documentation":"

The CIDR you want to deprovision from the pool.

" + "documentation":"

The CIDR you want to deprovision from the pool. Enter the CIDR you want to deprovision with a netmask of /32. You must rerun this command for each IP address in the CIDR range. If your CIDR is a /24, you will have to run this command to deprovision each of the 256 IP addresses in the /24 CIDR.

" } } }, @@ -17991,7 +18066,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

The filters.

  • group-name - For Availability Zones, use the Region name. For Local Zones, use the name of the group associated with the Local Zone (for example, us-west-2-lax-1) For Wavelength Zones, use the name of the group associated with the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

  • message - The Zone message.

  • opt-in-status - The opt-in status (opted-in, and not-opted-in | opt-in-not-required).

  • parent-zoneID - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

  • parent-zoneName - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

  • region-name - The name of the Region for the Zone (for example, us-east-1).

  • state - The state of the Availability Zone, the Local Zone, or the Wavelength Zone (available).

  • zone-id - The ID of the Availability Zone (for example, use1-az1), the Local Zone (for example, usw2-lax1-az1), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

  • zone-type - The type of zone, for example, local-zone.

  • zone-name - The name of the Availability Zone (for example, us-east-1a), the Local Zone (for example, us-west-2-lax-1a), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

  • zone-type - The type of zone, for example, local-zone.

", + "documentation":"

The filters.

  • group-name - For Availability Zones, use the Region name. For Local Zones, use the name of the group associated with the Local Zone (for example, us-west-2-lax-1) For Wavelength Zones, use the name of the group associated with the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

  • message - The Zone message.

  • opt-in-status - The opt-in status (opted-in | not-opted-in | opt-in-not-required).

  • parent-zoneID - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

  • parent-zoneName - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls.

  • region-name - The name of the Region for the Zone (for example, us-east-1).

  • state - The state of the Availability Zone, the Local Zone, or the Wavelength Zone (available).

  • zone-id - The ID of the Availability Zone (for example, use1-az1), the Local Zone (for example, usw2-lax1-az1), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

  • zone-name - The name of the Availability Zone (for example, us-east-1a), the Local Zone (for example, us-west-2-lax-1a), or the Wavelength Zone (for example, us-east-1-wl1-bos-wlz-1).

  • zone-type - The type of zone (availability-zone | local-zone | wavelength-zone).

", "locationName":"Filter" }, "ZoneNames":{ @@ -18291,12 +18366,12 @@ }, "MaxResults":{ "shape":"DescribeClassicLinkInstancesMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

Constraint: If the value is greater than 1000, we return only 1000 items.

", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

Constraint: If the value is greater than 1000, we return only 1000 items.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", "locationName":"nextToken" } } @@ -18311,7 +18386,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -18686,11 +18761,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeDhcpOptionsMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -18704,7 +18779,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -18728,11 +18803,11 @@ }, "MaxResults":{ "shape":"DescribeEgressOnlyInternetGatewaysMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "Filters":{ "shape":"FilterList", @@ -18751,7 +18826,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -18895,11 +18970,11 @@ }, "MaxResults":{ "shape":"DescribeFastLaunchImagesRequestMaxResults", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value. If this parameter is not specified, then all results are returned.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token for the next set of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "DryRun":{ "shape":"Boolean", @@ -18922,7 +18997,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to use for the next set of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -18952,7 +19027,7 @@ }, "MaxParallelLaunches":{ "shape":"Integer", - "documentation":"

The maximum number of parallel instances that are launched for creating resources.

", + "documentation":"

The maximum number of instances that Amazon EC2 can launch at the same time to create pre-provisioned snapshots for Windows faster launching.

", "locationName":"maxParallelLaunches" }, "OwnerId":{ @@ -19068,11 +19143,11 @@ }, "MaxResults":{ "shape":"DescribeFastSnapshotRestoresMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "DryRun":{ "shape":"Boolean", @@ -19090,7 +19165,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -19138,11 +19213,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next set of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "FleetId":{ "shape":"FleetId", @@ -19164,12 +19239,12 @@ }, "LastEvaluatedTime":{ "shape":"DateTime", - "documentation":"

The last date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). All records up to this time were retrieved.

If nextToken indicates that there are more results, this value is not present.

", + "documentation":"

The last date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). All records up to this time were retrieved.

If nextToken indicates that there are more items, this value is not present.

", "locationName":"lastEvaluatedTime" }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "FleetId":{ @@ -19194,11 +19269,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next set of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "FleetId":{ "shape":"FleetId", @@ -19221,7 +19296,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "FleetId":{ @@ -19285,11 +19360,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next set of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "FleetIds":{ "shape":"FleetIdSet", @@ -19308,7 +19383,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "Fleets":{ @@ -19336,11 +19411,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next page of results.

" + "documentation":"

The token to request the next page of items. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -19354,7 +19429,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to request the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -19587,11 +19662,11 @@ }, "MaxResults":{ "shape":"DescribeIamInstanceProfileAssociationsMaxResults", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to request the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -19605,7 +19680,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -19712,11 +19787,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -19730,7 +19805,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -19865,11 +19940,11 @@ }, "MaxResults":{ "shape":"DescribeInstanceCreditSpecificationsMaxResults", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

You cannot specify this parameter and the instance IDs parameter in the same call.

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

The token to retrieve the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -19883,7 +19958,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -19965,11 +20040,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

You cannot specify this parameter and the instance IDs parameter in the same request.

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

The token to retrieve the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "DryRun":{ "shape":"Boolean", @@ -19993,7 +20068,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -20016,11 +20091,11 @@ }, "MaxResults":{ "shape":"DITOMaxResults", - "documentation":"

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the next token value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to retrieve the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -20034,7 +20109,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -20058,11 +20133,11 @@ }, "MaxResults":{ "shape":"DITMaxResults", - "documentation":"

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the next token value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to retrieve the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -20076,7 +20151,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -20101,12 +20176,12 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.

", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

You cannot specify this parameter and the instance IDs parameter in the same request.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The token to request the next page of results.

", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", "locationName":"nextToken" } } @@ -20121,7 +20196,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -20151,11 +20226,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeInternetGatewaysMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -20169,7 +20244,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -20941,7 +21016,7 @@ }, "MaxResults":{ "shape":"DescribeNatGatewaysMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NatGatewayIds":{ "shape":"NatGatewayIdStringList", @@ -20950,7 +21025,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -20964,7 +21039,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -20994,11 +21069,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeNetworkAclsMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -21012,7 +21087,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -21177,7 +21252,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

The filters. The following are the possible values:

  • destination - The ID of the resource.

  • destination-port - The destination port.

  • protocol - The protocol.

  • source - The ID of the resource.

", + "documentation":"

The filters. The following are the possible values:

  • destination - The ID of the resource.

  • filter-at-source.source-address - The source IPv4 address at the source.

  • filter-at-source.source-port-range - The source port range at the source.

  • filter-at-source.destination-address - The destination IPv4 address at the source.

  • filter-at-source.destination-port-range - The destination port range at the source.

  • filter-at-destination.source-address - The source IPv4 address at the destination.

  • filter-at-destination.source-port-range - The source port range at the destination.

  • filter-at-destination.destination-address - The destination IPv4 address at the destination.

  • filter-at-destination.destination-port-range - The destination port range at the destination.

  • protocol - The protocol.

  • source - The ID of the resource.

", "locationName":"Filter" }, "MaxResults":{ @@ -21282,11 +21357,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to request the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeNetworkInterfacePermissionsMaxResults", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. If this parameter is not specified, up to 50 results are returned by default.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. If this parameter is not specified, up to 50 results are returned by default. For more information, see Pagination.

" } }, "documentation":"

Contains the parameters for DescribeNetworkInterfacePermissions.

" @@ -21301,7 +21376,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } }, @@ -21332,11 +21407,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to retrieve the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeNetworkInterfacesMaxResults", - "documentation":"

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. You cannot specify this parameter and the network interface IDs parameter in the same request.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. You cannot specify this parameter and the network interface IDs parameter in the same request. For more information, see Pagination.

" } }, "documentation":"

Contains the parameters for DescribeNetworkInterfaces.

" @@ -21351,11 +21426,10 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } - }, - "documentation":"

Contains the output of DescribeNetworkInterfaces.

" + } }, "DescribePlacementGroupsRequest":{ "type":"structure", @@ -21568,11 +21642,11 @@ }, "MaxResults":{ "shape":"DescribeReplaceRootVolumeTasksMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "DryRun":{ "shape":"Boolean", @@ -21590,7 +21664,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -21819,11 +21893,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeRouteTablesMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -21837,7 +21911,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } }, @@ -22003,11 +22077,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeSecurityGroupRulesMaxResults", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value. This value can be between 5 and 1000. If this parameter is not specified, then all results are returned.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. This value can be between 5 and 1000. If this parameter is not specified, then all items are returned. For more information, see Pagination.

" } } }, @@ -22021,7 +22095,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -22056,11 +22130,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to request the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeSecurityGroupsMaxResults", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value. This value can be between 5 and 1000. If this parameter is not specified, then all results are returned.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. This value can be between 5 and 1000. If this parameter is not specified, then all items are returned. For more information, see Pagination.

" } } }, @@ -22074,7 +22148,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -22136,11 +22210,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeSnapshotTierStatusMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -22154,7 +22228,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -22169,11 +22243,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of snapshot results returned by DescribeSnapshots in paginated output. When this parameter is used, DescribeSnapshots only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeSnapshots request with the returned NextToken value. This value can be between 5 and 1,000; if MaxResults is given a value larger than 1,000, only 1,000 results are returned. If this parameter is not used, then DescribeSnapshots returns all results. You cannot specify this parameter and the snapshot IDs parameter in the same request.

" + "documentation":"

The maximum number of snapshots to return for this request. This value can be between 5 and 1,000; if this value is larger than 1,000, only 1,000 results are returned. If this parameter is not used, then the request returns all snapshots. You cannot specify this parameter and the snapshot IDs parameter in the same request. For more information, see Pagination.

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

The NextToken value returned from a previous paginated DescribeSnapshots request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "OwnerIds":{ "shape":"OwnerStringList", @@ -22207,7 +22281,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The NextToken value to include in a future DescribeSnapshots request. When the results of a DescribeSnapshots request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to return the next page of snapshots. This value is null when there are no more snapshots to return.

", "locationName":"nextToken" } } @@ -22250,12 +22324,12 @@ }, "MaxResults":{ "shape":"DescribeSpotFleetInstancesMaxResults", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "SpotFleetRequestId":{ @@ -22276,7 +22350,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "SpotFleetRequestId":{ @@ -22311,12 +22385,12 @@ }, "MaxResults":{ "shape":"DescribeSpotFleetRequestHistoryMaxResults", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "SpotFleetRequestId":{ @@ -22342,12 +22416,12 @@ }, "LastEvaluatedTime":{ "shape":"DateTime", - "documentation":"

The last date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). All records up to this time were retrieved.

If nextToken indicates that there are more results, this value is not present.

", + "documentation":"

The last date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). All records up to this time were retrieved.

If nextToken indicates that there are more items, this value is not present.

", "locationName":"lastEvaluatedTime" }, "NextToken":{ "shape":"String", - "documentation":"

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "SpotFleetRequestId":{ @@ -22373,12 +22447,12 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "SpotFleetRequestIds":{ @@ -22394,7 +22468,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "SpotFleetRequestConfigs":{ @@ -22425,11 +22499,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to request the next set of results. This value is null when there are no more results to return.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 5 and 1000. To retrieve the remaining results, make another call with the returned NextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } }, "documentation":"

Contains the parameters for DescribeSpotInstanceRequests.

" @@ -22444,7 +22518,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next set of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } }, @@ -22480,12 +22554,12 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", "locationName":"nextToken" }, "ProductDescriptions":{ @@ -22506,7 +22580,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

The token required to retrieve the next set of results. This value is null or an empty string when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "SpotPriceHistory":{ @@ -22537,11 +22611,11 @@ }, "MaxResults":{ "shape":"DescribeStaleSecurityGroupsMaxResults", - "documentation":"

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "NextToken":{ "shape":"DescribeStaleSecurityGroupsNextToken", - "documentation":"

The token for the next set of items to return. (You received this token from a prior call.)

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "VpcId":{ "shape":"VpcId", @@ -22554,7 +22628,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "documentation":"

The token to include in another request to get the next page of items. If there are no additional items to return, the string is empty.

", "locationName":"nextToken" }, "StaleSecurityGroupSet":{ @@ -22583,11 +22657,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeStoreImageTasksRequestMaxResults", - "documentation":"

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. This value can be between 1 and 200. You cannot specify this parameter and the ImageIDs parameter in the same call.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

You cannot specify this parameter and the ImageIDs parameter in the same call.

" } } }, @@ -22606,7 +22680,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -22636,11 +22710,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeSubnetsMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -22654,7 +22728,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -22674,12 +22748,12 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. This value can be between 5 and 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "documentation":"

The maximum number of items to return for this request. This value can be between 5 and 1000. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The token to retrieve the next page of results.

", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", "locationName":"nextToken" } } @@ -22689,7 +22763,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "Tags":{ @@ -23581,11 +23655,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of volume results returned by DescribeVolumeStatus in paginated output. When this parameter is used, the request only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1,000; if MaxResults is given a value larger than 1,000, only 1,000 results are returned. If this parameter is not used, then DescribeVolumeStatus returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. This value can be between 5 and 1,000; if the value is larger than 1,000, only 1,000 results are returned. If this parameter is not used, then all items are returned. You cannot specify this parameter and the volume IDs parameter in the same request. For more information, see Pagination.

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

The NextToken value to include in a future DescribeVolumeStatus request. When the results of the request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "VolumeIds":{ "shape":"VolumeIdStringList", @@ -23604,7 +23678,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "VolumeStatuses":{ @@ -23633,11 +23707,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The nextToken value returned by a previous paginated request.

" + "documentation":"

The token returned by a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results (up to a limit of 500) to be returned in a paginated request.

" + "documentation":"

The maximum number of results (up to a limit of 500) to be returned in a paginated request. For more information, see Pagination.

" } } }, @@ -23651,7 +23725,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

Token for pagination, null if there are no more results

", + "documentation":"

The token to include in another request to get the next page of items. This value is null if there are no more items to return.

", "locationName":"nextToken" } } @@ -23676,12 +23750,12 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of volume results returned by DescribeVolumes in paginated output. When this parameter is used, DescribeVolumes only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeVolumes request with the returned NextToken value. This value can be between 5 and 500; if MaxResults is given a value larger than 500, only 500 results are returned. If this parameter is not used, then DescribeVolumes returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

", + "documentation":"

The maximum number of volumes to return for this request. This value can be between 5 and 500; if you specify a value larger than 500, only 500 items are returned. If this parameter is not used, then all items are returned. You cannot specify this parameter and the volume IDs parameter in the same request. For more information, see Pagination.

", "locationName":"maxResults" }, "NextToken":{ "shape":"String", - "documentation":"

The NextToken value returned from a previous paginated DescribeVolumes request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.

", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned from the previous request.

", "locationName":"nextToken" } } @@ -23696,7 +23770,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The NextToken value to include in a future DescribeVolumes request. When the results of a DescribeVolumes request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -23763,12 +23837,12 @@ "members":{ "MaxResults":{ "shape":"DescribeVpcClassicLinkDnsSupportMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

", "locationName":"maxResults" }, "NextToken":{ "shape":"DescribeVpcClassicLinkDnsSupportNextToken", - "documentation":"

The token for the next page of results.

", + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

", "locationName":"nextToken" }, "VpcIds":{ @@ -23782,7 +23856,7 @@ "members":{ "NextToken":{ "shape":"DescribeVpcClassicLinkDnsSupportNextToken", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" }, "Vpcs":{ @@ -24098,11 +24172,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeVpcPeeringConnectionsMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -24116,7 +24190,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -24146,11 +24220,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"DescribeVpcsMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" } } }, @@ -24164,7 +24238,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -24688,7 +24762,7 @@ }, "MaxParallelLaunches":{ "shape":"Integer", - "documentation":"

The maximum number of parallel instances to launch for creating resources.

", + "documentation":"

The maximum number of instances that Amazon EC2 can launch at the same time to create pre-provisioned snapshots for Windows faster launching.

", "locationName":"maxParallelLaunches" }, "OwnerId":{ @@ -25055,7 +25129,7 @@ "documentation":"

[EC2-VPC] The association ID. Required for EC2-VPC.

" }, "PublicIp":{ - "shape":"String", + "shape":"EipAllocationPublicIp", "documentation":"

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

" }, "DryRun":{ @@ -25517,7 +25591,7 @@ "locationName":"format" }, "ImportManifestUrl":{ - "shape":"String", + "shape":"ImportManifestUrl", "documentation":"

A presigned URL for the import manifest stored in Amazon S3 and presented here as an Amazon S3 presigned URL. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide.

For information about the import manifest referenced by this API action, see VM Import Manifest.

", "locationName":"importManifestUrl" } @@ -25626,6 +25700,11 @@ "shape":"DnsRecordIpType", "documentation":"

The DNS records created for the endpoint.

", "locationName":"dnsRecordIpType" + }, + "PrivateDnsOnlyForInboundResolverEndpoint":{ + "shape":"Boolean", + "documentation":"

Indicates whether to enable private DNS only for inbound endpoints.

", + "locationName":"privateDnsOnlyForInboundResolverEndpoint" } }, "documentation":"

Describes the DNS options for an endpoint.

" @@ -25636,6 +25715,10 @@ "DnsRecordIpType":{ "shape":"DnsRecordIpType", "documentation":"

The DNS records created for the endpoint.

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

Indicates whether to enable private DNS only for inbound endpoints. This option is available only for services that support both gateway and interface endpoints. It routes traffic that originates from the VPC to the gateway endpoint and traffic that originates from on-premises to the interface endpoint.

" } }, "documentation":"

Describes the DNS options for an endpoint.

" @@ -25740,7 +25823,7 @@ }, "Encrypted":{ "shape":"Boolean", - "documentation":"

Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS encryption in the Amazon EC2 User Guide.

In no case can you remove encryption from an encrypted volume.

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types.

This parameter is not returned by DescribeImageAttribute.

For CreateImage and RegisterImage, you can specify this parameter only for block device mappings that result in new, empty volumes when instances are launched from the image. Omit this parameter on block device mappings that include an existing volume or snapshot. If you include this parameter, and specify an encryption setting that is different from the existing volume or snapshot, the request will fail.

", + "documentation":"

Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS encryption in the Amazon EC2 User Guide.

In no case can you remove encryption from an encrypted volume.

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types.

This parameter is not returned by DescribeImageAttribute.

For CreateImage and RegisterImage, whether you can include this parameter, and the allowed values differ depending on the type of block device mapping you are creating.

  • If you are creating a block device mapping for a new (empty) volume, you can include this parameter, and specify either true for an encrypted volume, or false for an unencrypted volume. If you omit this parameter, it defaults to false (unencrypted).

  • If you are creating a block device mapping from an existing encrypted or unencrypted snapshot, you must omit this parameter. If you include this parameter, the request will fail, regardless of the value that you specify.

  • If you are creating a block device mapping from an existing unencrypted volume, you can include this parameter, but you must specify false. If you specify true, the request will fail. In this case, we recommend that you omit the parameter.

  • If you are creating a block device mapping from an existing encrypted volume, you can include this parameter, and specify either true or false. However, if you specify false, the parameter is ignored and the block device mapping is always encrypted. In this case, we recommend that you omit the parameter.

", "locationName":"encrypted" } }, @@ -25921,6 +26004,7 @@ "locationName":"item" } }, + "EipAllocationPublicIp":{"type":"string"}, "EipAssociationIdList":{ "type":"list", "member":{ @@ -26282,7 +26366,7 @@ }, "MaxParallelLaunches":{ "shape":"Integer", - "documentation":"

The maximum number of parallel instances to launch for creating resources. Value must be 6 or greater.

" + "documentation":"

The maximum number of instances that Amazon EC2 can launch at the same time to create pre-provisioned snapshots for Windows faster launching. Value must be 6 or greater.

" }, "DryRun":{ "shape":"Boolean", @@ -26305,7 +26389,7 @@ }, "SnapshotConfiguration":{ "shape":"FastLaunchSnapshotConfigurationResponse", - "documentation":"

The configuration settings that were defined for creating and managing the pre-provisioned snapshots for faster launching of the Windows AMI. This property is returned when the associated resourceType is snapshot.

", + "documentation":"

Settings to create and manage the pre-provisioned snapshots that Amazon EC2 uses for faster launches from the Windows AMI. This property is returned when the associated resourceType is snapshot.

", "locationName":"snapshotConfiguration" }, "LaunchTemplate":{ @@ -26315,7 +26399,7 @@ }, "MaxParallelLaunches":{ "shape":"Integer", - "documentation":"

The maximum number of parallel instances to launch for creating resources.

", + "documentation":"

The maximum number of instances that Amazon EC2 can launch at the same time to create pre-provisioned snapshots for Windows faster launching.

", "locationName":"maxParallelLaunches" }, "OwnerId":{ @@ -27093,6 +27177,16 @@ "shape":"ComponentRegion", "documentation":"

The Region for the component.

", "locationName":"componentRegion" + }, + "FirewallStatelessRule":{ + "shape":"FirewallStatelessRule", + "documentation":"

The Network Firewall stateless rule.

", + "locationName":"firewallStatelessRule" + }, + "FirewallStatefulRule":{ + "shape":"FirewallStatefulRule", + "documentation":"

The Network Firewall stateful rule.

", + "locationName":"firewallStatefulRule" } }, "documentation":"

Describes an explanation code for an unreachable path. For more information, see Reachability Analyzer explanation codes.

" @@ -27701,6 +27795,22 @@ "locationName":"Filter" } }, + "FilterPortRange":{ + "type":"structure", + "members":{ + "FromPort":{ + "shape":"Port", + "documentation":"

The first port in the range.

", + "locationName":"fromPort" + }, + "ToPort":{ + "shape":"Port", + "documentation":"

The last port in the range.

", + "locationName":"toPort" + } + }, + "documentation":"

Describes a port range.

" + }, "FindingsFound":{ "type":"string", "enum":[ @@ -27709,6 +27819,98 @@ "unknown" ] }, + "FirewallStatefulRule":{ + "type":"structure", + "members":{ + "RuleGroupArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the stateful rule group.

", + "locationName":"ruleGroupArn" + }, + "Sources":{ + "shape":"ValueStringList", + "documentation":"

The source IP addresses, in CIDR notation.

", + "locationName":"sourceSet" + }, + "Destinations":{ + "shape":"ValueStringList", + "documentation":"

The destination IP addresses, in CIDR notation.

", + "locationName":"destinationSet" + }, + "SourcePorts":{ + "shape":"PortRangeList", + "documentation":"

The source ports.

", + "locationName":"sourcePortSet" + }, + "DestinationPorts":{ + "shape":"PortRangeList", + "documentation":"

The destination ports.

", + "locationName":"destinationPortSet" + }, + "Protocol":{ + "shape":"String", + "documentation":"

The protocol.

", + "locationName":"protocol" + }, + "RuleAction":{ + "shape":"String", + "documentation":"

The rule action. The possible values are pass, drop, and alert.

", + "locationName":"ruleAction" + }, + "Direction":{ + "shape":"String", + "documentation":"

The direction. The possible values are FORWARD and ANY.

", + "locationName":"direction" + } + }, + "documentation":"

Describes a stateful rule.

" + }, + "FirewallStatelessRule":{ + "type":"structure", + "members":{ + "RuleGroupArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the stateless rule group.

", + "locationName":"ruleGroupArn" + }, + "Sources":{ + "shape":"ValueStringList", + "documentation":"

The source IP addresses, in CIDR notation.

", + "locationName":"sourceSet" + }, + "Destinations":{ + "shape":"ValueStringList", + "documentation":"

The destination IP addresses, in CIDR notation.

", + "locationName":"destinationSet" + }, + "SourcePorts":{ + "shape":"PortRangeList", + "documentation":"

The source ports.

", + "locationName":"sourcePortSet" + }, + "DestinationPorts":{ + "shape":"PortRangeList", + "documentation":"

The destination ports.

", + "locationName":"destinationPortSet" + }, + "Protocols":{ + "shape":"ProtocolIntList", + "documentation":"

The protocols.

", + "locationName":"protocolSet" + }, + "RuleAction":{ + "shape":"String", + "documentation":"

The rule action. The possible values are pass, drop, and forward_to_site.

", + "locationName":"ruleAction" + }, + "Priority":{ + "shape":"Priority", + "documentation":"

The rule priority.

", + "locationName":"priority" + } + }, + "documentation":"

Describes a stateless rule.

" + }, "FleetActivityStatus":{ "type":"string", "enum":[ @@ -27980,7 +28182,7 @@ "members":{ "InstanceType":{ "shape":"InstanceType", - "documentation":"

The instance type.

If you specify InstanceType, you can't specify InstanceRequirements.

", + "documentation":"

The instance type.

mac1.metal is not supported as a launch template override.

If you specify InstanceType, you can't specify InstanceRequirements.

", "locationName":"instanceType" }, "MaxPrice":{ @@ -28045,7 +28247,7 @@ "members":{ "InstanceType":{ "shape":"InstanceType", - "documentation":"

The instance type.

If you specify InstanceType, you can't specify InstanceRequirements.

" + "documentation":"

The instance type.

mac1.metal is not supported as a launch template override.

If you specify InstanceType, you can't specify InstanceRequirements.

" }, "MaxPrice":{ "shape":"String", @@ -28978,7 +29180,7 @@ "members":{ "CapacityReservationId":{ "shape":"CapacityReservationId", - "documentation":"

The ID of the Capacity Reservation.

" + "documentation":"

The ID of the Capacity Reservation. If you specify a Capacity Reservation that is shared with you, the operation returns only Capacity Reservation groups that you own.

" }, "NextToken":{ "shape":"String", @@ -29084,11 +29286,11 @@ }, "MaxResults":{ "shape":"Integer", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and
 1000. The default value is 1000. To retrieve the remaining results, make another call with
 the returned NextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next set of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -29102,7 +29304,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -29785,11 +29987,11 @@ }, "MaxResults":{ "shape":"SpotPlacementScoresMaxResults", - "documentation":"

The maximum number of results to return in a single call. Specify a value between 1 and
 1000. The default value is 1000. To retrieve the remaining results, make another call with
 the returned NextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next set of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" } } }, @@ -29803,7 +30005,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next set of results.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -30274,6 +30476,62 @@ } } }, + "GetVpnTunnelReplacementStatusRequest":{ + "type":"structure", + "required":[ + "VpnConnectionId", + "VpnTunnelOutsideIpAddress" + ], + "members":{ + "VpnConnectionId":{ + "shape":"VpnConnectionId", + "documentation":"

The ID of the Site-to-Site VPN connection.

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

The external IP address of the VPN tunnel.

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

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "GetVpnTunnelReplacementStatusResult":{ + "type":"structure", + "members":{ + "VpnConnectionId":{ + "shape":"VpnConnectionId", + "documentation":"

The ID of the Site-to-Site VPN connection.

", + "locationName":"vpnConnectionId" + }, + "TransitGatewayId":{ + "shape":"TransitGatewayId", + "documentation":"

The ID of the transit gateway associated with the VPN connection.

", + "locationName":"transitGatewayId" + }, + "CustomerGatewayId":{ + "shape":"CustomerGatewayId", + "documentation":"

The ID of the customer gateway.

", + "locationName":"customerGatewayId" + }, + "VpnGatewayId":{ + "shape":"VpnGatewayId", + "documentation":"

The ID of the virtual private gateway.

", + "locationName":"vpnGatewayId" + }, + "VpnTunnelOutsideIpAddress":{ + "shape":"String", + "documentation":"

The external IP address of the VPN tunnel.

", + "locationName":"vpnTunnelOutsideIpAddress" + }, + "MaintenanceDetails":{ + "shape":"MaintenanceDetails", + "documentation":"

Get details of pending tunnel endpoint maintenance.

", + "locationName":"maintenanceDetails" + } + } + }, "GpuDeviceCount":{"type":"integer"}, "GpuDeviceInfo":{ "type":"structure", @@ -30559,6 +30817,11 @@ "shape":"String", "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which the Dedicated Host is allocated.

", "locationName":"outpostArn" + }, + "HostMaintenance":{ + "shape":"HostMaintenance", + "documentation":"

Indicates whether host maintenance is enabled or disabled for the Dedicated Host.

", + "locationName":"hostMaintenance" } }, "documentation":"

Describes the properties of the Dedicated Host.

" @@ -30598,6 +30861,13 @@ "locationName":"item" } }, + "HostMaintenance":{ + "type":"string", + "enum":[ + "on", + "off" + ] + }, "HostOffering":{ "type":"structure", "members":{ @@ -31890,6 +32160,10 @@ } } }, + "ImportManifestUrl":{ + "type":"string", + "sensitive":true + }, "ImportSnapshotRequest":{ "type":"structure", "members":{ @@ -32279,7 +32553,7 @@ }, "ElasticInferenceAcceleratorAssociations":{ "shape":"ElasticInferenceAcceleratorAssociationList", - "documentation":"

The elastic inference accelerator associated with the instance.

", + "documentation":"

The elastic inference accelerator associated with the instance.

", "locationName":"elasticInferenceAcceleratorAssociationSet" }, "NetworkInterfaces":{ @@ -32374,7 +32648,7 @@ }, "BootMode":{ "shape":"BootModeValues", - "documentation":"

The boot mode of the instance. For more information, see Boot modes in the Amazon EC2 User Guide.

", + "documentation":"

The boot mode that was specified by the AMI. If the value is uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The currentInstanceBootMode parameter is the boot mode that is used to boot the instance at launch or start.

The operating system contained in the AMI must be configured to support the specified boot mode.

For more information, see Boot modes in the Amazon EC2 User Guide.

", "locationName":"bootMode" }, "PlatformDetails":{ @@ -32411,6 +32685,11 @@ "shape":"InstanceMaintenanceOptions", "documentation":"

Provides information on the recovery and maintenance options of your instance.

", "locationName":"maintenanceOptions" + }, + "CurrentInstanceBootMode":{ + "shape":"InstanceBootModeValues", + "documentation":"

The boot mode that is used to boot the instance at launch or start. For more information, see Boot modes in the Amazon EC2 User Guide.

", + "locationName":"currentInstanceBootMode" } }, "documentation":"

Describes an instance.

" @@ -32590,6 +32869,13 @@ "locationName":"item" } }, + "InstanceBootModeValues":{ + "type":"string", + "enum":[ + "legacy-bios", + "uefi" + ] + }, "InstanceCapacity":{ "type":"structure", "members":{ @@ -34670,7 +34956,31 @@ "r6idn.12xlarge", "r6idn.16xlarge", "r6idn.24xlarge", - "r6idn.32xlarge" + "r6idn.32xlarge", + "c7g.metal", + "m7g.medium", + "m7g.large", + "m7g.xlarge", + "m7g.2xlarge", + "m7g.4xlarge", + "m7g.8xlarge", + "m7g.12xlarge", + "m7g.16xlarge", + "m7g.metal", + "r7g.medium", + "r7g.large", + "r7g.xlarge", + "r7g.2xlarge", + "r7g.4xlarge", + "r7g.8xlarge", + "r7g.12xlarge", + "r7g.16xlarge", + "r7g.metal", + "c6in.metal", + "m6in.metal", + "m6idn.metal", + "r6in.metal", + "r6idn.metal" ] }, "InstanceTypeHypervisor":{ @@ -36571,8 +36881,8 @@ "type":"structure", "members":{ "UserData":{ - "shape":"String", - "documentation":"

The Base64-encoded user data for the instance.

", + "shape":"SensitiveUserData", + "documentation":"

The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.

", "locationName":"userData" }, "SecurityGroups":{ @@ -37914,11 +38224,11 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "MaxResults":{ "shape":"ListImagesInRecycleBinMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

If you do not specify a value for MaxResults, the request returns 1,000 items per page by default. For more information, see Pagination.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

" }, "DryRun":{ "shape":"Boolean", @@ -37936,7 +38246,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -37951,11 +38261,11 @@ "members":{ "MaxResults":{ "shape":"ListSnapshotsInRecycleBinMaxResults", - "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "documentation":"

The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.

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

The token for the next page of results.

" + "documentation":"

The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.

" }, "SnapshotIds":{ "shape":"SnapshotIdStringList", @@ -37978,7 +38288,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "documentation":"

The token to include in another request to get the next page of items. This value is null when there are no more items to return.

", "locationName":"nextToken" } } @@ -38559,6 +38869,27 @@ ] }, "Long":{"type":"long"}, + "MaintenanceDetails":{ + "type":"structure", + "members":{ + "PendingMaintenance":{ + "shape":"String", + "documentation":"

Verify existence of a pending maintenance.

", + "locationName":"pendingMaintenance" + }, + "MaintenanceAutoAppliedAfter":{ + "shape":"MillisecondDateTime", + "documentation":"

The timestamp after which Amazon Web Services will automatically apply maintenance.

", + "locationName":"maintenanceAutoAppliedAfter" + }, + "LastMaintenanceApplied":{ + "shape":"MillisecondDateTime", + "documentation":"

Timestamp of last applied maintenance.

", + "locationName":"lastMaintenanceApplied" + } + }, + "documentation":"

Details for Site-to-Site VPN tunnel endpoint maintenance events.

" + }, "ManagedPrefixList":{ "type":"structure", "members":{ @@ -39156,6 +39487,10 @@ "InstanceFamily":{ "shape":"String", "documentation":"

Specifies the instance family to be supported by the Dedicated Host. Specify this parameter to modify a Dedicated Host to support multiple instance types within its current instance family.

If you want to modify a Dedicated Host to support a specific instance type only, omit this parameter and specify InstanceType instead. You cannot specify InstanceFamily and InstanceType in the same request.

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

Indicates whether to enable or disable host maintenance for the Dedicated Host. For more information, see Host maintenance in the Amazon EC2 User Guide.

" } } }, @@ -39222,7 +39557,7 @@ "members":{ "Attribute":{ "shape":"String", - "documentation":"

The name of the attribute to modify.

Valid values: description | launchPermission

" + "documentation":"

The name of the attribute to modify.

Valid values: description | imdsSupport | launchPermission

" }, "Description":{ "shape":"AttributeValue", @@ -39257,7 +39592,7 @@ }, "Value":{ "shape":"String", - "documentation":"

The value of the attribute being modified. This parameter can be used only when the Attribute parameter is description.

" + "documentation":"

The value of the attribute being modified. This parameter can be used only when the Attribute parameter is description or imdsSupport.

" }, "DryRun":{ "shape":"Boolean", @@ -39273,6 +39608,10 @@ "shape":"OrganizationalUnitArnStringList", "documentation":"

The Amazon Resource Name (ARN) of an organizational unit (OU). This parameter can be used only when the Attribute parameter is launchPermission.

", "locationName":"OrganizationalUnitArn" + }, + "ImdsSupport":{ + "shape":"AttributeValue", + "documentation":"

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. Instances launched from this AMI will have HttpTokens automatically set to required so that, by default, the instance requires that IMDSv2 is used when requesting instance metadata. In addition, HttpPutResponseHopLimit is set to 2. For more information, see Configure the AMI in the Amazon EC2 User Guide.

Do not use this parameter unless your AMI software supports IMDSv2. After you set the value to v2.0, you can't undo it. The only way to “reset” your AMI is to create a new AMI from the underlying snapshot.

" } }, "documentation":"

Contains the parameters for ModifyImageAttribute.

" @@ -41459,6 +41798,10 @@ "DryRun":{ "shape":"Boolean", "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

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

Choose whether or not to trigger immediate tunnel replacement.

Valid values: True | False

" } } }, @@ -41557,6 +41900,10 @@ "LogOptions":{ "shape":"VpnTunnelLogOptionsSpecification", "documentation":"

Options for logging VPN tunnel activity.

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

Turn on or off tunnel endpoint lifecycle control feature.

" } }, "documentation":"

The Amazon Web Services Site-to-Site VPN tunnel options to modify.

" @@ -42303,7 +42650,7 @@ }, "FilterInArns":{ "shape":"ArnList", - "documentation":"

The Amazon Resource Names (ARN) of the Amazon Web Services resources that the path must traverse.

", + "documentation":"

The Amazon Resource Names (ARN) of the resources that the path must traverse.

", "locationName":"filterInArnSet" }, "StartDate":{ @@ -42404,12 +42751,12 @@ }, "Source":{ "shape":"String", - "documentation":"

The Amazon Web Services resource that is the source of the path.

", + "documentation":"

The ID of the source.

", "locationName":"source" }, "Destination":{ "shape":"String", - "documentation":"

The Amazon Web Services resource that is the destination of the path.

", + "documentation":"

The ID of the destination.

", "locationName":"destination" }, "SourceArn":{ @@ -42424,12 +42771,12 @@ }, "SourceIp":{ "shape":"IpAddress", - "documentation":"

The IP address of the Amazon Web Services resource that is the source of the path.

", + "documentation":"

The IP address of the source.

", "locationName":"sourceIp" }, "DestinationIp":{ "shape":"IpAddress", - "documentation":"

The IP address of the Amazon Web Services resource that is the destination of the path.

", + "documentation":"

The IP address of the destination.

", "locationName":"destinationIp" }, "Protocol":{ @@ -42446,6 +42793,16 @@ "shape":"TagList", "documentation":"

The tags associated with the path.

", "locationName":"tagSet" + }, + "FilterAtSource":{ + "shape":"PathFilter", + "documentation":"

Scopes the analysis to network paths that match specific filters at the source.

", + "locationName":"filterAtSource" + }, + "FilterAtDestination":{ + "shape":"PathFilter", + "documentation":"

Scopes the analysis to network paths that match specific filters at the destination.

", + "locationName":"filterAtDestination" } }, "documentation":"

Describes a path.

" @@ -43308,6 +43665,21 @@ "shape":"AnalysisComponent", "documentation":"

The load balancer listener.

", "locationName":"elasticLoadBalancerListener" + }, + "FirewallStatelessRule":{ + "shape":"FirewallStatelessRule", + "documentation":"

The Network Firewall stateless rule.

", + "locationName":"firewallStatelessRule" + }, + "FirewallStatefulRule":{ + "shape":"FirewallStatefulRule", + "documentation":"

The Network Firewall stateful rule.

", + "locationName":"firewallStatefulRule" + }, + "ServiceName":{ + "shape":"String", + "documentation":"

The name of the VPC endpoint service.

", + "locationName":"serviceName" } }, "documentation":"

Describes a path component.

" @@ -43319,6 +43691,54 @@ "locationName":"item" } }, + "PathFilter":{ + "type":"structure", + "members":{ + "SourceAddress":{ + "shape":"IpAddress", + "documentation":"

The source IPv4 address.

", + "locationName":"sourceAddress" + }, + "SourcePortRange":{ + "shape":"FilterPortRange", + "documentation":"

The source port range.

", + "locationName":"sourcePortRange" + }, + "DestinationAddress":{ + "shape":"IpAddress", + "documentation":"

The destination IPv4 address.

", + "locationName":"destinationAddress" + }, + "DestinationPortRange":{ + "shape":"FilterPortRange", + "documentation":"

The destination port range.

", + "locationName":"destinationPortRange" + } + }, + "documentation":"

Describes a set of filters for a path analysis. Use path filters to scope the analysis when there can be multiple resulting paths.

" + }, + "PathRequestFilter":{ + "type":"structure", + "members":{ + "SourceAddress":{ + "shape":"IpAddress", + "documentation":"

The source IPv4 address.

" + }, + "SourcePortRange":{ + "shape":"RequestFilterPortRange", + "documentation":"

The source port range.

" + }, + "DestinationAddress":{ + "shape":"IpAddress", + "documentation":"

The destination IPv4 address.

" + }, + "DestinationPortRange":{ + "shape":"RequestFilterPortRange", + "documentation":"

The destination port range.

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

Describes a set of filters for a path analysis. Use path filters to scope the analysis when there can be multiple resulting paths.

" + }, "PathStatement":{ "type":"structure", "members":{ @@ -44171,6 +44591,11 @@ "Role" ] }, + "Priority":{ + "type":"integer", + "max":65535, + "min":-1 + }, "PrivateDnsDetails":{ "type":"structure", "members":{ @@ -44400,6 +44825,18 @@ "udp" ] }, + "ProtocolInt":{ + "type":"integer", + "max":255, + "min":0 + }, + "ProtocolIntList":{ + "type":"list", + "member":{ + "shape":"ProtocolInt", + "locationName":"item" + } + }, "ProtocolList":{ "type":"list", "member":{ @@ -45113,7 +45550,7 @@ }, "BootMode":{ "shape":"BootModeValues", - "documentation":"

The boot mode of the AMI. For more information, see Boot modes in the Amazon EC2 User Guide.

" + "documentation":"

The boot mode of the AMI. A value of uefi-preferred indicates that the AMI supports both UEFI and Legacy BIOS.

The operating system contained in the AMI must be configured to support the specified boot mode.

For more information, see Boot modes in the Amazon EC2 User Guide.

" }, "TpmSupport":{ "shape":"TpmSupportValues", @@ -45865,6 +46302,41 @@ } } }, + "ReplaceVpnTunnelRequest":{ + "type":"structure", + "required":[ + "VpnConnectionId", + "VpnTunnelOutsideIpAddress" + ], + "members":{ + "VpnConnectionId":{ + "shape":"VpnConnectionId", + "documentation":"

The ID of the Site-to-Site VPN connection.

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

The external IP address of the VPN tunnel.

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

Trigger pending tunnel endpoint maintenance.

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

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ReplaceVpnTunnelResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "documentation":"

Confirmation of replace tunnel operation.

", + "locationName":"return" + } + } + }, "ReplacementStrategy":{ "type":"string", "enum":[ @@ -45938,6 +46410,20 @@ "impaired" ] }, + "RequestFilterPortRange":{ + "type":"structure", + "members":{ + "FromPort":{ + "shape":"Port", + "documentation":"

The first port in the range.

" + }, + "ToPort":{ + "shape":"Port", + "documentation":"

The last port in the range.

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

Describes a port range.

" + }, "RequestHostIdList":{ "type":"list", "member":{ @@ -46306,8 +46792,8 @@ "locationName":"subnetId" }, "UserData":{ - "shape":"String", - "documentation":"

The Base64-encoded user data for the instance. User data is limited to 16 KB.

", + "shape":"SensitiveUserData", + "documentation":"

The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.

", "locationName":"userData" } }, @@ -47317,7 +47803,7 @@ "locationName":"instanceInitiatedShutdownBehavior" }, "UserData":{ - "shape":"String", + "shape":"SensitiveUserData", "documentation":"

The user data for the instance.

", "locationName":"userData" }, @@ -48059,6 +48545,75 @@ "deny" ] }, + "RuleGroupRuleOptionsPair":{ + "type":"structure", + "members":{ + "RuleGroupArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the rule group.

", + "locationName":"ruleGroupArn" + }, + "RuleOptions":{ + "shape":"RuleOptionList", + "documentation":"

The rule options.

", + "locationName":"ruleOptionSet" + } + }, + "documentation":"

Describes the rule options for a stateful rule group.

" + }, + "RuleGroupRuleOptionsPairList":{ + "type":"list", + "member":{ + "shape":"RuleGroupRuleOptionsPair", + "locationName":"item" + } + }, + "RuleGroupTypePair":{ + "type":"structure", + "members":{ + "RuleGroupArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the rule group.

", + "locationName":"ruleGroupArn" + }, + "RuleGroupType":{ + "shape":"String", + "documentation":"

The rule group type. The possible values are Domain List and Suricata.

", + "locationName":"ruleGroupType" + } + }, + "documentation":"

Describes the type of a stateful rule group.

" + }, + "RuleGroupTypePairList":{ + "type":"list", + "member":{ + "shape":"RuleGroupTypePair", + "locationName":"item" + } + }, + "RuleOption":{ + "type":"structure", + "members":{ + "Keyword":{ + "shape":"String", + "documentation":"

The Suricata keyword.

", + "locationName":"keyword" + }, + "Settings":{ + "shape":"StringList", + "documentation":"

The settings for the keyword.

", + "locationName":"settingSet" + } + }, + "documentation":"

Describes additional settings for a stateful rule.

" + }, + "RuleOptionList":{ + "type":"list", + "member":{ + "shape":"RuleOption", + "locationName":"item" + } + }, "RunInstancesMonitoringEnabled":{ "type":"structure", "required":["Enabled"], @@ -48198,7 +48753,7 @@ }, "ElasticInferenceAccelerators":{ "shape":"ElasticInferenceAccelerators", - "documentation":"

An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.

You cannot specify accelerators from different generations in the same request.

", + "documentation":"

An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.

You cannot specify accelerators from different generations in the same request.

Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

", "locationName":"ElasticInferenceAccelerator" }, "TagSpecifications":{ @@ -48740,7 +49295,8 @@ "documentation":"

The base64-encoded MIME user data.

" } }, - "documentation":"

Describes the launch specification for a Scheduled Instance.

If you are launching the Scheduled Instance in EC2-VPC, you must specify the ID of the subnet. You can specify the subnet using either SubnetId or NetworkInterface.

" + "documentation":"

Describes the launch specification for a Scheduled Instance.

If you are launching the Scheduled Instance in EC2-VPC, you must specify the ID of the subnet. You can specify the subnet using either SubnetId or NetworkInterface.

", + "sensitive":true }, "ScheduledInstancesMonitoring":{ "type":"structure", @@ -50123,8 +50679,8 @@ "locationName":"subnetId" }, "UserData":{ - "shape":"String", - "documentation":"

The Base64-encoded user data that instances use when starting up.

", + "shape":"SensitiveUserData", + "documentation":"

The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.

", "locationName":"userData" }, "WeightedCapacity":{ @@ -51617,7 +52173,7 @@ "locationName":"Tag" } }, - "documentation":"

The tags to apply to a resource when the resource is being created.

The Valid Values lists all the resource types that can be tagged. However, the action you're using might not support tagging all of these resource types. If you try to tag a resource type that is unsupported for the action you're using, you'll get an error.

" + "documentation":"

The tags to apply to a resource when the resource is being created. When you specify a tag, you must specify the resource type to tag, otherwise the request will fail.

The Valid Values lists all the resource types that can be tagged. However, the action you're using might not support tagging all of these resource types. If you try to tag a resource type that is unsupported for the action you're using, you'll get an error.

" }, "TagSpecificationList":{ "type":"list", @@ -54259,6 +54815,11 @@ "shape":"VpnTunnelLogOptions", "documentation":"

Options for logging VPN tunnel activity.

", "locationName":"logOptions" + }, + "EnableTunnelLifecycleControl":{ + "shape":"Boolean", + "documentation":"

Status of tunnel endpoint lifecycle control feature.

", + "locationName":"enableTunnelLifecycleControl" } }, "documentation":"

The VPN tunnel options.

" @@ -57097,6 +57658,10 @@ "LogOptions":{ "shape":"VpnTunnelLogOptionsSpecification", "documentation":"

Options for logging VPN tunnel activity.

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

Turn on or off tunnel endpoint lifecycle control feature.

" } }, "documentation":"

The tunnel options for a single VPN tunnel.

" diff --git a/services/ec2/src/main/resources/codegen-resources/waiters-2.json b/services/ec2/src/main/resources/codegen-resources/waiters-2.json index 43f560b8134f..4f73e720fcc7 100644 --- a/services/ec2/src/main/resources/codegen-resources/waiters-2.json +++ b/services/ec2/src/main/resources/codegen-resources/waiters-2.json @@ -421,6 +421,25 @@ } ] }, + "SnapshotImported": { + "delay": 15, + "operation": "DescribeImportSnapshotTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "ImportSnapshotTasks[].SnapshotTaskDetail.Status" + }, + { + "expected": "error", + "matcher": "pathAny", + "state": "failure", + "argument": "ImportSnapshotTasks[].SnapshotTaskDetail.Status" + } + ] + }, "SecurityGroupExists": { "operation": "DescribeSecurityGroups", "delay": 5, diff --git a/services/ec2instanceconnect/pom.xml b/services/ec2instanceconnect/pom.xml index b2cd616c4500..024dfff0d41f 100644 --- a/services/ec2instanceconnect/pom.xml +++ b/services/ec2instanceconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ec2instanceconnect AWS Java SDK :: Services :: EC2 Instance Connect diff --git a/services/ecr/pom.xml b/services/ecr/pom.xml index 477c1215e636..ada1d26e6d33 100644 --- a/services/ecr/pom.xml +++ b/services/ecr/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ecr AWS Java SDK :: Services :: Amazon EC2 Container Registry diff --git a/services/ecrpublic/pom.xml b/services/ecrpublic/pom.xml index 0322584cd97b..bef5bcc9908b 100644 --- a/services/ecrpublic/pom.xml +++ b/services/ecrpublic/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ecrpublic AWS Java SDK :: Services :: ECR PUBLIC diff --git a/services/ecrpublic/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ecrpublic/src/main/resources/codegen-resources/endpoint-rule-set.json index 91edbbd61460..b399a8125a12 100644 --- a/services/ecrpublic/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ecrpublic/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.ecr-public-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.ecr-public-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://api.ecr-public.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://api.ecr-public.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ecrpublic/src/main/resources/codegen-resources/endpoint-tests.json b/services/ecrpublic/src/main/resources/codegen-resources/endpoint-tests.json index f6d844387bed..71702bbc29c4 100644 --- a/services/ecrpublic/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ecrpublic/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,119 +1,280 @@ { "testCases": [ { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.ecr-public-fips.us-west-2.api.aws" + "url": "https://api.ecr-public-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "us-west-2", "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.ecr-public-fips.us-west-2.amazonaws.com" + "url": "https://api.ecr-public-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-west-2", "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.ecr-public.us-west-2.api.aws" + "url": "https://api.ecr-public.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "us-west-2", "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.ecr-public.us-west-2.amazonaws.com" + "url": "https://api.ecr-public.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-west-2", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.ecr-public-fips.us-east-1.api.aws" + "url": "https://api.ecr-public-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.ecr-public-fips.us-east-1.amazonaws.com" + "url": "https://api.ecr-public-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.ecr-public.us-east-1.api.aws" + "url": "https://api.ecr-public.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.ecr-public.us-east-1.amazonaws.com" + "url": "https://api.ecr-public.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://api.ecr-public-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" } @@ -124,8 +285,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -136,11 +297,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/ecrpublic/src/main/resources/codegen-resources/service-2.json b/services/ecrpublic/src/main/resources/codegen-resources/service-2.json index 68ee790c5d28..a880f21013e5 100644 --- a/services/ecrpublic/src/main/resources/codegen-resources/service-2.json +++ b/services/ecrpublic/src/main/resources/codegen-resources/service-2.json @@ -489,8 +489,8 @@ ], "members":{ "registryId":{ - "shape":"RegistryId", - "documentation":"

The Amazon Web Services account ID that's associated with the registry that contains the image to delete. If you do not specify a registry, the default public registry is assumed.

" + "shape":"RegistryIdOrAlias", + "documentation":"

The Amazon Web Services account ID, or registry alias, that's associated with the registry that contains the image to delete. If you do not specify a registry, the default public registry is assumed.

" }, "repositoryName":{ "shape":"RepositoryName", diff --git a/services/ecs/pom.xml b/services/ecs/pom.xml index 9582709d1f26..af80a182195c 100644 --- a/services/ecs/pom.xml +++ b/services/ecs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ecs AWS Java SDK :: Services :: Amazon EC2 Container Service diff --git a/services/ecs/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ecs/src/main/resources/codegen-resources/endpoint-rule-set.json index f4eebaefd6fb..1614858d7cb1 100644 --- a/services/ecs/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ecs/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://ecs.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://ecs.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ecs/src/main/resources/codegen-resources/endpoint-tests.json b/services/ecs/src/main/resources/codegen-resources/endpoint-tests.json index 790a95f2f45e..fd873e3010d5 100644 --- a/services/ecs/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ecs/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,68 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-south-2.amazonaws.com" + "url": "https://ecs.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-south-2", + "Region": "af-south-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-south-2.api.aws" + "url": "https://ecs.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-south-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-south-2.amazonaws.com" + "url": "https://ecs.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "ap-south-2", "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-south-1.amazonaws.com" + "url": "https://ecs.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-south-1", + "Region": "ap-northeast-2", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-south-1.api.aws" + "url": "https://ecs.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true + "UseDualStack": false } }, { @@ -99,258 +73,50 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-south-1.amazonaws.com" - } - }, - "params": { "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", "UseDualStack": false } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.eu-south-2.amazonaws.com" + "url": "https://ecs.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-gov-east-1.amazonaws.com" + "url": "https://ecs.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.me-central-1.amazonaws.com" + "url": "https://ecs.ap-southeast-3.amazonaws.com" } }, "params": { + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", "UseDualStack": false } }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, { "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { @@ -359,1352 +125,459 @@ } }, "params": { - "UseFIPS": false, "Region": "ca-central-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "url": "https://ecs.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ecs.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.us-gov-west-1.amazonaws.com" + "url": "https://ecs.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", + "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-gov-west-1.api.aws" + "url": "https://ecs.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-gov-west-1.amazonaws.com" + "url": "https://ecs.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "Region": "us-gov-west-1", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-1.api.aws" + "url": "https://ecs.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-1.amazonaws.com" + "url": "https://ecs.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", + "Region": "eu-west-3", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-1.api.aws" + "url": "https://ecs.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-1.amazonaws.com" + "url": "https://ecs.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseFIPS": false, - "Region": "ap-southeast-1", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-2.api.aws" + "url": "https://ecs.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-2.amazonaws.com" + "url": "https://ecs-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-2", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-2.api.aws" + "url": "https://ecs.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-2.amazonaws.com" + "url": "https://ecs-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", + "Region": "us-east-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://ecs.us-west-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://ecs-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": true, - "Region": "us-iso-east-1", "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://ecs.us-west-2.amazonaws.com" + } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-iso-east-1.c2s.ic.gov" + "url": "https://ecs-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", + "Region": "us-west-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-3.api.aws" + "url": "https://ecs-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-3", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-3.amazonaws.com" + "url": "https://ecs.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-3.api.aws" + "url": "https://ecs.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-3.amazonaws.com" + "url": "https://ecs.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "ap-southeast-3", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-4.api.aws" + "url": "https://ecs-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-4", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.ap-southeast-4.amazonaws.com" + "url": "https://ecs-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-4", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-4.api.aws" + "url": "https://ecs.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-4", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.ap-southeast-4.amazonaws.com" + "url": "https://ecs.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "ap-southeast-4", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ecs-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.us-east-1.amazonaws.com" + "url": "https://ecs-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-east-1.api.aws" + "url": "https://ecs.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-east-1.amazonaws.com" + "url": "https://ecs-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", + "Region": "us-gov-west-1", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ecs-fips.us-east-2.api.aws" + "url": "https://ecs-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-2", "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ecs-fips.us-east-2.amazonaws.com" + "url": "https://ecs.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-east-2.api.aws" + "url": "https://ecs.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-east-2.amazonaws.com" + "url": "https://ecs.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseFIPS": false, - "Region": "us-east-2", "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://ecs-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1", "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://ecs-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1", "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://ecs.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ecs.cn-northwest-1.amazonaws.com.cn" + "url": "https://ecs.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", "UseDualStack": false } }, @@ -1714,8 +587,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1727,8 +600,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1738,26 +611,27 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://ecs.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1765,7 +639,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1776,8 +649,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1788,11 +661,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/ecs/src/main/resources/codegen-resources/service-2.json b/services/ecs/src/main/resources/codegen-resources/service-2.json index 091e50b5310b..23b80e4ee790 100644 --- a/services/ecs/src/main/resources/codegen-resources/service-2.json +++ b/services/ecs/src/main/resources/codegen-resources/service-2.json @@ -43,7 +43,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account. This is so that it can manage required resources in other Amazon Web Services services on your behalf. However, if the IAM user that makes the call doesn't have permissions to create the service-linked role, it isn't created. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account. This is so that it can manage required resources in other Amazon Web Services services on your behalf. However, if the user that makes the call doesn't have permissions to create the service-linked role, it isn't created. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" }, "CreateService":{ "name":"CreateService", @@ -64,7 +64,7 @@ {"shape":"AccessDeniedException"}, {"shape":"NamespaceNotFoundException"} ], - "documentation":"

Runs and maintains your desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

There are two service scheduler strategies available:

  • REPLICA - The replica scheduling strategy places and maintains your desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

  • DAEMON - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It also stops tasks that don't meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. The deployment is initiated by changing properties. For example, the deployment might be initiated by the task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for minimumHealthyPercent is 100%. The default value for a daemon service for minimumHealthyPercent is 0%.

If a service uses the ECS deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment. Specifically, it represents it as a percentage of your desired number of tasks (rounded up to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can deploy without using additional cluster capacity. For example, if you set your service to have desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. If they're in the RUNNING state, tasks for services that don't use a load balancer are considered healthy . If they're in the RUNNING state and reported as healthy by the load balancer, tasks for services that do use a load balancer are considered healthy . The default value for minimum healthy percent is 100%.

If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment. Specifically, it represents it as a percentage of the desired number of tasks (rounded down to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service uses either the CODE_DEPLOY or EXTERNAL deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING state. This is while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used. This is the case even if they're currently visible when describing your service.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement. For information about task placement and task placement strategies, see Amazon ECS task placement in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Runs and maintains your desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action.

Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

There are two service scheduler strategies available:

  • REPLICA - The replica scheduling strategy places and maintains your desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

  • DAEMON - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It also stops tasks that don't meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. The deployment is initiated by changing properties. For example, the deployment might be initiated by the task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for minimumHealthyPercent is 100%. The default value for a daemon service for minimumHealthyPercent is 0%.

If a service uses the ECS deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment. Specifically, it represents it as a percentage of your desired number of tasks (rounded up to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can deploy without using additional cluster capacity. For example, if you set your service to have desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. If they're in the RUNNING state, tasks for services that don't use a load balancer are considered healthy . If they're in the RUNNING state and reported as healthy by the load balancer, tasks for services that do use a load balancer are considered healthy . The default value for minimum healthy percent is 100%.

If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment. Specifically, it represents it as a percentage of the desired number of tasks (rounded down to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service uses either the CODE_DEPLOY or EXTERNAL deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING state. This is while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used. This is the case even if they're currently visible when describing your service.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement. For information about task placement and task placement strategies, see Amazon ECS task placement in the Amazon Elastic Container Service Developer Guide.

" }, "CreateTaskSet":{ "name":"CreateTaskSet", @@ -102,7 +102,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Disables an account setting for a specified IAM user, IAM role, or the root user for an account.

" + "documentation":"

Disables an account setting for a specified user, role, or the root user for an account.

" }, "DeleteAttributes":{ "name":"DeleteAttributes", @@ -171,6 +171,22 @@ ], "documentation":"

Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you can't delete it, and you must update the service to a desired task count of zero. For more information, see UpdateService.

When you delete a service, if there are still running tasks that require cleanup, the service status moves from ACTIVE to DRAINING, and the service is no longer visible in the console or in the ListServices API operation. After all tasks have transitioned to either STOPPING or STOPPED status, the service status moves from DRAINING to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed with the DescribeServices API operation. However, in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping, and DescribeServices calls on those services return a ServiceNotFoundException error.

If you attempt to create a new service with the same name as an existing service in either ACTIVE or DRAINING status, you receive an error.

" }, + "DeleteTaskDefinitions":{ + "name":"DeleteTaskDefinitions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTaskDefinitionsRequest"}, + "output":{"shape":"DeleteTaskDefinitionsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ClientException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ServerException"} + ], + "documentation":"

Deletes one or more task definitions.

You must deregister a task definition revision before you delete it. For more information, see DeregisterTaskDefinition.

When you delete a task definition revision, it is immediately transitions from the INACTIVE to DELETE_IN_PROGRESS. Existing tasks and services that reference a DELETE_IN_PROGRESS task definition revision continue to run without disruption. Existing services that reference a DELETE_IN_PROGRESS task definition revision can still scale up or down by modifying the service's desired count.

You can't use a DELETE_IN_PROGRESS task definition revision to run new tasks or create new services. You also can't update an existing service to reference a DELETE_IN_PROGRESS task definition revision.

A task definition revision will stay in DELETE_IN_PROGRESS status until all the associated tasks and services have been terminated.

" + }, "DeleteTaskSet":{ "name":"DeleteTaskSet", "http":{ @@ -221,7 +237,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count.

You can't use an INACTIVE task definition to run new tasks or create new services, and you can't update an existing service to reference an INACTIVE task definition. However, there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect.

At this time, INACTIVE task definitions remain discoverable in your account indefinitely. However, this behavior is subject to change in the future. We don't recommend that you rely on INACTIVE task definitions persisting beyond the lifecycle of any associated tasks and services.

" + "documentation":"

Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count. If you want to delete a task definition revision, you must first deregister the task definition revision.

You can't use an INACTIVE task definition to run new tasks or create new services, and you can't update an existing service to reference an INACTIVE task definition. However, there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect.

At this time, INACTIVE task definitions remain discoverable in your account indefinitely. However, this behavior is subject to change in the future. We don't recommend that you rely on INACTIVE task definitions persisting beyond the lifecycle of any associated tasks and services.

You must deregister a task definition revision before you delete it. For more information, see DeleteTaskDefinitions.

" }, "DescribeCapacityProviders":{ "name":"DescribeCapacityProviders", @@ -366,7 +382,7 @@ {"shape":"ClusterNotFoundException"}, {"shape":"TargetNotConnectedException"} ], - "documentation":"

Runs a command remotely on a container within a task.

If you use a condition key in your IAM policy to refine the conditions for the policy statement, for example limit the actions to a specific cluster, you receive an AccessDeniedException when there is a mismatch between the condition key value and the corresponding parameter value.

For information about required permissions and considerations, see Using Amazon ECS Exec for debugging in the Amazon ECS Developer Guide.

" + "documentation":"

Runs a command remotely on a container within a task.

If you use a condition key in your IAM policy to refine the conditions for the policy statement, for example limit the actions to a specific cluster, you receive an AccessDeniedException when there is a mismatch between the condition key value and the corresponding parameter value.

For information about required permissions and considerations, see Using Amazon ECS Exec for debugging in the Amazon ECS Developer Guide.

" }, "GetTaskProtection":{ "name":"GetTaskProtection", @@ -555,7 +571,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Modifies an account setting. Account settings are set on a per-Region basis.

If you change the account setting for the root user, the default settings for all of the IAM users and roles that no individual account setting was specified are reset for. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat are specified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified IAM user, IAM role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the IAM user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

When awsvpcTrunking is specified, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is enabled, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

When containerInsights is specified, the default setting indicating whether CloudWatch Container Insights is enabled for your clusters is changed. If containerInsights is enabled, any new clusters that are created will have Container Insights enabled unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Modifies an account setting. Account settings are set on a per-Region basis.

If you change the root user account setting, the default settings are reset for users and roles that do not have specified individual account settings. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat are specified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

When awsvpcTrunking is specified, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is turned on, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

When containerInsights is specified, the default setting indicating whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If containerInsights is turned on, any new clusters that are created will have Container Insights turned on unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

" }, "PutAccountSettingDefault":{ "name":"PutAccountSettingDefault", @@ -570,7 +586,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Modifies an account setting for all IAM users on an account for whom no individual account setting has been specified. Account settings are set on a per-Region basis.

" + "documentation":"

Modifies an account setting for all users on an account for whom no individual account setting has been specified. Account settings are set on a per-Region basis.

" }, "PutAttributes":{ "name":"PutAttributes", @@ -634,7 +650,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

You can specify an IAM role for your task with the taskRoleArn parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the Amazon Web Services services that are specified in the IAM policy that's associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

You can specify a role for your task with the taskRoleArn parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the Amazon Web Services services that are specified in the policy that's associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

" }, "RunTask":{ "name":"RunTask", @@ -655,7 +671,7 @@ {"shape":"AccessDeniedException"}, {"shape":"BlockedException"} ], - "documentation":"

Starts a new task using the specified task definition.

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.

The Amazon ECS API follows an eventual consistency model. This is because of the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.

To manage eventual consistency, you can do the following:

  • Confirm the state of the resource before you run a command to modify it. Run the DescribeTasks command using an exponential backoff algorithm to ensure that you allow enough time for the previous command to propagate through the system. To do this, run the DescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing gradually up to five minutes of wait time.

  • Add wait time between subsequent commands, even if the DescribeTasks command returns an accurate response. Apply an exponential backoff algorithm starting with a couple of seconds of wait time, and increase gradually up to about five minutes of wait time.

" + "documentation":"

Starts a new task using the specified task definition.

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.

Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

The Amazon ECS API follows an eventual consistency model. This is because of the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.

To manage eventual consistency, you can do the following:

  • Confirm the state of the resource before you run a command to modify it. Run the DescribeTasks command using an exponential backoff algorithm to ensure that you allow enough time for the previous command to propagate through the system. To do this, run the DescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing gradually up to five minutes of wait time.

  • Add wait time between subsequent commands, even if the DescribeTasks command returns an accurate response. Apply an exponential backoff algorithm starting with a couple of seconds of wait time, and increase gradually up to about five minutes of wait time.

" }, "StartTask":{ "name":"StartTask", @@ -671,7 +687,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ClusterNotFoundException"} ], - "documentation":"

Starts a new task from the specified task definition on the specified container instance or instances.

Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Starts a new task from the specified task definition on the specified container instance or instances.

Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

" }, "StopTask":{ "name":"StopTask", @@ -872,7 +888,7 @@ {"shape":"AccessDeniedException"}, {"shape":"NamespaceNotFoundException"} ], - "documentation":"

Modifies the parameters of a service.

For services using the rolling update (ECS) you can update the desired count, deployment configuration, network configuration, load balancers, service registries, enable ECS managed tags option, propagate tags option, task placement constraints and strategies, and task definition. When you update any of these parameters, Amazon ECS starts new tasks with the new configuration.

For services using the blue/green (CODE_DEPLOY) deployment controller, only the desired count, deployment configuration, health check grace period, task placement constraints and strategies, enable ECS managed tags option, and propagate tags can be updated using this API. If the network configuration, platform version, task definition, or load balancer need to be updated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.

For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, health check grace period, enable ECS managed tags option, and propagate tags option, using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, create a new task set For more information, see CreateTaskSet.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

If you have updated the Docker image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.

If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest), you don't need to create a new revision of your task definition. You can update the service using the forceNewDeployment option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

  • If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during a deployment. For example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

  • The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment. You can use it to define the deployment batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout. After this, SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic.

  • Determine which of the container instances in your cluster can support your service's task definition. For example, they have the required CPU, memory, ports, and container instance attributes.

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner even though you can choose a different placement strategy.

    • Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

  • Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.

  • Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.

You must have a service-linked role when you update any of the following service properties. If you specified a custom IAM role when you created the service, Amazon ECS automatically replaces the roleARN associated with the service with the ARN of your service-linked role. For more information, see Service-linked roles in the Amazon Elastic Container Service Developer Guide.

  • loadBalancers,

  • serviceRegistries

" + "documentation":"

Modifies the parameters of a service.

For services using the rolling update (ECS) you can update the desired count, deployment configuration, network configuration, load balancers, service registries, enable ECS managed tags option, propagate tags option, task placement constraints and strategies, and task definition. When you update any of these parameters, Amazon ECS starts new tasks with the new configuration.

For services using the blue/green (CODE_DEPLOY) deployment controller, only the desired count, deployment configuration, health check grace period, task placement constraints and strategies, enable ECS managed tags option, and propagate tags can be updated using this API. If the network configuration, platform version, task definition, or load balancer need to be updated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.

For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, health check grace period, enable ECS managed tags option, and propagate tags option, using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, create a new task set For more information, see CreateTaskSet.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

If you have updated the Docker image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.

If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest), you don't need to create a new revision of your task definition. You can update the service using the forceNewDeployment option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

  • If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during a deployment. For example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

  • The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment. You can use it to define the deployment batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout. After this, SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic.

  • Determine which of the container instances in your cluster can support your service's task definition. For example, they have the required CPU, memory, ports, and container instance attributes.

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner even though you can choose a different placement strategy.

    • Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

  • Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.

  • Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.

You must have a service-linked role when you update any of the following service properties. If you specified a custom role when you created the service, Amazon ECS automatically replaces the roleARN associated with the service with the ARN of your service-linked role. For more information, see Service-linked roles in the Amazon Elastic Container Service Developer Guide.

  • loadBalancers,

  • serviceRegistries

" }, "UpdateServicePrimaryTaskSet":{ "name":"UpdateServicePrimaryTaskSet", @@ -912,7 +928,7 @@ {"shape":"ServerException"}, {"shape":"UnsupportedFeatureException"} ], - "documentation":"

Updates the protection status of a task. You can set protectionEnabled to true to protect your task from termination during scale-in events from Service Autoscaling or deployments.

Task-protection, by default, expires after 2 hours at which point Amazon ECS unsets the protectionEnabled property making the task eligible for termination by a subsequent scale-in event.

You can specify a custom expiration period for task protection from 1 minute to up to 2,880 minutes (48 hours). To specify the custom expiration period, set the expiresInMinutes property. The expiresInMinutes property is always reset when you invoke this operation for a task that already has protectionEnabled set to true. You can keep extending the protection expiration period of a task by invoking this operation repeatedly.

To learn more about Amazon ECS task protection, see Task scale-in protection in the Amazon Elastic Container Service Developer Guide .

This operation is only supported for tasks belonging to an Amazon ECS service. Invoking this operation for a standalone task will result in an TASK_NOT_VALID failure. For more information, see API failure reasons.

If you prefer to set task protection from within the container, we recommend using the Task scale-in protection endpoint.

" + "documentation":"

Updates the protection status of a task. You can set protectionEnabled to true to protect your task from termination during scale-in events from Service Autoscaling or deployments.

Task-protection, by default, expires after 2 hours at which point Amazon ECS clears the protectionEnabled property making the task eligible for termination by a subsequent scale-in event.

You can specify a custom expiration period for task protection from 1 minute to up to 2,880 minutes (48 hours). To specify the custom expiration period, set the expiresInMinutes property. The expiresInMinutes property is always reset when you invoke this operation for a task that already has protectionEnabled set to true. You can keep extending the protection expiration period of a task by invoking this operation repeatedly.

To learn more about Amazon ECS task protection, see Task scale-in protection in the Amazon Elastic Container Service Developer Guide .

This operation is only supported for tasks belonging to an Amazon ECS service. Invoking this operation for a standalone task will result in an TASK_NOT_VALID failure. For more information, see API failure reasons.

If you prefer to set task protection from within the container, we recommend using the Task scale-in protection endpoint.

" }, "UpdateTaskSet":{ "name":"UpdateTaskSet", @@ -1070,7 +1086,7 @@ }, "managedTerminationProtection":{ "shape":"ManagedTerminationProtection", - "documentation":"

The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. The default is disabled.

When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.

When managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions enabled as well. For more information, see Instance Protection in the Auto Scaling User Guide.

When managed termination protection is disabled, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.

" + "documentation":"

The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. The default is off.

When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions on as well. For more information, see Instance Protection in the Auto Scaling User Guide.

When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.

" } }, "documentation":"

The details of the Auto Scaling group for the capacity provider.

" @@ -1084,7 +1100,7 @@ }, "managedTerminationProtection":{ "shape":"ManagedTerminationProtection", - "documentation":"

The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection.

When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.

When managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions enabled. For more information, see Instance Protection in the Auto Scaling User Guide.

When managed termination protection is disabled, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.

" + "documentation":"

The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection.

When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.

When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions on. For more information, see Instance Protection in the Auto Scaling User Guide.

When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.

" } }, "documentation":"

The details of the Auto Scaling group capacity provider to update.

" @@ -1281,7 +1297,7 @@ }, "settings":{ "shape":"ClusterSettings", - "documentation":"

The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is enabled or disabled for a cluster.

" + "documentation":"

The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is on or off for a cluster.

" }, "capacityProviders":{ "shape":"StringList", @@ -1374,7 +1390,7 @@ "members":{ "namespace":{ "shape":"String", - "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than (>), less than (<), or slash (/).

If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this Amazon Web Services Region.

If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a Cloud Map namespace with the \"API calls\" method of instance discovery only. This instance discovery method is the \"HTTP\" namespace type in the Command Line Interface. Other types of instance discovery aren't used by Service Connect.

If you update the service with an empty string \"\" for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in Cloud Map and must be deleted separately.

For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

" + "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than (>), less than (<), or slash (/).

If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this Amazon Web Services Region.

If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a Cloud Map namespace with the \"API calls\" method of instance discovery only. This instance discovery method is the \"HTTP\" namespace type in the Command Line Interface. Other types of instance discovery aren't used by Service Connect.

If you update the service with an empty string \"\" for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in Cloud Map and must be deleted separately.

For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

" } }, "documentation":"

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" @@ -1384,11 +1400,11 @@ "members":{ "name":{ "shape":"ClusterSettingName", - "documentation":"

The name of the cluster setting. The only supported value is containerInsights.

" + "documentation":"

The name of the cluster setting. The value is containerInsights .

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

The value to set for the cluster setting. The supported values are enabled and disabled. If enabled is specified, CloudWatch Container Insights will be enabled for the cluster, otherwise it will be disabled unless the containerInsights account setting is enabled. If a cluster value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

" + "documentation":"

The value to set for the cluster setting. The supported values are enabled and disabled.

If you set name to containerInsights and value to enabled, CloudWatch Container Insights will be on for the cluster, otherwise it will be off unless the containerInsights account setting is turned on. If a cluster value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

" } }, "documentation":"

The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster.

" @@ -1604,7 +1620,7 @@ }, "disableNetworking":{ "shape":"BoxedBoolean", - "documentation":"

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

This parameter is not supported for Windows containers.

" + "documentation":"

When this parameter is true, networking is off within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

This parameter is not supported for Windows containers.

" }, "privileged":{ "shape":"BoxedBoolean", @@ -1644,7 +1660,7 @@ }, "ulimits":{ "shape":"UlimitList", - "documentation":"

A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and hard limit is 4096.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

This parameter is not supported for Windows containers.

" + "documentation":"

A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 4096.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

This parameter is not supported for Windows containers.

" }, "logConfiguration":{ "shape":"LogConfiguration", @@ -1947,11 +1963,11 @@ }, "capacityProviders":{ "shape":"StringList", - "documentation":"

The short name of one or more capacity providers to associate with the cluster. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy when calling the CreateService or RunTask actions.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must be created but not associated with another cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

" + "documentation":"

The short name of one or more capacity providers to associate with the cluster. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy when calling the CreateService or RunTask actions.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must be created but not associated with another cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutCapacityProvider API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

" }, "defaultCapacityProviderStrategy":{ "shape":"CapacityProviderStrategy", - "documentation":"

The capacity provider strategy to set as the default for the cluster. After a default capacity provider strategy is set for a cluster, when you call the RunTask or CreateService APIs with no capacity provider strategy or launch type specified, the default capacity provider strategy for the cluster is used.

If a default capacity provider strategy isn't defined for a cluster when it was created, it can be defined later with the PutClusterCapacityProviders API operation.

" + "documentation":"

The capacity provider strategy to set as the default for the cluster. After a default capacity provider strategy is set for a cluster, when you call the CreateService or RunTask APIs with no capacity provider strategy or launch type specified, the default capacity provider strategy for the cluster is used.

If a default capacity provider strategy isn't defined for a cluster when it was created, it can be defined later with the PutClusterCapacityProviders API operation.

" }, "serviceConnectDefaults":{ "shape":"ClusterServiceConnectDefaultsRequest", @@ -1982,7 +1998,7 @@ }, "taskDefinition":{ "shape":"String", - "documentation":"

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision isn't specified, the latest ACTIVE revision is used.

A task definition must be specified if the service uses either the ECS or CODE_DEPLOY deployment controllers.

" + "documentation":"

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision isn't specified, the latest ACTIVE revision is used.

A task definition must be specified if the service uses either the ECS or CODE_DEPLOY deployment controllers.

For more information about deployment types, see Amazon ECS deployment types.

" }, "loadBalancers":{ "shape":"LoadBalancers", @@ -2054,11 +2070,11 @@ }, "propagateTags":{ "shape":"PropagateTags", - "documentation":"

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the TagResource API action.

" + "documentation":"

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the TagResource API action.

" }, "enableExecuteCommand":{ "shape":"Boolean", - "documentation":"

Determines whether the execute command functionality is enabled for the service. If true, this enables execute command functionality on all containers in the service tasks.

" + "documentation":"

Determines whether the execute command functionality is turned on for the service. If true, this enables execute command functionality on all containers in the service tasks.

" }, "serviceConnectConfiguration":{ "shape":"ServiceConnectConfiguration", @@ -2156,7 +2172,7 @@ }, "principalArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the principal. It can be an IAM user, IAM role, or the root user. If you specify the root user, it disables the account setting for all IAM users, IAM roles, and the root user of the account unless an IAM user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.

" + "documentation":"

The Amazon Resource Name (ARN) of the principal. It can be an user, role, or the root user. If you specify the root user, it disables the account setting for all users, roles, and the root user of the account unless a user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.

" } } }, @@ -2257,6 +2273,29 @@ } } }, + "DeleteTaskDefinitionsRequest":{ + "type":"structure", + "required":["taskDefinitions"], + "members":{ + "taskDefinitions":{ + "shape":"StringList", + "documentation":"

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition to delete. You must specify a revision.

You can specify up to 10 task definitions as a comma separated list.

" + } + } + }, + "DeleteTaskDefinitionsResponse":{ + "type":"structure", + "members":{ + "taskDefinitions":{ + "shape":"TaskDefinitionList", + "documentation":"

The list of deleted task definitions.

" + }, + "failures":{ + "shape":"Failures", + "documentation":"

Any failures associated with the call.

" + } + } + }, "DeleteTaskSetRequest":{ "type":"structure", "required":[ @@ -2353,7 +2392,7 @@ }, "rolloutState":{ "shape":"DeploymentRolloutState", - "documentation":"

The rolloutState of a service is only returned for services that use the rolling update (ECS) deployment type that aren't behind a Classic Load Balancer.

The rollout state of the deployment. When a service deployment is started, it begins in an IN_PROGRESS state. When the service reaches a steady state, the deployment transitions to a COMPLETED state. If the service fails to reach a steady state and circuit breaker is enabled, the deployment transitions to a FAILED state. A deployment in FAILED state doesn't launch any new tasks. For more information, see DeploymentCircuitBreaker.

" + "documentation":"

The rolloutState of a service is only returned for services that use the rolling update (ECS) deployment type that aren't behind a Classic Load Balancer.

The rollout state of the deployment. When a service deployment is started, it begins in an IN_PROGRESS state. When the service reaches a steady state, the deployment transitions to a COMPLETED state. If the service fails to reach a steady state and circuit breaker is turned on, the deployment transitions to a FAILED state. A deployment in FAILED state doesn't launch any new tasks. For more information, see DeploymentCircuitBreaker.

" }, "rolloutStateReason":{ "shape":"String", @@ -2409,14 +2448,14 @@ "documentation":"

Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is on, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.

" } }, - "documentation":"

The deployment circuit breaker can only be used for services using the rolling update (ECS) deployment type that aren't behind a Classic Load Balancer.

The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If enabled, a service deployment will transition to a failed state and stop launching new tasks. You can also configure Amazon ECS to roll back your service to the last completed deployment after a failure. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The deployment circuit breaker can only be used for services using the rolling update (ECS) deployment type.

The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If it is turned on, a service deployment will transition to a failed state and stop launching new tasks. You can also configure Amazon ECS to roll back your service to the last completed deployment after a failure. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide.

" }, "DeploymentConfiguration":{ "type":"structure", "members":{ "deploymentCircuitBreaker":{ "shape":"DeploymentCircuitBreaker", - "documentation":"

The deployment circuit breaker can only be used for services using the rolling update (ECS) deployment type.

The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.

" + "documentation":"

The deployment circuit breaker can only be used for services using the rolling update (ECS) deployment type.

The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide

" }, "maximumPercent":{ "shape":"BoxedInteger", @@ -2842,11 +2881,11 @@ "members":{ "accessPointId":{ "shape":"String", - "documentation":"

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the Amazon Elastic File System User Guide.

" + "documentation":"

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be on in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the Amazon Elastic File System User Guide.

" }, "iam":{ "shape":"EFSAuthorizationConfigIAM", - "documentation":"

Determines whether to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. If this parameter is omitted, the default value of DISABLED is used. For more information, see Using Amazon EFS access points in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS file system. If it is turned on, transit encryption must be turned on in the EFSVolumeConfiguration. If this parameter is omitted, the default value of DISABLED is used. For more information, see Using Amazon EFS access points in the Amazon Elastic Container Service Developer Guide.

" } }, "documentation":"

The authorization configuration details for the Amazon EFS file system.

" @@ -2879,7 +2918,7 @@ }, "transitEncryption":{ "shape":"EFSTransitEncryption", - "documentation":"

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of DISABLED is used. For more information, see Encrypting data in transit in the Amazon Elastic File System User Guide.

" + "documentation":"

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of DISABLED is used. For more information, see Encrypting data in transit in the Amazon Elastic File System User Guide.

" }, "transitEncryptionPort":{ "shape":"BoxedInteger", @@ -2931,7 +2970,7 @@ "documentation":"

The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB.

" } }, - "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

This parameter is only supported for tasks hosted on Fargate using Linux platform version 1.4.0 or later. This parameter is not supported for Windows containers on Fargate.

" + "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

For tasks using the Fargate launch type, the task requires the following platforms:

  • Linux platform version 1.4.0 or later.

" }, "ExecuteCommandConfiguration":{ "type":"structure", @@ -2960,7 +2999,7 @@ }, "cloudWatchEncryptionEnabled":{ "shape":"Boolean", - "documentation":"

Determines whether to use encryption on the CloudWatch logs. If not specified, encryption will be disabled.

" + "documentation":"

Determines whether to use encryption on the CloudWatch logs. If not specified, encryption will be off.

" }, "s3BucketName":{ "shape":"String", @@ -3153,7 +3192,7 @@ "members":{ "protectedTasks":{ "shape":"ProtectedTasks", - "documentation":"

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is enabled for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

" + "documentation":"

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is turned on for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

" }, "failures":{ "shape":"Failures", @@ -3171,7 +3210,7 @@ "members":{ "command":{ "shape":"StringList", - "documentation":"

A string array representing the command that the container runs to determine if it is healthy. The string array must start with CMD to run the command arguments directly, or CMD-SHELL to run the command with the container's default shell.

When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list of commands in brackets.

[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]

You don't need to include the brackets when you use the Amazon Web Services Management Console.

\"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\"

An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see HealthCheck in the Create a container section of the Docker Remote API.

" + "documentation":"

A string array representing the command that the container runs to determine if it is healthy. The string array must start with CMD to run the command arguments directly, or CMD-SHELL to run the command with the container's default shell.

When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list of commands in double quotes and brackets.

[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]

You don't include the double quotes and brackets when you use the Amazon Web Services Management Console.

CMD-SHELL, curl -f http://localhost/ || exit 1

An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see HealthCheck in the Create a container section of the Docker Remote API.

" }, "interval":{ "shape":"BoxedInteger", @@ -3187,10 +3226,10 @@ }, "startPeriod":{ "shape":"BoxedInteger", - "documentation":"

The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the startPeriod is disabled.

If a health check succeeds within the startPeriod, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.

" + "documentation":"

The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the startPeriod is off.

If a health check succeeds within the startPeriod, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.

" } }, - "documentation":"

An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile).

The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.

You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.

The following describes the possible healthStatus values for a container:

  • HEALTHY-The container health check has passed successfully.

  • UNHEALTHY-The container health check has failed.

  • UNKNOWN-The container health check is being evaluated or there's no container health check defined.

The following describes the possible healthStatus values for a task. The container health check status of nonessential containers only affects the health status of a task if no essential containers have health checks defined.

  • HEALTHY-All essential containers within the task have passed their health checks.

  • UNHEALTHY-One or more essential containers have failed their health check.

  • UNKNOWN-The essential containers within the task are still having their health checks evaluated or there are only nonessential containers with health checks defined.

If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.

For tasks that are a part of a service and the service uses the ECS rolling deployment type, the deployment is paused while the new tasks have the UNKNOWN task health check status. For example, tasks that define health checks for nonessential containers when no essential containers have health checks will have the UNKNOWN health check status indefinitely which prevents the deployment from completing.

The following are notes about container health check support:

  • Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS container agent.

  • Container health checks are supported for Fargate tasks if you're using platform version 1.1.0 or greater. For more information, see Fargate platform versions.

  • Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.

" + "documentation":"

An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the HEALTHCHECK parameter of docker run.

The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.

You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.

The following describes the possible healthStatus values for a container:

  • HEALTHY-The container health check has passed successfully.

  • UNHEALTHY-The container health check has failed.

  • UNKNOWN-The container health check is being evaluated or there's no container health check defined.

The following describes the possible healthStatus values for a task. The container health check status of non-essential containers don't have an effect on the health status of a task.

  • HEALTHY-All essential containers within the task have passed their health checks.

  • UNHEALTHY-One or more essential containers have failed their health check.

  • UNKNOWN-The essential containers within the task are still having their health checks evaluated, there are only nonessential containers with health checks defined, or there are no container health checks defined.

If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.

The following are notes about container health check support:

  • Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS container agent.

  • Container health checks are supported for Fargate tasks if you're using platform version 1.1.0 or greater. For more information, see Fargate platform versions.

  • Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.

" }, "HealthStatus":{ "type":"string", @@ -3241,7 +3280,7 @@ "members":{ "deviceName":{ "shape":"String", - "documentation":"

The Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.

" + "documentation":"

The Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.

" }, "deviceType":{ "shape":"String", @@ -3402,7 +3441,7 @@ "documentation":"

This allows you to tune a container's memory swappiness behavior. A swappiness value of 0 will cause swapping to not happen unless absolutely necessary. A swappiness value of 100 will cause pages to be swapped very aggressively. Accepted values are whole numbers between 0 and 100. If the swappiness parameter is not specified, a default value of 60 is used. If a value is not specified for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness option to docker run.

If you're using tasks that use the Fargate launch type, the swappiness parameter isn't supported.

" } }, - "documentation":"

Linux-specific options that are applied to the container, such as Linux KernelCapabilities.

" + "documentation":"

The Linux-specific options that are applied to the container, such as Linux KernelCapabilities.

" }, "ListAccountSettingsRequest":{ "type":"structure", @@ -3417,7 +3456,7 @@ }, "principalArn":{ "shape":"String", - "documentation":"

The ARN of the principal, which can be an IAM user, IAM role, or the root user. If this field is omitted, the account settings are listed only for the authenticated user.

Federated users assume the account setting of the root user and can't have explicit account settings set for them.

" + "documentation":"

The ARN of the principal, which can be a user, role, or the root user. If this field is omitted, the account settings are listed only for the authenticated user.

Federated users assume the account setting of the root user and can't have explicit account settings set for them.

" }, "effectiveSettings":{ "shape":"Boolean", @@ -3787,7 +3826,7 @@ "documentation":"

The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the hostPort of the port mapping.

" } }, - "documentation":"

The load balancer configuration to use with a service or task set.

For specific notes and restrictions regarding the use of load balancers with services and task sets, see the CreateService and CreateTaskSet actions.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The load balancer configuration to use with a service or task set.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles in the Amazon Elastic Container Service Developer Guide.

" }, "LoadBalancers":{ "type":"list", @@ -3840,7 +3879,7 @@ }, "name":{ "shape":"ManagedAgentName", - "documentation":"

The name of the managed agent. When the execute command feature is enabled, the managed agent name is ExecuteCommandAgent.

" + "documentation":"

The name of the managed agent. When the execute command feature is turned on, the managed agent name is ExecuteCommandAgent.

" }, "reason":{ "shape":"String", @@ -3901,7 +3940,7 @@ }, "targetCapacity":{ "shape":"ManagedScalingTargetCapacity", - "documentation":"

The target capacity value for the capacity provider. The specified value must be greater than 0 and less than or equal to 100. A value of 100 results in the Amazon EC2 instances in your Auto Scaling group being completely used.

" + "documentation":"

The target capacity utilization as a percentage for the capacity provider. The specified value must be greater than 0 and less than or equal to 100. For example, if you want the capacity provider to maintain 10% spare capacity, then that means the utilization is 90%, so use a targetCapacity of 90. The default value of 100 percent results in the Amazon EC2 instances in your Auto Scaling group being completely used.

" }, "minimumScalingStepSize":{ "shape":"ManagedScalingStepSize", @@ -3916,7 +3955,7 @@ "documentation":"

The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is used.

" } }, - "documentation":"

The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified targetCapacity value as the target value for the metric. For more information, see Using managed scaling in the Amazon Elastic Container Service Developer Guide.

If managed scaling is disabled, the user must manage the scaling of the Auto Scaling group.

" + "documentation":"

The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is turned on, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified targetCapacity value as the target value for the metric. For more information, see Using managed scaling in the Amazon Elastic Container Service Developer Guide.

If managed scaling is off, the user must manage the scaling of the Auto Scaling group.

" }, "ManagedScalingInstanceWarmupPeriod":{ "type":"integer", @@ -3970,7 +4009,7 @@ "documentation":"

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

" } }, - "documentation":"

Details for a volume mount point that's used in a container definition.

" + "documentation":"

The details for a volume mount point that's used in a container definition.

" }, "MountPointList":{ "type":"list", @@ -4025,7 +4064,7 @@ "documentation":"

The VPC subnets and security groups that are associated with a task.

All specified subnets and security groups must be from the same VPC.

" } }, - "documentation":"

An object representing the network configuration for a task or service.

" + "documentation":"

The network configuration for a task or service.

" }, "NetworkInterface":{ "type":"structure", @@ -4185,7 +4224,7 @@ }, "hostPort":{ "shape":"BoxedInteger", - "documentation":"

The port number on the container instance to reserve for your container.

If you specify a containerPortRange, leave this field empty and the value of the hostPort is set as follows:

  • For containers in a task with the awsvpc network mode, the hostPort is set to the same value as the containerPort. This is a static mapping strategy.

  • For containers in a task with the bridge network mode, the Amazon ECS agent finds open ports on the host and automaticaly binds them to the container ports. This is a dynamic mapping strategy.

If you use containers in a task with the awsvpc or host network mode, the hostPort can either be left blank or set to the same value as the containerPort.

If you use containers in a task with the bridge network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.

" + "documentation":"

The port number on the container instance to reserve for your container.

If you specify a containerPortRange, leave this field empty and the value of the hostPort is set as follows:

  • For containers in a task with the awsvpc network mode, the hostPort is set to the same value as the containerPort. This is a static mapping strategy.

  • For containers in a task with the bridge network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.

If you use containers in a task with the awsvpc or host network mode, the hostPort can either be left blank or set to the same value as the containerPort.

If you use containers in a task with the bridge network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.

" }, "protocol":{ "shape":"TransportProtocol", @@ -4201,7 +4240,7 @@ }, "containerPortRange":{ "shape":"String", - "documentation":"

The port number range on the container that's bound to the dynamically mapped host port range.

The following rules apply when you specify a containerPortRange:

  • You must use either the bridge network mode or the awsvpc network mode.

  • This parameter is available for both the EC2 and Fargate launch types.

  • This parameter is available for both the Linux and Windows operating systems.

  • The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ecs-init package

  • You can specify a maximum of 100 port ranges per container.

  • You do not specify a hostPortRange. The value of the hostPortRange is set as follows:

    • For containers in a task with the awsvpc network mode, the hostPort is set to the same value as the containerPort. This is a static mapping strategy.

    • For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

  • The containerPortRange valid values are between 1 and 65535.

  • A port can only be included in one port mapping per container.

  • You cannot specify overlapping port ranges.

  • The first port in the range must be less than last port in the range.

  • Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    For more information, see Issue #11185 on the Github website.

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

You can call DescribeTasks to view the hostPortRange which are the host ports that are bound to the container ports.

" + "documentation":"

The port number range on the container that's bound to the dynamically mapped host port range.

The following rules apply when you specify a containerPortRange:

  • You must use either the bridge network mode or the awsvpc network mode.

  • This parameter is available for both the EC2 and Fargate launch types.

  • This parameter is available for both the Linux and Windows operating systems.

  • The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ecs-init package

  • You can specify a maximum of 100 port ranges per container.

  • You do not specify a hostPortRange. The value of the hostPortRange is set as follows:

    • For containers in a task with the awsvpc network mode, the hostPort is set to the same value as the containerPort. This is a static mapping strategy.

    • For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

  • The containerPortRange valid values are between 1 and 65535.

  • A port can only be included in one port mapping per container.

  • You cannot specify overlapping port ranges.

  • The first port in the range must be less than last port in the range.

  • Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

    For more information, see Issue #11185 on the Github website.

    For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

You can call DescribeTasks to view the hostPortRange which are the host ports that are bound to the container ports.

" } }, "documentation":"

Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition.

If you use containers in a task with the awsvpc or host network mode, specify the exposed ports using containerPort. The hostPort can be left blank or it must be the same value as the containerPort.

You can't expose the same container port for multiple protocols. If you attempt this, an error is returned.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

" @@ -4233,7 +4272,7 @@ }, "protectionEnabled":{ "shape":"Boolean", - "documentation":"

The protection status of the task. If scale-in protection is enabled for a task, the value is true. Otherwise, it is false.

" + "documentation":"

The protection status of the task. If scale-in protection is on for a task, the value is true. Otherwise, it is false.

" }, "expirationDate":{ "shape":"Timestamp", @@ -4282,7 +4321,7 @@ "members":{ "name":{ "shape":"SettingName", - "documentation":"

The resource name for which to modify the account setting. If serviceLongArnFormat is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If awsvpcTrunking is specified, the ENI limit for your Amazon ECS container instances is affected. If containerInsights is specified, the default setting for CloudWatch Container Insights for your clusters is affected.

Fargate is transitioning from task count-based quotas to vCPU-based quotas. You can set the name to fargateVCPULimit to opt in or opt out of the vCPU-based quotas. For information about the opt in timeline, see Fargate vCPU-based quotas timeline in the Amazon ECS Developer Guide.

" + "documentation":"

The resource name for which to modify the account setting. If serviceLongArnFormat is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If awsvpcTrunking is specified, the ENI limit for your Amazon ECS container instances is affected. If containerInsights is specified, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected.

When you specify fargateFIPSMode for the name and enabled for the value, Fargate uses FIPS-140 compliant cryptographic algorithms on your tasks. For more information about FIPS-140 compliance with Fargate, see Amazon Web Services Fargate Federal Information Processing Standard (FIPS) 140-2 compliance in the Amazon Elastic Container Service Developer Guide.

" }, "value":{ "shape":"String", @@ -4308,7 +4347,7 @@ "members":{ "name":{ "shape":"SettingName", - "documentation":"

The Amazon ECS resource name for which to modify the account setting. If serviceLongArnFormat is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If awsvpcTrunking is specified, the elastic network interface (ENI) limit for your Amazon ECS container instances is affected. If containerInsights is specified, the default setting for CloudWatch Container Insights for your clusters is affected.

" + "documentation":"

The Amazon ECS resource name for which to modify the account setting. If serviceLongArnFormat is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If awsvpcTrunking is specified, the elastic network interface (ENI) limit for your Amazon ECS container instances is affected. If containerInsights is specified, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If fargateFIPSMode is specified, Fargate FIPS 140 compliance is affected.

" }, "value":{ "shape":"String", @@ -4316,7 +4355,7 @@ }, "principalArn":{ "shape":"String", - "documentation":"

The ARN of the principal, which can be an IAM user, IAM role, or the root user. If you specify the root user, it modifies the account setting for all IAM users, IAM roles, and the root user of the account unless an IAM user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.

Federated users assume the account setting of the root user and can't have explicit account settings set for them.

" + "documentation":"

The ARN of the principal, which can be a user, role, or the root user. If you specify the root user, it modifies the account setting for all users, roles, and the root user of the account unless a user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.

Federated users assume the account setting of the root user and can't have explicit account settings set for them.

" } } }, @@ -4502,7 +4541,7 @@ }, "ephemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

This parameter is only supported for tasks hosted on Fargate using the following platform versions:

  • Linux platform version 1.4.0 or later.

" + "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

For tasks using the Fargate launch type, the task requires the following platforms:

  • Linux platform version 1.4.0 or later.

" }, "runtimePlatform":{ "shape":"RuntimePlatform", @@ -4591,7 +4630,7 @@ "members":{ "value":{ "shape":"String", - "documentation":"

The value for the specified resource type.

If the GPU type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on.

If the InferenceAccelerator type is used, the value matches the deviceName for an InferenceAccelerator specified in a task definition.

" + "documentation":"

The value for the specified resource type.

If the GPU type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on.

If the InferenceAccelerator type is used, the value matches the deviceName for an InferenceAccelerator specified in a task definition.

" }, "type":{ "shape":"ResourceType", @@ -4685,7 +4724,7 @@ }, "taskDefinition":{ "shape":"String", - "documentation":"

The family and revision (family:revision) or full ARN of the task definition to run. If a revision isn't specified, the latest ACTIVE revision is used.

When you create an IAM policy for run-task, you can set the resource to be the latest task definition revision, or a specific revision.

The full ARN value must match the value that you specified as the Resource of the IAM principal's permissions policy.

When you specify the policy resource as the latest task definition version (by setting the Resource in the policy to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), then set this value to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

When you specify the policy resource as a specific task definition version (by setting the Resource in the policy to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 or arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), then set this value to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

For more information, see Policy Resources for Amazon ECS in the Amazon Elastic Container Service developer Guide.

" + "documentation":"

The family and revision (family:revision) or full ARN of the task definition to run. If a revision isn't specified, the latest ACTIVE revision is used.

When you create a policy for run-task, you can set the resource to be the latest task definition revision, or a specific revision.

The full ARN value must match the value that you specified as the Resource of the principal's permissions policy.

When you specify the policy resource as the latest task definition version (by setting the Resource in the policy to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), then set this value to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

When you specify the policy resource as a specific task definition version (by setting the Resource in the policy to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 or arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), then set this value to arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

For more information, see Policy Resources for Amazon ECS in the Amazon Elastic Container Service developer Guide.

" } } }, @@ -4908,10 +4947,10 @@ }, "enableExecuteCommand":{ "shape":"Boolean", - "documentation":"

Determines whether the execute command functionality is enabled for the service. If true, the execute command functionality is enabled for all containers in tasks as part of the service.

" + "documentation":"

Determines whether the execute command functionality is turned on for the service. If true, the execute command functionality is turned on for all containers in tasks as part of the service.

" } }, - "documentation":"

Details on a service within a cluster

" + "documentation":"

Details on a service within a cluster.

" }, "ServiceConnectClientAlias":{ "type":"structure", @@ -4942,7 +4981,7 @@ }, "namespace":{ "shape":"String", - "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace for use with Service Connect. The namespace must be in the same Amazon Web Services Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

" + "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace for use with Service Connect. The namespace must be in the same Amazon Web Services Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

" }, "services":{ "shape":"ServiceConnectServiceList", @@ -4962,7 +5001,7 @@ }, "discoveryName":{ "shape":"String", - "documentation":"

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" + "documentation":"

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" }, "clientAliases":{ "shape":"ServiceConnectClientAliasList", @@ -4984,7 +5023,7 @@ "members":{ "discoveryName":{ "shape":"String", - "documentation":"

The discovery name of this Service Connect resource.

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" + "documentation":"

The discovery name of this Service Connect resource.

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" }, "discoveryArn":{ "shape":"String", @@ -5098,11 +5137,11 @@ }, "value":{ "shape":"String", - "documentation":"

Determines whether the account setting is enabled or disabled for the specified resource.

" + "documentation":"

Determines whether the account setting is on or off for the specified resource.

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

The ARN of the principal. It can be an IAM user, IAM role, or the root user. If this field is omitted, the authenticated user is assumed.

" + "documentation":"

The ARN of the principal. It can be a user, role, or the root user. If this field is omitted, the authenticated user is assumed.

" } }, "documentation":"

The current account setting for a resource.

" @@ -5114,7 +5153,8 @@ "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", - "containerInsights" + "containerInsights", + "fargateFIPSMode" ] }, "Settings":{ @@ -5156,7 +5196,7 @@ }, "enableExecuteCommand":{ "shape":"Boolean", - "documentation":"

Whether or not the execute command functionality is enabled for the task. If true, this enables execute command functionality on all containers in the task.

" + "documentation":"

Whether or not the execute command functionality is turned on for the task. If true, this enables execute command functionality on all containers in the task.

" }, "group":{ "shape":"String", @@ -5219,7 +5259,7 @@ }, "task":{ "shape":"String", - "documentation":"

The task ID or full Amazon Resource Name (ARN) of the task to stop.

" + "documentation":"

The task ID of the task to stop.

" }, "reason":{ "shape":"String", @@ -5449,7 +5489,7 @@ "type":"structure", "members":{ }, - "documentation":"

The execute command cannot run. This error can be caused by any of the following configuration issues:

  • Incorrect IAM permissions

  • The SSM agent is not installed or is not running

  • There is an interface Amazon VPC endpoint for Amazon ECS, but there is not one for for Systems Manager Session Manager

For information about how to troubleshoot the issues, see Troubleshooting issues with ECS Exec in the Amazon Elastic Container Service Developer Guide.

", + "documentation":"

The execute command cannot run. This error can be caused by any of the following configuration issues:

  • Incorrect IAM permissions

  • The SSM agent is not installed or is not running

  • There is an interface Amazon VPC endpoint for Amazon ECS, but there is not one for Systems Manager Session Manager

For information about how to troubleshoot the issues, see Troubleshooting issues with ECS Exec in the Amazon Elastic Container Service Developer Guide.

", "exception":true }, "TargetNotFoundException":{ @@ -5516,7 +5556,7 @@ }, "enableExecuteCommand":{ "shape":"Boolean", - "documentation":"

Determines whether execute command functionality is enabled for this task. If true, execute command functionality is enabled on all the containers in the task.

" + "documentation":"

Determines whether execute command functionality is turned on for this task. If true, execute command functionality is turned on all the containers in the task.

" }, "executionStoppedAt":{ "shape":"Timestamp", @@ -5670,7 +5710,7 @@ }, "requiresCompatibilities":{ "shape":"CompatibilityList", - "documentation":"

The task launch types the task definition was validated against. To determine which task launch types the task definition is validated for, see the TaskDefinition$compatibilities parameter.

" + "documentation":"

The task launch types the task definition was validated against. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

" }, "cpu":{ "shape":"String", @@ -5731,6 +5771,10 @@ "type":"list", "member":{"shape":"TaskDefinitionField"} }, + "TaskDefinitionList":{ + "type":"list", + "member":{"shape":"TaskDefinition"} + }, "TaskDefinitionPlacementConstraint":{ "type":"structure", "members":{ @@ -5743,7 +5787,7 @@ "documentation":"

A cluster query language expression to apply to the constraint. For more information, see Cluster query language in the Amazon Elastic Container Service Developer Guide.

" } }, - "documentation":"

An object representing a constraint on task placement in the task definition. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide.

Task placement constraints aren't supported for tasks run on Fargate.

" + "documentation":"

The constraint on task placement in the task definition. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide.

Task placement constraints aren't supported for tasks run on Fargate.

" }, "TaskDefinitionPlacementConstraintType":{ "type":"string", @@ -5757,7 +5801,8 @@ "type":"string", "enum":[ "ACTIVE", - "INACTIVE" + "INACTIVE", + "DELETE_IN_PROGRESS" ] }, "TaskField":{ @@ -5785,7 +5830,7 @@ }, "executionRoleArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the task execution IAM role override for the task. For more information, see Amazon ECS task execution IAM role in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of the task execution role override for the task. For more information, see Amazon ECS task execution IAM role in the Amazon Elastic Container Service Developer Guide.

" }, "memory":{ "shape":"String", @@ -5793,7 +5838,7 @@ }, "taskRoleArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Role for Tasks in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of the role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Role for Tasks in the Amazon Elastic Container Service Developer Guide.

" }, "ephemeralStorage":{ "shape":"EphemeralStorage", @@ -5993,7 +6038,7 @@ "documentation":"

The hard limit for the ulimit type.

" } }, - "documentation":"

The ulimit settings to pass to the container.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and hard limit is 4096.

" + "documentation":"

The ulimit settings to pass to the container.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 4096.

You can specify the ulimit settings for a container in a task definition.

" }, "UlimitList":{ "type":"list", @@ -6344,7 +6389,7 @@ "members":{ "protectedTasks":{ "shape":"ProtectedTasks", - "documentation":"

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is enabled for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

" + "documentation":"

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is turned on for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

" }, "failures":{ "shape":"Failures", diff --git a/services/efs/pom.xml b/services/efs/pom.xml index 2f3c85fb2843..8ba22adc4215 100644 --- a/services/efs/pom.xml +++ b/services/efs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT efs AWS Java SDK :: Services :: Amazon Elastic File System diff --git a/services/efs/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/efs/src/main/resources/codegen-resources/endpoint-rule-set.json index 106cfc4d7529..e2a751df21fb 100644 --- a/services/efs/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/efs/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticfilesystem-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticfilesystem-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://elasticfilesystem-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticfilesystem.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://elasticfilesystem-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://elasticfilesystem.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://elasticfilesystem.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://elasticfilesystem.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/efs/src/main/resources/codegen-resources/endpoint-tests.json b/services/efs/src/main/resources/codegen-resources/endpoint-tests.json index 7985bdc467ee..7846888a5fe9 100644 --- a/services/efs/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/efs/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1618 +1,796 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.ap-south-1.api.aws" + "url": "https://elasticfilesystem.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.ap-south-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" + "UseFIPS": true } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.ap-south-1.api.aws" + "url": "https://elasticfilesystem.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.ap-south-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" + "UseFIPS": true } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-south-1.api.aws" + "url": "https://elasticfilesystem.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-south-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" + "UseFIPS": true } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-south-1.api.aws" + "url": "https://elasticfilesystem.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-south-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" + "UseFIPS": true } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-south-2.api.aws" + "url": "https://elasticfilesystem.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-south-2.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" + "UseFIPS": true } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-south-2.api.aws" + "url": "https://elasticfilesystem.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-2" + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-south-2.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-2" + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-gov-east-1.api.aws" + "url": "https://elasticfilesystem.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-gov-east-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-gov-east-1.api.aws" + "url": "https://elasticfilesystem.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-gov-east-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.me-central-1.api.aws" + "url": "https://elasticfilesystem.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.me-central-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.ap-southeast-3.amazonaws.com" } }, "params": { + "Region": "ap-southeast-3", "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" + "UseFIPS": true } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.me-central-1.api.aws" + "url": "https://elasticfilesystem.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.me-central-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" + "UseFIPS": true } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.ca-central-1.api.aws" + "url": "https://elasticfilesystem.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.ca-central-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" + "UseFIPS": true } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.ca-central-1.api.aws" + "url": "https://elasticfilesystem.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.ca-central-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.eu-north-1.amazonaws.com" } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" + "UseFIPS": true } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-central-1.api.aws" + "url": "https://elasticfilesystem.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-central-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" + "UseFIPS": true } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-central-1.api.aws" + "url": "https://elasticfilesystem.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-central-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" + "UseFIPS": true } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://elasticfilesystem.eu-west-2.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-iso-west-1.c2s.ic.gov" + "url": "https://elasticfilesystem-fips.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" + "UseFIPS": true } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://elasticfilesystem.eu-west-3.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-west-1" + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-iso-west-1.c2s.ic.gov" + "url": "https://elasticfilesystem-fips.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" + "UseFIPS": true } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-central-2.api.aws" + "url": "https://elasticfilesystem.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-central-2.amazonaws.com" + "url": "https://elasticfilesystem-fips.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" + "UseFIPS": true } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-central-2.api.aws" + "url": "https://elasticfilesystem.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-central-2.amazonaws.com" + "url": "https://elasticfilesystem-fips.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-2" + "UseFIPS": true } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-west-1.api.aws" + "url": "https://elasticfilesystem.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-west-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" + "UseFIPS": true } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-west-1.api.aws" + "url": "https://elasticfilesystem.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-west-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" + "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-west-2.api.aws" + "url": "https://elasticfilesystem.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-west-2.amazonaws.com" + "url": "https://elasticfilesystem-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" + "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-west-2.api.aws" + "url": "https://elasticfilesystem.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-west-2.amazonaws.com" + "url": "https://elasticfilesystem-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" + "UseFIPS": true } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.af-south-1.api.aws" + "url": "https://elasticfilesystem-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" + "UseFIPS": true } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.af-south-1.amazonaws.com" + "url": "https://elasticfilesystem.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.af-south-1.api.aws" + "url": "https://elasticfilesystem.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.af-south-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" + "UseFIPS": true } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-north-1.api.aws" + "url": "https://elasticfilesystem.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.eu-north-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" + "UseFIPS": true } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-north-1.api.aws" + "url": "https://elasticfilesystem-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" + "UseFIPS": true } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.eu-north-1.amazonaws.com" + "url": "https://elasticfilesystem.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.ap-southeast-3.amazonaws.com" + "url": "https://elasticfilesystem.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.ap-southeast-3.amazonaws.com" + "url": "https://elasticfilesystem-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-east-1.amazonaws.com" + "url": "https://elasticfilesystem.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-east-1.amazonaws.com" + "url": "https://elasticfilesystem-fips.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.us-east-2.api.aws" + "url": "https://elasticfilesystem-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-east-2.api.aws" + "url": "https://elasticfilesystem.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-east-2.amazonaws.com" + "url": "https://elasticfilesystem.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticfilesystem.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-northwest-1" + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.cn-northwest-1.amazonaws.com.cn" + "url": "https://elasticfilesystem.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-isob-east-1" + "UseFIPS": false } }, { @@ -1623,37 +801,27 @@ } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-isob-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://elasticfilesystem.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1662,7 +830,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1672,9 +839,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1684,9 +851,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/efs/src/main/resources/codegen-resources/service-2.json b/services/efs/src/main/resources/codegen-resources/service-2.json index 4cf2190e2035..b713b59423ea 100644 --- a/services/efs/src/main/resources/codegen-resources/service-2.json +++ b/services/efs/src/main/resources/codegen-resources/service-2.json @@ -98,7 +98,7 @@ {"shape":"ThroughputLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

Creates a replication configuration that replicates an existing EFS file system to a new, read-only file system. For more information, see Amazon EFS replication in the Amazon EFS User Guide. The replication configuration specifies the following:

  • Source file system - An existing EFS file system that you want replicated. The source file system cannot be a destination file system in an existing replication configuration.

  • Destination file system configuration - The configuration of the destination file system to which the source file system will be replicated. There can only be one destination file system in a replication configuration. The destination file system configuration consists of the following properties:

    • Amazon Web Services Region - The Amazon Web Services Region in which the destination file system is created. Amazon EFS replication is available in all Amazon Web Services Regions that Amazon EFS is available in, except Africa (Cape Town), Asia Pacific (Hong Kong), Asia Pacific (Jakarta), Europe (Milan), and Middle East (Bahrain).

    • Availability Zone - If you want the destination file system to use EFS One Zone availability and durability, you must specify the Availability Zone to create the file system in. For more information about EFS storage classes, see Amazon EFS storage classes in the Amazon EFS User Guide.

    • Encryption - All destination file systems are created with encryption at rest enabled. You can specify the Key Management Service (KMS) key that is used to encrypt the destination file system. If you don't specify a KMS key, your service-managed KMS key for Amazon EFS is used.

      After the file system is created, you cannot change the KMS key.

The following properties are set by default:

  • Performance mode - The destination file system's performance mode matches that of the source file system, unless the destination file system uses EFS One Zone storage. In that case, the General Purpose performance mode is used. The performance mode cannot be changed.

  • Throughput mode - The destination file system uses the Bursting Throughput mode by default. After the file system is created, you can modify the throughput mode.

The following properties are turned off by default:

  • Lifecycle management - EFS lifecycle management and EFS Intelligent-Tiering are not enabled on the destination file system. After the destination file system is created, you can enable EFS lifecycle management and EFS Intelligent-Tiering.

  • Automatic backups - Automatic daily backups not enabled on the destination file system. After the file system is created, you can change this setting.

For more information, see Amazon EFS replication in the Amazon EFS User Guide.

" + "documentation":"

Creates a replication configuration that replicates an existing EFS file system to a new, read-only file system. For more information, see Amazon EFS replication in the Amazon EFS User Guide. The replication configuration specifies the following:

  • Source file system - An existing EFS file system that you want replicated. The source file system cannot be a destination file system in an existing replication configuration.

  • Destination file system configuration - The configuration of the destination file system to which the source file system will be replicated. There can only be one destination file system in a replication configuration. The destination file system configuration consists of the following properties:

    • Amazon Web Services Region - The Amazon Web Services Region in which the destination file system is created. Amazon EFS replication is available in all Amazon Web Services Regions that Amazon EFS is available in, except Africa (Cape Town), Asia Pacific (Hong Kong), Asia Pacific (Jakarta), Europe (Milan), and Middle East (Bahrain).

    • Availability Zone - If you want the destination file system to use EFS One Zone availability and durability, you must specify the Availability Zone to create the file system in. For more information about EFS storage classes, see Amazon EFS storage classes in the Amazon EFS User Guide.

    • Encryption - All destination file systems are created with encryption at rest enabled. You can specify the Key Management Service (KMS) key that is used to encrypt the destination file system. If you don't specify a KMS key, your service-managed KMS key for Amazon EFS is used.

      After the file system is created, you cannot change the KMS key.

The following properties are set by default:

  • Performance mode - The destination file system's performance mode matches that of the source file system, unless the destination file system uses EFS One Zone storage. In that case, the General Purpose performance mode is used. The performance mode cannot be changed.

  • Throughput mode - The destination file system's throughput mode matches that of the source file system. After the file system is created, you can modify the throughput mode.

The following properties are turned off by default:

  • Lifecycle management - EFS lifecycle management and EFS Intelligent-Tiering are not enabled on the destination file system. After the destination file system is created, you can enable EFS lifecycle management and EFS Intelligent-Tiering.

  • Automatic backups - Automatic daily backups not enabled on the destination file system. After the file system is created, you can change this setting.

For more information, see Amazon EFS replication in the Amazon EFS User Guide.

" }, "CreateTags":{ "name":"CreateTags", @@ -596,7 +596,7 @@ }, "OwnerId":{ "shape":"AwsAccountId", - "documentation":"

Identified the Amazon Web Services account that owns the access point resource.

" + "documentation":"

Identifies the Amazon Web Services account that owns the access point resource.

" }, "LifeCycleState":{ "shape":"LifeCycleState", @@ -1360,7 +1360,7 @@ "members":{ "OwnerId":{ "shape":"AwsAccountId", - "documentation":"

The Amazon Web Services account that created the file system. If the file system was created by an IAM user, the parent account to which the user belongs is the owner.

" + "documentation":"

The Amazon Web Services account that created the file system.

" }, "CreationToken":{ "shape":"CreationToken", diff --git a/services/eks/pom.xml b/services/eks/pom.xml index f7dcdd05b8a8..1eb57a421edd 100644 --- a/services/eks/pom.xml +++ b/services/eks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT eks AWS Java SDK :: Services :: EKS diff --git a/services/elasticache/pom.xml b/services/elasticache/pom.xml index de569b684be4..03754f3d18d0 100644 --- a/services/elasticache/pom.xml +++ b/services/elasticache/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT elasticache AWS Java SDK :: Services :: Amazon ElastiCache diff --git a/services/elasticbeanstalk/pom.xml b/services/elasticbeanstalk/pom.xml index 56a2b1f225c4..480fa6379627 100644 --- a/services/elasticbeanstalk/pom.xml +++ b/services/elasticbeanstalk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT elasticbeanstalk AWS Java SDK :: Services :: AWS Elastic Beanstalk diff --git a/services/elasticinference/pom.xml b/services/elasticinference/pom.xml index b1b331c8644f..2a2a98901ebf 100644 --- a/services/elasticinference/pom.xml +++ b/services/elasticinference/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT elasticinference AWS Java SDK :: Services :: Elastic Inference diff --git a/services/elasticinference/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/elasticinference/src/main/resources/codegen-resources/endpoint-rule-set.json index bad7d86a63d7..e95fcde4b7e4 100644 --- a/services/elasticinference/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/elasticinference/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.elastic-inference-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.elastic-inference-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.elastic-inference-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.elastic-inference.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://api.elastic-inference-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://api.elastic-inference.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.elastic-inference.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://api.elastic-inference.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/elasticinference/src/main/resources/codegen-resources/endpoint-tests.json b/services/elasticinference/src/main/resources/codegen-resources/endpoint-tests.json index fc08017649d1..9b3c91441543 100644 --- a/services/elasticinference/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/elasticinference/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,68 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.elastic-inference-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://api.elastic-inference-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.eu-central-1.api.aws" + "url": "https://api.elastic-inference.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.eu-central-1.amazonaws.com" + "url": "https://api.elastic-inference.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.us-west-2.api.aws" + "url": "https://api.elastic-inference.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.us-west-2.amazonaws.com" + "url": "https://api.elastic-inference.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.us-west-2.api.aws" + "url": "https://api.elastic-inference.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -99,282 +73,274 @@ } }, "params": { - "UseDualStack": false, "Region": "us-west-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.eu-west-1.api.aws" + "url": "https://api.elastic-inference-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.eu-west-1.amazonaws.com" + "url": "https://api.elastic-inference-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.eu-west-1.api.aws" + "url": "https://api.elastic-inference.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.eu-west-1.amazonaws.com" + "url": "https://api.elastic-inference-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.ap-northeast-2.api.aws" + "url": "https://api.elastic-inference-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.ap-northeast-2.amazonaws.com" + "url": "https://api.elastic-inference.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.ap-northeast-2.api.aws" + "url": "https://api.elastic-inference.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.ap-northeast-2.amazonaws.com" + "url": "https://api.elastic-inference-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.ap-northeast-1.api.aws" + "url": "https://api.elastic-inference-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.ap-northeast-1.amazonaws.com" + "url": "https://api.elastic-inference.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.ap-northeast-1.api.aws" + "url": "https://api.elastic-inference.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.elastic-inference.ap-northeast-1.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.us-east-1.api.aws" + "url": "https://api.elastic-inference-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.elastic-inference-fips.us-east-1.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.us-east-1.api.aws" + "url": "https://api.elastic-inference.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.elastic-inference.us-east-1.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference-fips.us-east-2.api.aws" + "url": "https://api.elastic-inference-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.elastic-inference-fips.us-east-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.us-east-2.api.aws" + "url": "https://api.elastic-inference.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://api.elastic-inference.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -384,9 +350,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -396,11 +362,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/elasticinference/src/main/resources/codegen-resources/service-2.json b/services/elasticinference/src/main/resources/codegen-resources/service-2.json index 6a469fc8c453..d17648b02b49 100644 --- a/services/elasticinference/src/main/resources/codegen-resources/service-2.json +++ b/services/elasticinference/src/main/resources/codegen-resources/service-2.json @@ -26,7 +26,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Describes the locations in which a given accelerator type or set of types is present in a given region.

" + "documentation":"

Describes the locations in which a given accelerator type or set of types is present in a given region.

February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" }, "DescribeAcceleratorTypes":{ "name":"DescribeAcceleratorTypes", @@ -39,7 +39,7 @@ "errors":[ {"shape":"InternalServerException"} ], - "documentation":"

Describes the accelerator types available in a given region, as well as their characteristics, such as memory and throughput.

" + "documentation":"

Describes the accelerator types available in a given region, as well as their characteristics, such as memory and throughput.

February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" }, "DescribeAccelerators":{ "name":"DescribeAccelerators", @@ -54,7 +54,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Describes information over a provided set of accelerators belonging to an account.

" + "documentation":"

Describes information over a provided set of accelerators belonging to an account.

February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -69,7 +69,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Returns all tags of an Elastic Inference Accelerator.

" + "documentation":"

Returns all tags of an Elastic Inference Accelerator.

February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" }, "TagResource":{ "name":"TagResource", @@ -84,7 +84,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Adds the specified tags to an Elastic Inference Accelerator.

" + "documentation":"

Adds the specified tags to an Elastic Inference Accelerator.

February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" }, "UntagResource":{ "name":"UntagResource", @@ -99,7 +99,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Removes the specified tags from an Elastic Inference Accelerator.

" + "documentation":"

Removes the specified tags from an Elastic Inference Accelerator.

February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" } }, "shapes":{ @@ -422,7 +422,7 @@ "type":"string", "max":1011, "min":1, - "pattern":"^arn:aws\\S*:elastic-inference:\\S+:\\d{12}:elastic-inference-accelerator/eia-[0-9a-f]+$" + "pattern":"^arn:aws[^\\s:]*:elastic-inference:[^\\s:]+:\\d{12}:elastic-inference-accelerator/eia-[0-9a-f]+$" }, "ResourceArn":{ "type":"string", @@ -488,7 +488,8 @@ }, "TagValue":{ "type":"string", - "max":256 + "max":256, + "pattern":".*" }, "ThroughputInfoList":{ "type":"list", @@ -530,5 +531,5 @@ "min":0 } }, - "documentation":"

Elastic Inference public APIs.

" + "documentation":"

Elastic Inference public APIs.

February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.

" } diff --git a/services/elasticloadbalancing/pom.xml b/services/elasticloadbalancing/pom.xml index 890fe3517df4..f89a1142ff15 100644 --- a/services/elasticloadbalancing/pom.xml +++ b/services/elasticloadbalancing/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT elasticloadbalancing AWS Java SDK :: Services :: Elastic Load Balancing diff --git a/services/elasticloadbalancingv2/pom.xml b/services/elasticloadbalancingv2/pom.xml index 8af8cf945492..c9e4faa4003a 100644 --- a/services/elasticloadbalancingv2/pom.xml +++ b/services/elasticloadbalancingv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT elasticloadbalancingv2 AWS Java SDK :: Services :: Elastic Load Balancing V2 diff --git a/services/elasticsearch/pom.xml b/services/elasticsearch/pom.xml index d31f8a6b9926..362e7c102fe0 100644 --- a/services/elasticsearch/pom.xml +++ b/services/elasticsearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT elasticsearch AWS Java SDK :: Services :: Amazon Elasticsearch Service diff --git a/services/elastictranscoder/pom.xml b/services/elastictranscoder/pom.xml index 3f6861de857b..130bedbe9d3a 100644 --- a/services/elastictranscoder/pom.xml +++ b/services/elastictranscoder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT elastictranscoder AWS Java SDK :: Services :: Amazon Elastic Transcoder diff --git a/services/emr/pom.xml b/services/emr/pom.xml index c2dd393c716a..a60c22c6e7ff 100644 --- a/services/emr/pom.xml +++ b/services/emr/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT emr AWS Java SDK :: Services :: Amazon EMR diff --git a/services/emr/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/emr/src/main/resources/codegen-resources/endpoint-rule-set.json index b9d28b6560f6..6cf6d2ab7013 100644 --- a/services/emr/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/emr/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://elasticmapreduce-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://elasticmapreduce.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://elasticmapreduce.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://elasticmapreduce-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://elasticmapreduce.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://elasticmapreduce.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/emr/src/main/resources/codegen-resources/endpoint-tests.json b/services/emr/src/main/resources/codegen-resources/endpoint-tests.json index 347b72a2ff68..02399b6ba144 100644 --- a/services/emr/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/emr/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,68 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-south-2.amazonaws.com" + "url": "https://elasticmapreduce.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-south-2", + "Region": "af-south-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-south-2.api.aws" + "url": "https://elasticmapreduce.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-south-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-south-2.amazonaws.com" + "url": "https://elasticmapreduce.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "ap-south-2", "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-south-1.amazonaws.com" + "url": "https://elasticmapreduce.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-south-1", + "Region": "ap-northeast-2", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-south-1.api.aws" + "url": "https://elasticmapreduce.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true + "UseDualStack": false } }, { @@ -99,258 +73,50 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-south-1.amazonaws.com" - } - }, - "params": { "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", "UseDualStack": false } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.eu-south-2.amazonaws.com" + "url": "https://elasticmapreduce.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-gov-east-1.amazonaws.com" + "url": "https://elasticmapreduce.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.me-central-1.amazonaws.com" + "url": "https://elasticmapreduce.ap-southeast-3.amazonaws.com" } }, "params": { + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", "UseDualStack": false } }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, { "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { @@ -359,1352 +125,472 @@ } }, "params": { - "UseFIPS": false, "Region": "ca-central-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.eu-central-1.amazonaws.com" + "url": "https://elasticmapreduce-fips.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseFIPS": true, - "Region": "eu-central-1", "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "url": "https://elasticmapreduce.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-gov-west-1.amazonaws.com" + "url": "https://elasticmapreduce.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", + "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-gov-west-1.api.aws" + "url": "https://elasticmapreduce.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-gov-west-1.amazonaws.com" + "url": "https://elasticmapreduce.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "Region": "us-gov-west-1", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-1.api.aws" + "url": "https://elasticmapreduce.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-1.amazonaws.com" + "url": "https://elasticmapreduce.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", + "Region": "eu-west-3", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-1.api.aws" + "url": "https://elasticmapreduce.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-1.amazonaws.com" + "url": "https://elasticmapreduce.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseFIPS": false, - "Region": "ap-southeast-1", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-2.api.aws" + "url": "https://elasticmapreduce.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-2.amazonaws.com" + "url": "https://elasticmapreduce-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-2", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-2.api.aws" + "url": "https://elasticmapreduce.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-2.amazonaws.com" + "url": "https://elasticmapreduce-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", + "Region": "us-east-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://elasticmapreduce.us-west-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://elasticmapreduce-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": true, - "Region": "us-iso-east-1", "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://elasticmapreduce.us-west-2.amazonaws.com" + } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-iso-east-1.c2s.ic.gov" + "url": "https://elasticmapreduce-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", + "Region": "us-west-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-3.api.aws" + "url": "https://elasticmapreduce-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-3", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-3.amazonaws.com" + "url": "https://elasticmapreduce.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-3.api.aws" + "url": "https://elasticmapreduce.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-3.amazonaws.com" + "url": "https://elasticmapreduce.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "ap-southeast-3", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-4.api.aws" + "url": "https://elasticmapreduce-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-4", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.ap-southeast-4.amazonaws.com" + "url": "https://elasticmapreduce-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-4", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-4.api.aws" + "url": "https://elasticmapreduce.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-4", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.ap-southeast-4.amazonaws.com" + "url": "https://elasticmapreduce.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "ap-southeast-4", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.us-east-1.amazonaws.com" + "url": "https://elasticmapreduce.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-east-1.api.aws" + "url": "https://elasticmapreduce.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-east-1.amazonaws.com" + "url": "https://elasticmapreduce.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", + "Region": "us-gov-west-1", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.us-east-2.api.aws" + "url": "https://elasticmapreduce-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-2", "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.us-east-2.amazonaws.com" + "url": "https://elasticmapreduce.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-east-2.api.aws" + "url": "https://elasticmapreduce.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-east-2.amazonaws.com" + "url": "https://elasticmapreduce.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseFIPS": false, - "Region": "us-east-2", "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://elasticmapreduce-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1", "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://elasticmapreduce-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1", "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://elasticmapreduce.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.cn-northwest-1.amazonaws.com.cn" + "url": "https://elasticmapreduce.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", "UseDualStack": false } }, @@ -1714,8 +600,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": true } }, @@ -1727,8 +613,8 @@ } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false } }, @@ -1738,26 +624,27 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://elasticmapreduce.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1765,7 +652,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1776,8 +662,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1788,11 +674,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/emr/src/main/resources/codegen-resources/service-2.json b/services/emr/src/main/resources/codegen-resources/service-2.json index 37863009bee1..8461660e0611 100644 --- a/services/emr/src/main/resources/codegen-resources/service-2.json +++ b/services/emr/src/main/resources/codegen-resources/service-2.json @@ -296,7 +296,7 @@ {"shape":"InternalServerError"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Provides Temporary, basic HTTP credentials that are associated with a given runtime IAM role and used by a cluster with fine-grained access control activated. You can use these credentials to connect to cluster endpoints that support username-based and password-based authentication.

" + "documentation":"

Provides temporary, HTTP basic credentials that are associated with a given runtime IAM role and used by a cluster with fine-grained access control activated. You can use these credentials to connect to cluster endpoints that support username and password authentication.

" }, "GetManagedScalingPolicy":{ "name":"GetManagedScalingPolicy", @@ -1349,6 +1349,10 @@ "Timeline":{ "shape":"ClusterTimeline", "documentation":"

A timeline that represents the status of a cluster over the lifetime of the cluster.

" + }, + "ErrorDetails":{ + "shape":"ErrorDetailList", + "documentation":"

A list of tuples that provide information about the errors that caused a cluster termination. This structure may have up to 10 different ErrorDetail tuples.

" } }, "documentation":"

The detailed status of the cluster.

" @@ -2019,6 +2023,32 @@ "max":256, "min":1 }, + "ErrorData":{ + "type":"list", + "member":{"shape":"StringMap"} + }, + "ErrorDetail":{ + "type":"structure", + "members":{ + "ErrorCode":{ + "shape":"String", + "documentation":"

The name or code that's associated with the error.

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

A list of key value pairs that provide contextual information to explain why the error may have occured.

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

A message describing the error that occured.

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

A tuple that provides information about an error that caused a cluster to terminate.

" + }, + "ErrorDetailList":{ + "type":"list", + "member":{"shape":"ErrorDetail"} + }, "ErrorMessage":{"type":"string"}, "ExecutionEngineConfig":{ "type":"structure", @@ -2124,7 +2154,7 @@ "members":{ "Credentials":{ "shape":"Credentials", - "documentation":"

The credentials that you can use to connect to cluster endpoints that support username-based and password-based authentication.

" + "documentation":"

The credentials that you can use to connect to cluster endpoints that support username and password authentication.

" }, "ExpiresAt":{ "shape":"Date", @@ -2340,6 +2370,10 @@ "LaunchSpecifications":{ "shape":"InstanceFleetProvisioningSpecifications", "documentation":"

Describes the launch specification for an instance fleet.

" + }, + "ResizeSpecifications":{ + "shape":"InstanceFleetResizingSpecifications", + "documentation":"

The resize specification for the instance fleet.

" } }, "documentation":"

Describes an instance fleet, which is a group of EC2 instances that host a particular node type (master, core, or task) in an Amazon EMR cluster. Instance fleets can consist of a mix of instance types and On-Demand and Spot Instances, which are provisioned to meet a defined target capacity.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

" @@ -2371,6 +2405,10 @@ "LaunchSpecifications":{ "shape":"InstanceFleetProvisioningSpecifications", "documentation":"

The launch specification for the instance fleet.

" + }, + "ResizeSpecifications":{ + "shape":"InstanceFleetResizingSpecifications", + "documentation":"

The resize specification for the instance fleet.

" } }, "documentation":"

The configuration that defines an instance fleet.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

" @@ -2399,6 +2437,10 @@ "TargetSpotCapacity":{ "shape":"WholeNumber", "documentation":"

The target capacity of Spot units for the instance fleet. For more information, see InstanceFleetConfig$TargetSpotCapacity.

" + }, + "ResizeSpecifications":{ + "shape":"InstanceFleetResizingSpecifications", + "documentation":"

The resize specification for the instance fleet.

" } }, "documentation":"

Configuration parameters for an instance fleet modification request.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.

" @@ -2408,14 +2450,28 @@ "members":{ "SpotSpecification":{ "shape":"SpotProvisioningSpecification", - "documentation":"

The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy.

" + "documentation":"

The launch specification for Spot instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy.

" }, "OnDemandSpecification":{ "shape":"OnDemandProvisioningSpecification", "documentation":"

The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation strategy is available in Amazon EMR version 5.12.1 and later.

" } }, - "documentation":"

The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot Instance allocation strategies are available in Amazon EMR version 5.12.1 and later.

" + "documentation":"

The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot instance allocation strategies are available in Amazon EMR version 5.12.1 and later.

" + }, + "InstanceFleetResizingSpecifications":{ + "type":"structure", + "members":{ + "SpotResizeSpecification":{ + "shape":"SpotResizingSpecification", + "documentation":"

The resize specification for Spot Instances in the instance fleet, which contains the resize timeout period.

" + }, + "OnDemandResizeSpecification":{ + "shape":"OnDemandResizingSpecification", + "documentation":"

The resize specification for On-Demand Instances in the instance fleet, which contains the resize timeout period.

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

The resize specification for On-Demand and Spot Instances in the fleet.

" }, "InstanceFleetState":{ "type":"string", @@ -4001,6 +4057,17 @@ }, "documentation":"

The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation strategy is available in Amazon EMR version 5.12.1 and later.

" }, + "OnDemandResizingSpecification":{ + "type":"structure", + "required":["TimeoutDurationMinutes"], + "members":{ + "TimeoutDurationMinutes":{ + "shape":"WholeNumber", + "documentation":"

On-Demand resize timeout in minutes. If On-Demand Instances are not provisioned within this time, the resize workflow stops. The minimum value is 5 minutes, and the maximum value is 10,080 minutes (7 days). The timeout applies to all resize workflows on the Instance Fleet. The resize could be triggered by Amazon EMR Managed Scaling or by the customer (via Amazon EMR Console, Amazon EMR CLI modify-instance-fleet or Amazon EMR SDK ModifyInstanceFleet API) or by Amazon EMR due to Amazon EC2 Spot Reclamation.

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

The resize specification for On-Demand Instances in the instance fleet, which contains the resize timeout period.

" + }, "OptionalArnType":{ "type":"string", "max":2048, @@ -4700,7 +4767,7 @@ "members":{ "TimeoutDurationMinutes":{ "shape":"WholeNumber", - "documentation":"

The spot provisioning timeout period in minutes. If Spot Instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.

" + "documentation":"

The Spot provisioning timeout period in minutes. If Spot Instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.

" }, "TimeoutAction":{ "shape":"SpotProvisioningTimeoutAction", @@ -4724,6 +4791,17 @@ "TERMINATE_CLUSTER" ] }, + "SpotResizingSpecification":{ + "type":"structure", + "required":["TimeoutDurationMinutes"], + "members":{ + "TimeoutDurationMinutes":{ + "shape":"WholeNumber", + "documentation":"

Spot resize timeout in minutes. If Spot Instances are not provisioned within this time, the resize workflow will stop provisioning of Spot instances. Minimum value is 5 minutes and maximum value is 10,080 minutes (7 days). The timeout applies to all resize workflows on the Instance Fleet. The resize could be triggered by Amazon EMR Managed Scaling or by the customer (via Amazon EMR Console, Amazon EMR CLI modify-instance-fleet or Amazon EMR SDK ModifyInstanceFleet API) or by Amazon EMR due to Amazon EC2 Spot Reclamation.

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

The resize specification for Spot Instances in the instance fleet, which contains the resize timeout period.

" + }, "StartNotebookExecutionInput":{ "type":"structure", "required":[ diff --git a/services/emrcontainers/pom.xml b/services/emrcontainers/pom.xml index 8895aa598b7c..3671332de993 100644 --- a/services/emrcontainers/pom.xml +++ b/services/emrcontainers/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT emrcontainers AWS Java SDK :: Services :: EMR Containers diff --git a/services/emrserverless/pom.xml b/services/emrserverless/pom.xml index f4fda8c0b872..1b060b173012 100644 --- a/services/emrserverless/pom.xml +++ b/services/emrserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT emrserverless AWS Java SDK :: Services :: EMR Serverless diff --git a/services/emrserverless/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/emrserverless/src/main/resources/codegen-resources/endpoint-rule-set.json index 14d3cfe39a1d..9af69616e2b9 100644 --- a/services/emrserverless/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/emrserverless/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-serverless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-serverless-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://emr-serverless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-serverless.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://emr-serverless-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://emr-serverless.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://emr-serverless.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://emr-serverless.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/emrserverless/src/main/resources/codegen-resources/endpoint-tests.json b/services/emrserverless/src/main/resources/codegen-resources/endpoint-tests.json index c55e43543a8c..a339017f7149 100644 --- a/services/emrserverless/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/emrserverless/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,458 +1,16 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.eu-west-1.amazonaws.com" + "url": "https://emr-serverless.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" + "UseFIPS": false } }, { @@ -463,429 +21,305 @@ } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless.ap-northeast-3.amazonaws.com" + "url": "https://emr-serverless.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.ap-northeast-2.amazonaws.com" + "url": "https://emr-serverless-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless.ap-northeast-2.amazonaws.com" + "url": "https://emr-serverless.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.ap-northeast-1.amazonaws.com" + "url": "https://emr-serverless-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://emr-serverless.ap-northeast-1.api.aws" + "url": "https://emr-serverless-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.sa-east-1.api.aws" + "url": "https://emr-serverless.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://emr-serverless.sa-east-1.api.aws" + "url": "https://emr-serverless-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" + "UseFIPS": true } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless.sa-east-1.amazonaws.com" + "url": "https://emr-serverless-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.ap-southeast-1.api.aws" + "url": "https://emr-serverless.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.ap-southeast-1.amazonaws.com" + "url": "https://emr-serverless.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://emr-serverless.ap-southeast-1.api.aws" + "url": "https://emr-serverless-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless.ap-southeast-1.amazonaws.com" + "url": "https://emr-serverless-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.ap-southeast-2.api.aws" + "url": "https://emr-serverless.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.ap-southeast-2.amazonaws.com" + "url": "https://emr-serverless.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://emr-serverless.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless.ap-southeast-2.amazonaws.com" + "url": "https://emr-serverless-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.us-east-1.amazonaws.com" + "url": "https://emr-serverless.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://emr-serverless.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless.us-east-1.amazonaws.com" + "url": "https://emr-serverless-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://emr-serverless-fips.us-east-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless-fips.us-east-2.amazonaws.com" + "url": "https://emr-serverless.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://emr-serverless.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://emr-serverless.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -894,7 +328,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -904,9 +337,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -916,11 +349,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/emrserverless/src/main/resources/codegen-resources/service-2.json b/services/emrserverless/src/main/resources/codegen-resources/service-2.json index 36a05ce2c7de..0da1277021c4 100644 --- a/services/emrserverless/src/main/resources/codegen-resources/service-2.json +++ b/services/emrserverless/src/main/resources/codegen-resources/service-2.json @@ -225,7 +225,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Assigns tags to resources. A tag is a label that you assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your AWS resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it.

" + "documentation":"

Assigns tags to resources. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your Amazon Web Services resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it.

" }, "UntagResource":{ "name":"UntagResource", @@ -1030,6 +1030,11 @@ "totalExecutionDurationSeconds":{ "shape":"Integer", "documentation":"

The job run total execution duration in seconds. This field is only available for job runs in a COMPLETED, FAILED, or CANCELLED state.

" + }, + "executionTimeoutMinutes":{ + "shape":"Duration", + "documentation":"

Maximum duration for the job run to run. If the job run runs beyond this duration, it will be automatically cancelled.

", + "box":true } }, "documentation":"

Information about a job run. A job run is a unit of work, such as a Spark JAR, Hive query, or SparkSQL query, that you submit to an EMR Serverless application.

" @@ -1524,7 +1529,7 @@ }, "arn":{ "shape":"JobArn", - "documentation":"

The output lists the execution role ARN of the job run.

" + "documentation":"

This output displays the ARN of the job run..

" } } }, @@ -1738,7 +1743,7 @@ "members":{ "message":{"shape":"String1024"} }, - "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "documentation":"

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", "error":{ "httpStatusCode":400, "senderFault":true diff --git a/services/eventbridge/pom.xml b/services/eventbridge/pom.xml index fbb2310f79fe..f1a529576a4b 100644 --- a/services/eventbridge/pom.xml +++ b/services/eventbridge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT eventbridge AWS Java SDK :: Services :: EventBridge diff --git a/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json index 6ff0bc5a7146..9eaccd9c66e6 100644 --- a/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/eventbridge/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -36,6 +36,22 @@ "rules": [ { "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "EndpointId" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, { "fn": "aws.partition", "argv": [ @@ -51,194 +67,200 @@ { "conditions": [ { - "fn": "isSet", + "fn": "isValidHostLabel", "argv": [ { "ref": "EndpointId" - } + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [ - { - "fn": "isValidHostLabel", - "argv": [ - { - "ref": "EndpointId" - }, - true - ] - } - ], + "conditions": [], "type": "tree", "rules": [ { - "conditions": [], + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], "type": "tree", "rules": [ { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - false - ] - } - ], + "conditions": [], "type": "tree", "rules": [ { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "isSet", + "argv": [ { - "fn": "isSet", - "argv": [ - { - "ref": "Endpoint" - } - ] - } - ], - "endpoint": { - "url": { "ref": "Endpoint" - }, - "properties": { - "authSchemes": [ - { - "name": "sigv4a", - "signingName": "events", - "signingRegionSet": [ - "*" - ] - } + } + ] + } + ], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" ] - }, - "headers": {} - }, - "type": "endpoint" + } + ] }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], "type": "tree", "rules": [ { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" ] } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}", - "properties": { - "authSchemes": [ - { - "name": "sigv4a", - "signingName": "events", - "signingRegionSet": [ - "*" - ] - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" + }, + "headers": {} + }, + "type": "endpoint" } ] }, { "conditions": [], - "endpoint": { - "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}", - "properties": { - "authSchemes": [ - { - "name": "sigv4a", - "signingName": "events", - "signingRegionSet": [ - "*" - ] - } - ] - }, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.", + "type": "error" } ] - }, - { - "conditions": [], - "error": "EndpointId must be a valid host label.", - "type": "error" } ] }, + { + "conditions": [], + "error": "EndpointId must be a valid host label.", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -247,67 +269,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -316,212 +313,276 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "us-gov-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://events.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "us-gov-west-1" + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://events.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, { "conditions": [], - "endpoint": { - "url": "https://events-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://events.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://events.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json b/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json index caafb0436d8a..6a5080439f73 100644 --- a/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/eventbridge/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1711 +1,584 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://events-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://events-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.sa-east-1.api.aws" + "url": "https://events.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "sa-east-1" + "Region": "af-south-1", + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.sa-east-1.amazonaws.com" + "url": "https://events.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "sa-east-1" + "Region": "ap-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-east-1.api.aws" + "url": "https://events.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-east-1.amazonaws.com" + "url": "https://events.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-east-1.api.aws" + "url": "https://events.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-east-1" + "Region": "ap-northeast-3", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-east-1.amazonaws.com" + "url": "https://events.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-east-1" + "Region": "ap-south-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://events.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.cn-north-1.amazonaws.com.cn" + "url": "https://events.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://events.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "ap-southeast-3", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.cn-north-1.amazonaws.com.cn" + "url": "https://events.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "ca-central-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.us-gov-west-1.api.aws" + "url": "https://events.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-gov-west-1.amazonaws.com" + "url": "https://events.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-gov-west-1.api.aws" + "url": "https://events.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "eu-south-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-gov-west-1.amazonaws.com" + "url": "https://events.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "eu-west-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-1.api.aws" + "url": "https://events.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-1.amazonaws.com" + "url": "https://events.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-1.api.aws" + "url": "https://events.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "me-south-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-1.amazonaws.com" + "url": "https://events.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "sa-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-2.api.aws" + "url": "https://events.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-2.amazonaws.com" + "url": "https://events-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-2.api.aws" + "url": "https://events.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-2.amazonaws.com" + "url": "https://events-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://events.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://events-fips.us-west-1.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-iso-east-1.c2s.ic.gov" + "url": "https://events.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-3.api.aws" + "url": "https://events-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-3.amazonaws.com" + "url": "https://events-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-3.api.aws" + "url": "https://events.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-3.amazonaws.com" + "url": "https://events.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-4.api.aws" + "url": "https://events.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-4" + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://events-fips.ap-southeast-4.amazonaws.com" + "url": "https://events-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-4" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-4.api.aws" + "url": "https://events-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-4" + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://events.ap-southeast-4.amazonaws.com" + "url": "https://events.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-4" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.us-east-1.api.aws" + "url": "https://events.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.us-east-1.amazonaws.com" + "url": "https://events.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-east-1.api.aws" + "url": "https://events.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-east-1.amazonaws.com" + "url": "https://events.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://events-fips.us-east-2.api.aws" + "url": "https://events-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://events-fips.us-east-2.amazonaws.com" + "url": "https://events.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-east-2.api.aws" + "url": "https://events.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.us-east-2.amazonaws.com" + "url": "https://events.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-iso-west-1", + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://events-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://events-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://events.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://events.cn-northwest-1.amazonaws.com.cn" + "url": "https://events.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -1714,9 +587,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -1727,9 +600,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -1738,35 +611,35 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://events.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1776,9 +649,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1788,12 +661,18 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + }, { "documentation": "Valid endpointId with fips disabled and dualstack disabled", "expect": { diff --git a/services/eventbridge/src/main/resources/codegen-resources/service-2.json b/services/eventbridge/src/main/resources/codegen-resources/service-2.json index ec9063dd51e4..9a0d3a3d902e 100644 --- a/services/eventbridge/src/main/resources/codegen-resources/service-2.json +++ b/services/eventbridge/src/main/resources/codegen-resources/service-2.json @@ -1854,11 +1854,13 @@ }, "Database":{ "type":"string", + "documentation":"Redshift Database", "max":64, "min":1 }, "DbUser":{ "type":"string", + "documentation":"Database user name", "max":128, "min":1 }, @@ -3934,10 +3936,7 @@ }, "RedshiftDataParameters":{ "type":"structure", - "required":[ - "Database", - "Sql" - ], + "required":["Database"], "members":{ "SecretManagerArn":{ "shape":"RedshiftSecretManagerArn", @@ -3962,12 +3961,14 @@ "WithEvent":{ "shape":"Boolean", "documentation":"

Indicates whether to send an event back to EventBridge after the SQL statement runs.

" - } + }, + "Sqls":{"shape":"Sqls"} }, "documentation":"

These are custom parameters to be used when the target is a Amazon Redshift cluster or Redshift Serverless workgroup to invoke the Amazon Redshift Data API ExecuteStatement based on EventBridge events.

" }, "RedshiftSecretManagerArn":{ "type":"string", + "documentation":"Optional SecretManager ARN which stores the database credentials", "max":1600, "min":1, "pattern":"(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)" @@ -4418,8 +4419,18 @@ }, "Sql":{ "type":"string", + "documentation":"A single Redshift SQL", "max":100000, - "min":1 + "min":1, + "sensitive":true + }, + "Sqls":{ + "type":"list", + "member":{"shape":"Sql"}, + "documentation":"A list of SQLs.", + "max":40, + "min":0, + "sensitive":true }, "SqsParameters":{ "type":"structure", @@ -4496,6 +4507,7 @@ }, "StatementName":{ "type":"string", + "documentation":"A name for Redshift DataAPI statement which can be used as filter of ListStatement.", "max":500, "min":1 }, diff --git a/services/evidently/pom.xml b/services/evidently/pom.xml index 1a859412e76b..866528f84675 100644 --- a/services/evidently/pom.xml +++ b/services/evidently/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT evidently AWS Java SDK :: Services :: Evidently diff --git a/services/evidently/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/evidently/src/main/resources/codegen-resources/endpoint-rule-set.json index 00da24e4a8ea..62b497a4d058 100644 --- a/services/evidently/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/evidently/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://evidently-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://evidently-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://evidently-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://evidently-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://evidently.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://evidently.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://evidently.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://evidently.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/evidently/src/main/resources/codegen-resources/endpoint-tests.json b/services/evidently/src/main/resources/codegen-resources/endpoint-tests.json index a892aff3701c..a4d7b24cb142 100644 --- a/services/evidently/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/evidently/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "Region": "ap-northeast-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "ap-northeast-1" } }, { @@ -21,9 +21,9 @@ } }, "params": { - "Region": "ap-southeast-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "ap-southeast-1" } }, { @@ -34,9 +34,9 @@ } }, "params": { - "Region": "ap-southeast-2", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "ap-southeast-2" } }, { @@ -47,9 +47,9 @@ } }, "params": { - "Region": "eu-central-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "eu-central-1" } }, { @@ -60,9 +60,9 @@ } }, "params": { - "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "eu-north-1" } }, { @@ -73,9 +73,9 @@ } }, "params": { - "Region": "eu-west-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "eu-west-1" } }, { @@ -86,9 +86,9 @@ } }, "params": { - "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-1" } }, { @@ -99,9 +99,9 @@ } }, "params": { - "Region": "us-east-2", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-2" } }, { @@ -112,9 +112,9 @@ } }, "params": { - "Region": "us-west-2", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-west-2" } }, { @@ -125,9 +125,9 @@ } }, "params": { - "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": true + "Region": "us-east-1" } }, { @@ -138,9 +138,9 @@ } }, "params": { - "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "us-east-1" } }, { @@ -151,9 +151,9 @@ } }, "params": { - "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": false + "Region": "us-east-1" } }, { @@ -164,9 +164,9 @@ } }, "params": { - "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": true + "Region": "cn-north-1" } }, { @@ -177,9 +177,9 @@ } }, "params": { - "Region": "cn-north-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "cn-north-1" } }, { @@ -190,9 +190,9 @@ } }, "params": { - "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": false + "Region": "cn-north-1" } }, { @@ -203,9 +203,9 @@ } }, "params": { - "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "cn-north-1" } }, { @@ -216,9 +216,9 @@ } }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": true + "Region": "us-gov-east-1" } }, { @@ -229,9 +229,9 @@ } }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "us-gov-east-1" } }, { @@ -242,9 +242,9 @@ } }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": false + "Region": "us-gov-east-1" } }, { @@ -255,9 +255,9 @@ } }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-gov-east-1" } }, { @@ -268,9 +268,9 @@ } }, "params": { - "Region": "us-iso-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "us-iso-east-1" } }, { @@ -281,9 +281,9 @@ } }, "params": { - "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-iso-east-1" } }, { @@ -294,9 +294,9 @@ } }, "params": { - "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "us-isob-east-1" } }, { @@ -307,22 +307,35 @@ } }, "params": { - "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -332,9 +345,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -344,9 +357,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/evidently/src/main/resources/codegen-resources/service-2.json b/services/evidently/src/main/resources/codegen-resources/service-2.json index f3153524b6c8..ea3fd160716a 100644 --- a/services/evidently/src/main/resources/codegen-resources/service-2.json +++ b/services/evidently/src/main/resources/codegen-resources/service-2.json @@ -865,7 +865,7 @@ }, "entityOverrides":{ "shape":"EntityOverrideMap", - "documentation":"

Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.

" + "documentation":"

Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.

This parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit includes an overhead of 6 bytes per override.

" }, "evaluationStrategy":{ "shape":"FeatureEvaluationStrategy", @@ -3744,7 +3744,7 @@ }, "entityOverrides":{ "shape":"EntityOverrideMap", - "documentation":"

Specified users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.

" + "documentation":"

Specified users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.

This parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit includes an overhead of 6 bytes per override.

" }, "evaluationStrategy":{ "shape":"FeatureEvaluationStrategy", diff --git a/services/finspace/pom.xml b/services/finspace/pom.xml index e970bb7aaf5c..558aade6cd17 100644 --- a/services/finspace/pom.xml +++ b/services/finspace/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT finspace AWS Java SDK :: Services :: Finspace diff --git a/services/finspacedata/pom.xml b/services/finspacedata/pom.xml index bdabf7c5ccc3..9751cb33fd82 100644 --- a/services/finspacedata/pom.xml +++ b/services/finspacedata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT finspacedata AWS Java SDK :: Services :: Finspace Data diff --git a/services/firehose/pom.xml b/services/firehose/pom.xml index a4c5c6797378..5581ee14f7d0 100644 --- a/services/firehose/pom.xml +++ b/services/firehose/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT firehose AWS Java SDK :: Services :: Amazon Kinesis Firehose diff --git a/services/fis/pom.xml b/services/fis/pom.xml index 63e6e90986e6..adaef1bac9a3 100644 --- a/services/fis/pom.xml +++ b/services/fis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT fis AWS Java SDK :: Services :: Fis diff --git a/services/fms/pom.xml b/services/fms/pom.xml index a280219eb4f3..a29fe64a2622 100644 --- a/services/fms/pom.xml +++ b/services/fms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT fms AWS Java SDK :: Services :: FMS diff --git a/services/forecast/pom.xml b/services/forecast/pom.xml index 24f43e2e128e..7a9f9ba583f9 100644 --- a/services/forecast/pom.xml +++ b/services/forecast/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT forecast AWS Java SDK :: Services :: Forecast diff --git a/services/forecastquery/pom.xml b/services/forecastquery/pom.xml index d366e3120bad..0c63e1800fc9 100644 --- a/services/forecastquery/pom.xml +++ b/services/forecastquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT forecastquery AWS Java SDK :: Services :: Forecastquery diff --git a/services/frauddetector/pom.xml b/services/frauddetector/pom.xml index 81b3dced1b65..aacc3035cb10 100644 --- a/services/frauddetector/pom.xml +++ b/services/frauddetector/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT frauddetector AWS Java SDK :: Services :: FraudDetector diff --git a/services/frauddetector/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/frauddetector/src/main/resources/codegen-resources/endpoint-rule-set.json index d9c64702724e..ec1255684839 100644 --- a/services/frauddetector/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/frauddetector/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://frauddetector-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://frauddetector-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://frauddetector-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://frauddetector-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://frauddetector.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://frauddetector.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://frauddetector.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://frauddetector.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/frauddetector/src/main/resources/codegen-resources/endpoint-tests.json b/services/frauddetector/src/main/resources/codegen-resources/endpoint-tests.json index 606965751943..5b98ea5ac793 100644 --- a/services/frauddetector/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/frauddetector/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,250 +1,250 @@ { "testCases": [ { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://frauddetector.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector-fips.cn-north-1.amazonaws.com.cn" + "url": "https://frauddetector.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "cn-north-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://frauddetector.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.cn-north-1.amazonaws.com.cn" + "url": "https://frauddetector.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false, - "Region": "cn-north-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://frauddetector.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "us-east-2", "UseDualStack": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.us-iso-east-1.c2s.ic.gov" + "url": "https://frauddetector.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-west-2", "UseDualStack": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://frauddetector.us-west-2.amazonaws.com" + "url": "https://frauddetector-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.ap-southeast-1.amazonaws.com" + "url": "https://frauddetector-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://frauddetector.ap-southeast-2.amazonaws.com" + "url": "https://frauddetector.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://frauddetector.us-east-1.amazonaws.com" + "url": "https://frauddetector-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.us-east-2.amazonaws.com" + "url": "https://frauddetector-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://frauddetector.eu-west-1.amazonaws.com" + "url": "https://frauddetector.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector-fips.us-east-1.api.aws" + "url": "https://frauddetector.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://frauddetector-fips.us-east-1.amazonaws.com" + "url": "https://frauddetector-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.us-east-1.api.aws" + "url": "https://frauddetector-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://frauddetector-fips.us-gov-east-1.api.aws" + "url": "https://frauddetector.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector-fips.us-gov-east-1.amazonaws.com" + "url": "https://frauddetector.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.us-gov-east-1.api.aws" + "url": "https://frauddetector-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://frauddetector.us-gov-east-1.amazonaws.com" + "url": "https://frauddetector.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { @@ -255,9 +255,9 @@ } }, "params": { - "UseFIPS": true, + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-isob-east-1" + "UseFIPS": true } }, { @@ -268,22 +268,35 @@ } }, "params": { - "UseFIPS": false, + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-isob-east-1" + "UseFIPS": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseDualStack": false, - "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -293,9 +306,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -305,9 +318,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/frauddetector/src/main/resources/codegen-resources/paginators-1.json b/services/frauddetector/src/main/resources/codegen-resources/paginators-1.json index 83158e2392aa..0cb74c9223a6 100644 --- a/services/frauddetector/src/main/resources/codegen-resources/paginators-1.json +++ b/services/frauddetector/src/main/resources/codegen-resources/paginators-1.json @@ -40,6 +40,16 @@ "output_token": "nextToken", "limit_key": "maxResults" }, + "GetListElements": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetListsMetadata": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "GetModels": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/frauddetector/src/main/resources/codegen-resources/service-2.json b/services/frauddetector/src/main/resources/codegen-resources/service-2.json index 8633774b6211..ea033f2c024e 100644 --- a/services/frauddetector/src/main/resources/codegen-resources/service-2.json +++ b/services/frauddetector/src/main/resources/codegen-resources/service-2.json @@ -129,6 +129,22 @@ ], "documentation":"

Creates a detector version. The detector version starts in a DRAFT status.

" }, + "CreateList":{ + "name":"CreateList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateListRequest"}, + "output":{"shape":"CreateListResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a list.

List is a set of input data for a variable in your event dataset. You use the input data in a rule that's associated with your detector. For more information, see Lists.

" + }, "CreateModel":{ "name":"CreateModel", "http":{ @@ -362,6 +378,23 @@ ], "documentation":"

Deletes a label.

You cannot delete labels that are included in an event type in Amazon Fraud Detector.

You cannot delete a label assigned to an event ID. You must first delete the relevant event ID.

When you delete a label, Amazon Fraud Detector permanently deletes that label and the data is no longer stored in Amazon Fraud Detector.

" }, + "DeleteList":{ + "name":"DeleteList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteListRequest"}, + "output":{"shape":"DeleteListResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes the list, provided it is not used in a rule.

When you delete a list, Amazon Fraud Detector permanently deletes that list and the elements in the list.

" + }, "DeleteModel":{ "name":"DeleteModel", "http":{ @@ -702,6 +735,40 @@ ], "documentation":"

Gets all labels or a specific label if name is provided. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 50 records per page. If you provide a maxResults, the value must be between 10 and 50. To get the next page results, provide the pagination token from the GetGetLabelsResponse as part of your request. A null pagination token fetches the records from the beginning.

" }, + "GetListElements":{ + "name":"GetListElements", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetListElementsRequest"}, + "output":{"shape":"GetListElementsResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets all the elements in the specified list.

" + }, + "GetListsMetadata":{ + "name":"GetListsMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetListsMetadataRequest"}, + "output":{"shape":"GetListsMetadataResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets the metadata of either all the lists under the account or the specified list.

" + }, "GetModelVersion":{ "name":"GetModelVersion", "http":{ @@ -1060,6 +1127,24 @@ ], "documentation":"

Updates the specified event with a new label.

" }, + "UpdateList":{ + "name":"UpdateList", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateListRequest"}, + "output":{"shape":"UpdateListResult"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates a list.

" + }, "UpdateModel":{ "name":"UpdateModel", "http":{ @@ -1275,6 +1360,41 @@ }, "documentation":"

The details of the relative importance of the aggregated variables.

Account Takeover Insights (ATI) model uses event variables from the login data you provide to continuously calculate a set of variables (aggregated variables) based on historical events. For example, your ATI model might calculate the number of times an user has logged in using the same IP address. In this case, event variables used to derive the aggregated variables are IP address and user.

" }, + "AllowDenyList":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"noDashIdentifier", + "documentation":"

The name of the list.

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

The description of the list.

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

The variable type of the list.

" + }, + "createdTime":{ + "shape":"time", + "documentation":"

The time the list was created.

" + }, + "updatedTime":{ + "shape":"time", + "documentation":"

The time the list was last updated.

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

The ARN of the list.

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

The metadata of a list.

" + }, + "AllowDenyLists":{ + "type":"list", + "member":{"shape":"AllowDenyList"} + }, "AsyncJobStatus":{ "type":"string", "enum":[ @@ -1693,6 +1813,37 @@ } } }, + "CreateListRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"noDashIdentifier", + "documentation":"

The name of the list.

" + }, + "elements":{ + "shape":"ElementsList", + "documentation":"

The names of the elements, if providing. You can also create an empty list and add elements later using the UpdateList API.

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

The variable type of the list. You can only assign the variable type with String data type. For more information, see Variable types.

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

The description of the list.

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

A collection of the key and value pairs.

" + } + } + }, + "CreateListResult":{ + "type":"structure", + "members":{ + } + }, "CreateModelRequest":{ "type":"structure", "required":[ @@ -2094,6 +2245,21 @@ "members":{ } }, + "DeleteListRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"noDashIdentifier", + "documentation":"

The name of the list to delete.

" + } + } + }, + "DeleteListResult":{ + "type":"structure", + "members":{ + } + }, "DeleteModelRequest":{ "type":"structure", "required":[ @@ -2342,6 +2508,19 @@ "max":10, "min":5 }, + "Elements":{ + "type":"string", + "max":320, + "min":1, + "pattern":"^\\S+( +\\S+)*$", + "sensitive":true + }, + "ElementsList":{ + "type":"list", + "member":{"shape":"Elements"}, + "max":100000, + "min":0 + }, "Entity":{ "type":"structure", "required":[ @@ -3278,6 +3457,67 @@ } } }, + "GetListElementsRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"noDashIdentifier", + "documentation":"

The name of the list.

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

The next token for the subsequent request.

" + }, + "maxResults":{ + "shape":"ListsElementsMaxResults", + "documentation":"

The maximum number of objects to return for the request.

" + } + } + }, + "GetListElementsResult":{ + "type":"structure", + "members":{ + "elements":{ + "shape":"ElementsList", + "documentation":"

The list elements.

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

The next page token.

" + } + } + }, + "GetListsMetadataRequest":{ + "type":"structure", + "members":{ + "name":{ + "shape":"noDashIdentifier", + "documentation":"

The name of the list.

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

The next token for the subsequent request.

" + }, + "maxResults":{ + "shape":"ListsMetadataMaxResults", + "documentation":"

The maximum number of objects to return for the request.

" + } + } + }, + "GetListsMetadataResult":{ + "type":"structure", + "members":{ + "lists":{ + "shape":"AllowDenyLists", + "documentation":"

The metadata of the specified list or all lists under the account.

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

The next page token.

" + } + } + }, "GetModelVersionRequest":{ "type":"structure", "required":[ @@ -3734,6 +3974,26 @@ } } }, + "ListUpdateMode":{ + "type":"string", + "enum":[ + "REPLACE", + "APPEND", + "REMOVE" + ] + }, + "ListsElementsMaxResults":{ + "type":"integer", + "box":true, + "max":5000, + "min":500 + }, + "ListsMetadataMaxResults":{ + "type":"integer", + "box":true, + "max":50, + "min":5 + }, "LogOddsMetric":{ "type":"structure", "required":[ @@ -4918,6 +5178,37 @@ "members":{ } }, + "UpdateListRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"noDashIdentifier", + "documentation":"

The name of the list to update.

" + }, + "elements":{ + "shape":"ElementsList", + "documentation":"

One or more list elements to add or replace. If you are providing the elements, make sure to specify the updateMode to use.

If you are deleting all elements from the list, use REPLACE for the updateMode and provide an empty list (0 elements).

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

The new description.

" + }, + "updateMode":{ + "shape":"ListUpdateMode", + "documentation":"

The update mode (type).

  • Use APPEND if you are adding elements to the list.

  • Use REPLACE if you replacing existing elements in the list.

  • Use REMOVE if you are removing elements from the list.

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

The variable type you want to assign to the list.

You cannot update a variable type of a list that already has a variable type assigned to it. You can assign a variable type to a list only if the list does not already have a variable type.

" + } + } + }, + "UpdateListResult":{ + "type":"structure", + "members":{ + } + }, "UpdateModelRequest":{ "type":"structure", "required":[ @@ -5402,6 +5693,18 @@ "max":10, "min":1 }, + "nextToken":{ + "type":"string", + "max":8192, + "min":0, + "pattern":".*" + }, + "noDashIdentifier":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[0-9a-z_]+$" + }, "ruleExpression":{ "type":"string", "max":4096, @@ -5463,6 +5766,12 @@ "max":64, "min":1 }, + "variableType":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[A-Z_]{1,64}$" + }, "variableValue":{ "type":"string", "max":8192, diff --git a/services/fsx/pom.xml b/services/fsx/pom.xml index f2000a58aa27..528f2448e4e1 100644 --- a/services/fsx/pom.xml +++ b/services/fsx/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT fsx AWS Java SDK :: Services :: FSx diff --git a/services/fsx/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/fsx/src/main/resources/codegen-resources/endpoint-rule-set.json index c34da7df90e2..b5cc1311213a 100644 --- a/services/fsx/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/fsx/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,307 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://fsx-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "prod-ca-central-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] - } - ], - "endpoint": { - "url": "https://fsx-fips.ca-central-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + }, { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "prod-us-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://fsx-fips.us-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "prod-us-east-2" + "conditions": [], + "endpoint": { + "url": "https://fsx-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://fsx-fips.us-east-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "prod-us-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://fsx-fips.us-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "prod-us-west-2" + "conditions": [], + "endpoint": { + "url": "https://fsx-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://fsx-fips.us-west-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "prod-us-gov-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://fsx-fips.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "prod-us-gov-west-1" + "conditions": [], + "endpoint": { + "url": "https://fsx.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://fsx-fips.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, { "conditions": [], - "endpoint": { - "url": "https://fsx-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "conditions": [], + "endpoint": { + "url": "https://fsx.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://fsx.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://fsx.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/fsx/src/main/resources/codegen-resources/endpoint-tests.json b/services/fsx/src/main/resources/codegen-resources/endpoint-tests.json index 7893d02ee7b3..283b29959239 100644 --- a/services/fsx/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/fsx/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1455 +1,558 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fsx-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.me-south-1.amazonaws.com" + "url": "https://fsx.af-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" + "Region": "af-south-1", + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.sa-east-1.api.aws" + "url": "https://fsx.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "sa-east-1" + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.sa-east-1.amazonaws.com" + "url": "https://fsx.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "sa-east-1" + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.sa-east-1.api.aws" + "url": "https://fsx.ap-northeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "sa-east-1" + "Region": "ap-northeast-2", + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.sa-east-1.amazonaws.com" + "url": "https://fsx.ap-northeast-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" + "Region": "ap-northeast-3", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-east-1.api.aws" + "url": "https://fsx.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-east-1" + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-east-1.amazonaws.com" + "url": "https://fsx.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-east-1" + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.ap-east-1.api.aws" + "url": "https://fsx.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-east-1" + "Region": "ap-southeast-2", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.ap-east-1.amazonaws.com" + "url": "https://fsx.ca-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" + "Region": "ca-central-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://fsx-fips.ca-central-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "ca-central-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.cn-north-1.amazonaws.com.cn" + "url": "https://fsx.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://fsx.eu-north-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "eu-north-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.cn-north-1.amazonaws.com.cn" + "url": "https://fsx.eu-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" + "Region": "eu-south-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.us-gov-west-1.api.aws" + "url": "https://fsx.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.us-gov-west-1.amazonaws.com" + "url": "https://fsx.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.us-gov-west-1.api.aws" + "url": "https://fsx.eu-west-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" + "Region": "eu-west-3", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.us-gov-west-1.amazonaws.com" + "url": "https://fsx.me-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "me-south-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-southeast-1.api.aws" + "url": "https://fsx.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-southeast-1.amazonaws.com" + "url": "https://fsx.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.ap-southeast-1.api.aws" + "url": "https://fsx-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.ap-southeast-1.amazonaws.com" + "url": "https://fsx.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-southeast-2.api.aws" + "url": "https://fsx-fips.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-southeast-2.amazonaws.com" + "url": "https://fsx.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.ap-southeast-2.api.aws" + "url": "https://fsx-fips.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.ap-southeast-2.amazonaws.com" + "url": "https://fsx.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://fsx-fips.us-west-2.amazonaws.com" + } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-east-1" + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fsx-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://fsx-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://fsx.us-east-1.api.aws" + } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.us-iso-east-1.c2s.ic.gov" + "url": "https://fsx.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-southeast-3.api.aws" + "url": "https://fsx.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-3" + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fsx-fips.ap-southeast-3.amazonaws.com" + "url": "https://fsx-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-3" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.ap-southeast-3.api.aws" + "url": "https://fsx-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-3" + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fsx.ap-southeast-3.amazonaws.com" + "url": "https://fsx.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-3" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.us-east-1.api.aws" + "url": "https://fsx.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.us-east-1.amazonaws.com" + "url": "https://fsx-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.us-east-1.amazonaws.com" + "url": "https://fsx.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.us-east-2.api.aws" + "url": "https://fsx-fips.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fsx-fips.us-east-2.amazonaws.com" + "url": "https://fsx-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://fsx.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fsx.us-east-2.amazonaws.com" + "url": "https://fsx.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://fsx-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://fsx-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://fsx.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fsx.cn-northwest-1.amazonaws.com.cn" + "url": "https://fsx.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { @@ -1459,8 +562,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -1472,8 +575,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -1483,8 +586,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -1496,12 +599,26 @@ }, "params": { "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1510,7 +627,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1521,8 +637,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1533,10 +649,16 @@ }, "params": { "UseFIPS": false, - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/fsx/src/main/resources/codegen-resources/service-2.json b/services/fsx/src/main/resources/codegen-resources/service-2.json index def5f4d07608..bb23540564b6 100644 --- a/services/fsx/src/main/resources/codegen-resources/service-2.json +++ b/services/fsx/src/main/resources/codegen-resources/service-2.json @@ -107,7 +107,7 @@ {"shape":"ServiceLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

CreateDataRepositoryAssociation isn't supported on Amazon File Cache resources. To create a DRA on Amazon File Cache, use the CreateFileCache operation.

", + "documentation":"

Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported for all file systems except for Scratch_1 deployment type.

Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

CreateDataRepositoryAssociation isn't supported on Amazon File Cache resources. To create a DRA on Amazon File Cache, use the CreateFileCache operation.

", "idempotent":true }, "CreateDataRepositoryTask":{ @@ -304,7 +304,7 @@ {"shape":"ServiceLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

Deletes a data repository association on an Amazon FSx for Lustre file system. Deleting the data repository association unlinks the file system from the Amazon S3 bucket. When deleting a data repository association, you have the option of deleting the data in the file system that corresponds to the data repository association. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

", + "documentation":"

Deletes a data repository association on an Amazon FSx for Lustre file system. Deleting the data repository association unlinks the file system from the Amazon S3 bucket. When deleting a data repository association, you have the option of deleting the data in the file system that corresponds to the data repository association. Data repository associations are supported for all file systems except for Scratch_1 deployment type.

", "idempotent":true }, "DeleteFileCache":{ @@ -423,7 +423,7 @@ {"shape":"InvalidDataRepositoryType"}, {"shape":"InternalServerError"} ], - "documentation":"

Returns the description of specific Amazon FSx for Lustre or Amazon File Cache data repository associations, if one or more AssociationIds values are provided in the request, or if filters are used in the request. Data repository associations are supported only for Amazon FSx for Lustre file systems with the Persistent_2 deployment type and for Amazon File Cache resources.

You can use filters to narrow the response to include just data repository associations for specific file systems (use the file-system-id filter with the ID of the file system) or caches (use the file-cache-id filter with the ID of the cache), or data repository associations for a specific repository type (use the data-repository-type filter with a value of S3 or NFS). If you don't use filters, the response returns all data repository associations owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all data repository associations, you can paginate the response by using the optional MaxResults parameter to limit the number of data repository associations returned in a response. If more data repository associations remain, a NextToken value is returned in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

", + "documentation":"

Returns the description of specific Amazon FSx for Lustre or Amazon File Cache data repository associations, if one or more AssociationIds values are provided in the request, or if filters are used in the request. Data repository associations are supported on Amazon File Cache resources and all Amazon FSx for Lustre file systems excluding Scratch_1 deployment types.

You can use filters to narrow the response to include just data repository associations for specific file systems (use the file-system-id filter with the ID of the file system) or caches (use the file-cache-id filter with the ID of the cache), or data repository associations for a specific repository type (use the data-repository-type filter with a value of S3 or NFS). If you don't use filters, the response returns all data repository associations owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all data repository associations, you can paginate the response by using the optional MaxResults parameter to limit the number of data repository associations returned in a response. If more data repository associations remain, a NextToken value is returned in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

", "idempotent":true }, "DescribeDataRepositoryTasks":{ @@ -650,7 +650,7 @@ {"shape":"ServiceLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

Updates the configuration of an existing data repository association on an Amazon FSx for Lustre file system. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

", + "documentation":"

Updates the configuration of an existing data repository association on an Amazon FSx for Lustre file system. Data repository associations are supported for all file systems except for Scratch_1 deployment type.

", "idempotent":true }, "UpdateFileCache":{ @@ -691,7 +691,7 @@ {"shape":"MissingFileSystemConfiguration"}, {"shape":"ServiceLimitExceeded"} ], - "documentation":"

Use this operation to update the configuration of an existing Amazon FSx file system. You can update multiple properties in a single request.

For Amazon FSx for Windows File Server file systems, you can update the following properties:

  • AuditLogConfiguration

  • AutomaticBackupRetentionDays

  • DailyAutomaticBackupStartTime

  • SelfManagedActiveDirectoryConfiguration

  • StorageCapacity

  • ThroughputCapacity

  • WeeklyMaintenanceStartTime

For Amazon FSx for Lustre file systems, you can update the following properties:

  • AutoImportPolicy

  • AutomaticBackupRetentionDays

  • DailyAutomaticBackupStartTime

  • DataCompressionType

  • LustreRootSquashConfiguration

  • StorageCapacity

  • WeeklyMaintenanceStartTime

For Amazon FSx for NetApp ONTAP file systems, you can update the following properties:

  • AutomaticBackupRetentionDays

  • DailyAutomaticBackupStartTime

  • DiskIopsConfiguration

  • FsxAdminPassword

  • StorageCapacity

  • ThroughputCapacity

  • WeeklyMaintenanceStartTime

For the Amazon FSx for OpenZFS file systems, you can update the following properties:

  • AutomaticBackupRetentionDays

  • CopyTagsToBackups

  • CopyTagsToVolumes

  • DailyAutomaticBackupStartTime

  • ThroughputCapacity

  • WeeklyMaintenanceStartTime

" + "documentation":"

Use this operation to update the configuration of an existing Amazon FSx file system. You can update multiple properties in a single request.

For FSx for Windows File Server file systems, you can update the following properties:

  • AuditLogConfiguration

  • AutomaticBackupRetentionDays

  • DailyAutomaticBackupStartTime

  • SelfManagedActiveDirectoryConfiguration

  • StorageCapacity

  • ThroughputCapacity

  • WeeklyMaintenanceStartTime

For FSx for Lustre file systems, you can update the following properties:

  • AutoImportPolicy

  • AutomaticBackupRetentionDays

  • DailyAutomaticBackupStartTime

  • DataCompressionType

  • LustreRootSquashConfiguration

  • StorageCapacity

  • WeeklyMaintenanceStartTime

For FSx for ONTAP file systems, you can update the following properties:

  • AddRouteTableIds

  • AutomaticBackupRetentionDays

  • DailyAutomaticBackupStartTime

  • DiskIopsConfiguration

  • FsxAdminPassword

  • RemoveRouteTableIds

  • StorageCapacity

  • ThroughputCapacity

  • WeeklyMaintenanceStartTime

For FSx for OpenZFS file systems, you can update the following properties:

  • AutomaticBackupRetentionDays

  • CopyTagsToBackups

  • CopyTagsToVolumes

  • DailyAutomaticBackupStartTime

  • DiskIopsConfiguration

  • StorageCapacity

  • ThroughputCapacity

  • WeeklyMaintenanceStartTime

" }, "UpdateSnapshot":{ "name":"UpdateSnapshot", @@ -949,7 +949,7 @@ "documentation":"

The AutoExportPolicy can have the following event values:

  • NEW - New files and directories are automatically exported to the data repository as they are added to the file system.

  • CHANGED - Changes to files and directories on the file system are automatically exported to the data repository.

  • DELETED - Files and directories are automatically deleted on the data repository when they are deleted on the file system.

You can define any combination of event types for your AutoExportPolicy.

" } }, - "documentation":"

Describes a data repository association's automatic export policy. The AutoExportPolicy defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.

This AutoExportPolicy is supported only for Amazon FSx for Lustre file systems with the Persistent_2 deployment type.

" + "documentation":"

Describes a data repository association's automatic export policy. The AutoExportPolicy defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.

The AutoExportPolicy is only supported on Amazon FSx for Lustre file systems with a data repository association.

" }, "AutoImportPolicy":{ "type":"structure", @@ -959,7 +959,7 @@ "documentation":"

The AutoImportPolicy can have the following event values:

  • NEW - Amazon FSx automatically imports metadata of files added to the linked S3 bucket that do not currently exist in the FSx file system.

  • CHANGED - Amazon FSx automatically updates file metadata and invalidates existing file content on the file system as files change in the data repository.

  • DELETED - Amazon FSx automatically deletes files on the file system as corresponding files are deleted in the data repository.

You can define any combination of event types for your AutoImportPolicy.

" } }, - "documentation":"

Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.

The AutoImportPolicy is supported only for Amazon FSx for Lustre file systems with the Persistent_2 deployment type.

" + "documentation":"

Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.

The AutoImportPolicy is only supported on Amazon FSx for Lustre file systems with a data repository association.

" }, "AutoImportPolicyType":{ "type":"string", @@ -1169,7 +1169,7 @@ }, "ClientRequestToken":{ "type":"string", - "documentation":"

(Optional) An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "documentation":"

(Optional) An idempotency token for resource creation, in a string of up to 63 ASCII characters. This token is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", "max":63, "min":1, "pattern":"[A-za-z0-9_.-]{0,63}$" @@ -1184,7 +1184,7 @@ }, "Path":{ "shape":"ArchivePath", - "documentation":"

Required if Enabled is set to true. Specifies the location of the report on the file system's linked S3 data repository. An absolute path that defines where the completion report will be stored in the destination location. The Path you provide must be located within the file system’s ExportPath. An example Path value is \"s3://myBucket/myExportPath/optionalPrefix\". The report provides the following information for each file in the report: FilePath, FileStatus, and ErrorCode. To learn more about a file system's ExportPath, see .

" + "documentation":"

Required if Enabled is set to true. Specifies the location of the report on the file system's linked S3 data repository. An absolute path that defines where the completion report will be stored in the destination location. The Path you provide must be located within the file system’s ExportPath. An example Path value is \"s3://myBucket/myExportPath/optionalPrefix\". The report provides the following information for each file in the report: FilePath, FileStatus, and ErrorCode.

" }, "Format":{ "shape":"ReportFormat", @@ -1242,7 +1242,7 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

(Optional) A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "documentation":"

(Optional) A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", "idempotencyToken":true }, "Tags":{ @@ -1391,7 +1391,7 @@ "members":{ "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

By using the idempotent operation, you can retry a CreateFileCache operation without the risk of creating an extra cache. This approach can be useful when an initial call fails in a way that makes it unclear whether a cache was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a cache, the client receives success as long as the parameters are the same.

", + "documentation":"

An idempotency token for resource creation, in a string of up to 63 ASCII characters. This token is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

By using the idempotent operation, you can retry a CreateFileCache operation without the risk of creating an extra cache. This approach can be useful when an initial call fails in a way that makes it unclear whether a cache was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a cache, the client receives success as long as the parameters are the same.

", "idempotencyToken":true }, "FileCacheType":{ @@ -1449,7 +1449,7 @@ "BackupId":{"shape":"BackupId"}, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "documentation":"

A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", "idempotencyToken":true }, "SubnetIds":{ @@ -1508,23 +1508,23 @@ }, "ImportPath":{ "shape":"ArchivePath", - "documentation":"

(Optional) The path to the Amazon S3 bucket (including the optional prefix) that you're using as the data repository for your Amazon FSx for Lustre file system. The root of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket you select. An example is s3://import-bucket/optional-prefix. If you specify a prefix after the Amazon S3 bucket name, only object keys with that prefix are loaded into the file system.

This parameter is not supported for file systems with the Persistent_2 deployment type. Instead, use CreateDataRepositoryAssociation to create a data repository association to link your Lustre file system to a data repository.

" + "documentation":"

(Optional) The path to the Amazon S3 bucket (including the optional prefix) that you're using as the data repository for your Amazon FSx for Lustre file system. The root of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket you select. An example is s3://import-bucket/optional-prefix. If you specify a prefix after the Amazon S3 bucket name, only object keys with that prefix are loaded into the file system.

This parameter is not supported for file systems with a data repository association.

" }, "ExportPath":{ "shape":"ArchivePath", - "documentation":"

(Optional) Available with Scratch and Persistent_1 deployment types. Specifies the path in the Amazon S3 bucket where the root of your Amazon FSx file system is exported. The path must use the same Amazon S3 bucket as specified in ImportPath. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system. If an ExportPath value is not provided, Amazon FSx sets a default export path, s3://import-bucket/FSxLustre[creation-timestamp]. The timestamp is in UTC format, for example s3://import-bucket/FSxLustre20181105T222312Z.

The Amazon S3 export bucket must be the same as the import bucket specified by ImportPath. If you specify only a bucket name, such as s3://import-bucket, you get a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that the input data in S3 is overwritten on export. If you provide a custom prefix in the export path, such as s3://import-bucket/[custom-optional-prefix], Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket.

This parameter is not supported for file systems with the Persistent_2 deployment type. Instead, use CreateDataRepositoryAssociation to create a data repository association to link your Lustre file system to a data repository.

" + "documentation":"

(Optional) Specifies the path in the Amazon S3 bucket where the root of your Amazon FSx file system is exported. The path must use the same Amazon S3 bucket as specified in ImportPath. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system. If an ExportPath value is not provided, Amazon FSx sets a default export path, s3://import-bucket/FSxLustre[creation-timestamp]. The timestamp is in UTC format, for example s3://import-bucket/FSxLustre20181105T222312Z.

The Amazon S3 export bucket must be the same as the import bucket specified by ImportPath. If you specify only a bucket name, such as s3://import-bucket, you get a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that the input data in S3 is overwritten on export. If you provide a custom prefix in the export path, such as s3://import-bucket/[custom-optional-prefix], Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket.

This parameter is not supported for file systems with a data repository association.

" }, "ImportedFileChunkSize":{ "shape":"Megabytes", - "documentation":"

(Optional) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.

The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

This parameter is not supported for file systems with the Persistent_2 deployment type. Instead, use CreateDataRepositoryAssociation to create a data repository association to link your Lustre file system to a data repository.

" + "documentation":"

(Optional) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.

The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

This parameter is not supported for file systems with a data repository association.

" }, "DeploymentType":{ "shape":"LustreDeploymentType", - "documentation":"

(Optional) Choose SCRATCH_1 and SCRATCH_2 deployment types when you need temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1.

Choose PERSISTENT_1 for longer-term storage and for throughput-focused workloads that aren’t latency-sensitive. PERSISTENT_1 supports encryption of data in transit, and is available in all Amazon Web Services Regions in which FSx for Lustre is available.

Choose PERSISTENT_2 for longer-term storage and for latency-sensitive workloads that require the highest levels of IOPS/throughput. PERSISTENT_2 supports SSD storage, and offers higher PerUnitStorageThroughput (up to 1000 MB/s/TiB). PERSISTENT_2 is available in a limited number of Amazon Web Services Regions. For more information, and an up-to-date list of Amazon Web Services Regions in which PERSISTENT_2 is available, see File system deployment options for FSx for Lustre in the Amazon FSx for Lustre User Guide.

If you choose PERSISTENT_2, and you set FileSystemTypeVersion to 2.10, the CreateFileSystem operation fails.

Encryption of data in transit is automatically turned on when you access SCRATCH_2, PERSISTENT_1 and PERSISTENT_2 file systems from Amazon EC2 instances that support automatic encryption in the Amazon Web Services Regions where they are available. For more information about encryption in transit for FSx for Lustre file systems, see Encrypting data in transit in the Amazon FSx for Lustre User Guide.

(Default = SCRATCH_1)

" + "documentation":"

(Optional) Choose SCRATCH_1 and SCRATCH_2 deployment types when you need temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1.

Choose PERSISTENT_1 for longer-term storage and for throughput-focused workloads that aren’t latency-sensitive. PERSISTENT_1 supports encryption of data in transit, and is available in all Amazon Web Services Regions in which FSx for Lustre is available.

Choose PERSISTENT_2 for longer-term storage and for latency-sensitive workloads that require the highest levels of IOPS/throughput. PERSISTENT_2 supports SSD storage, and offers higher PerUnitStorageThroughput (up to 1000 MB/s/TiB). PERSISTENT_2 is available in a limited number of Amazon Web Services Regions. For more information, and an up-to-date list of Amazon Web Services Regions in which PERSISTENT_2 is available, see File system deployment options for FSx for Lustre in the Amazon FSx for Lustre User Guide.

If you choose PERSISTENT_2, and you set FileSystemTypeVersion to 2.10, the CreateFileSystem operation fails.

Encryption of data in transit is automatically turned on when you access SCRATCH_2, PERSISTENT_1 and PERSISTENT_2 file systems from Amazon EC2 instances that support automatic encryption in the Amazon Web Services Regions where they are available. For more information about encryption in transit for FSx for Lustre file systems, see Encrypting data in transit in the Amazon FSx for Lustre User Guide.

(Default = SCRATCH_1)

" }, "AutoImportPolicy":{ "shape":"AutoImportPolicyType", - "documentation":"

(Optional) Available with Scratch and Persistent_1 deployment types. When you create your file system, your existing S3 objects appear as file and directory listings. Use this property to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. AutoImportPolicy can have the following values:

  • NONE - (Default) AutoImport is off. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created. FSx does not update file and directory listings for any new or changed objects after choosing this option.

  • NEW - AutoImport is on. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system.

  • NEW_CHANGED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option.

  • NEW_CHANGED_DELETED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket, any existing objects that are changed in the S3 bucket, and any objects that were deleted in the S3 bucket.

For more information, see Automatically import updates from your S3 bucket.

This parameter is not supported for file systems with the Persistent_2 deployment type. Instead, use CreateDataRepositoryAssociation to create a data repository association to link your Lustre file system to a data repository.

" + "documentation":"

(Optional) When you create your file system, your existing S3 objects appear as file and directory listings. Use this parameter to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. AutoImportPolicy can have the following values:

  • NONE - (Default) AutoImport is off. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created. FSx does not update file and directory listings for any new or changed objects after choosing this option.

  • NEW - AutoImport is on. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system.

  • NEW_CHANGED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option.

  • NEW_CHANGED_DELETED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket, any existing objects that are changed in the S3 bucket, and any objects that were deleted in the S3 bucket.

For more information, see Automatically import updates from your S3 bucket.

This parameter is not supported for file systems with a data repository association.

" }, "PerUnitStorageThroughput":{ "shape":"PerUnitStorageThroughput", @@ -1553,7 +1553,7 @@ "documentation":"

The Lustre root squash configuration used when creating an Amazon FSx for Lustre file system. When enabled, root squash restricts root-level access from clients that try to access your file system as a root user.

" } }, - "documentation":"

The Lustre configuration for the file system being created.

The following parameters are not supported for file systems with the Persistent_2 deployment type. Instead, use CreateDataRepositoryAssociation to create a data repository association to link your Lustre file system to a data repository.

  • AutoImportPolicy

  • ExportPath

  • ImportedChunkSize

  • ImportPath

" + "documentation":"

The Lustre configuration for the file system being created.

The following parameters are not supported for file systems with a data repository association created with .

  • AutoImportPolicy

  • ExportPath

  • ImportedChunkSize

  • ImportPath

" }, "CreateFileSystemOntapConfiguration":{ "type":"structure", @@ -1570,7 +1570,7 @@ }, "EndpointIpAddressRange":{ "shape":"IpAddressRange", - "documentation":"

(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses for file systems deployed in the same VPC/route tables.

" + "documentation":"

(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses for file systems deployed in the same VPC/route tables, as long as they don't overlap with any subnet.

" }, "FsxAdminPassword":{ "shape":"AdminPassword", @@ -1640,7 +1640,7 @@ "members":{ "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "documentation":"

A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", "idempotencyToken":true }, "FileSystemType":{ @@ -1752,7 +1752,7 @@ "members":{ "JunctionPath":{ "shape":"JunctionPath", - "documentation":"

Specifies the location in the SVM's namespace where the volume is mounted. The JunctionPath must have a leading forward slash, such as /vol3.

" + "documentation":"

Specifies the location in the SVM's namespace where the volume is mounted. This parameter is required. The JunctionPath must have a leading forward slash, such as /vol3.

" }, "SecurityStyle":{ "shape":"SecurityStyle", @@ -1760,11 +1760,11 @@ }, "SizeInMegabytes":{ "shape":"VolumeCapacity", - "documentation":"

Specifies the size of the volume, in megabytes (MB), that you are creating.

" + "documentation":"

Specifies the size of the volume, in megabytes (MB), that you are creating. Provide any whole number in the range of 20–104857600 to specify the size of the volume.

" }, "StorageEfficiencyEnabled":{ "shape":"Flag", - "documentation":"

Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume.

" + "documentation":"

Set to true to enable deduplication, compression, and compaction storage efficiency features on the volume, or set to false to disable them. This parameter is required.

" }, "StorageVirtualMachineId":{ "shape":"StorageVirtualMachineId", @@ -2080,7 +2080,7 @@ "documentation":"

The configuration for an NFS data repository linked to an Amazon File Cache resource with a data repository association.

" } }, - "documentation":"

The configuration of a data repository association that links an Amazon FSx for Lustre file system to an Amazon S3 bucket or an Amazon File Cache resource to an Amazon S3 bucket or an NFS file system. The data repository association configuration object is returned in the response of the following operations:

  • CreateDataRepositoryAssociation

  • UpdateDataRepositoryAssociation

  • DescribeDataRepositoryAssociations

Data repository associations are supported only for an Amazon FSx for Lustre file system with the Persistent_2 deployment type and for an Amazon File Cache resource.

" + "documentation":"

The configuration of a data repository association that links an Amazon FSx for Lustre file system to an Amazon S3 bucket or an Amazon File Cache resource to an Amazon S3 bucket or an NFS file system. The data repository association configuration object is returned in the response of the following operations:

  • CreateDataRepositoryAssociation

  • UpdateDataRepositoryAssociation

  • DescribeDataRepositoryAssociations

Data repository associations are supported on Amazon File Cache resources and all Amazon FSx for Lustre file systems excluding Scratch_1 deployment types.

" }, "DataRepositoryAssociationId":{ "type":"string", @@ -2131,7 +2131,7 @@ }, "FailureDetails":{"shape":"DataRepositoryFailureDetails"} }, - "documentation":"

The data repository configuration object for Lustre file systems returned in the response of the CreateFileSystem operation.

This data type is not supported for file systems with the Persistent_2 deployment type. Instead, use .

" + "documentation":"

The data repository configuration object for Lustre file systems returned in the response of the CreateFileSystem operation.

This data type is not supported on file systems with a data repository association. For file systems with a data repository association, see .

" }, "DataRepositoryFailureDetails":{ "type":"structure", @@ -2170,7 +2170,7 @@ }, "Type":{ "shape":"DataRepositoryTaskType", - "documentation":"

The type of data repository task.

  • EXPORT_TO_REPOSITORY tasks export from your Amazon FSx for Lustre file system to a linked data repository.

  • IMPORT_METADATA_FROM_REPOSITORY tasks import metadata changes from a linked S3 bucket to your Amazon FSx for Lustre file system.

  • AUTO_RELEASE_DATA tasks automatically release files from an Amazon File Cache resource.

" + "documentation":"

The type of data repository task.

  • EXPORT_TO_REPOSITORY tasks export from your Amazon FSx for Lustre file system to a linked data repository.

  • IMPORT_METADATA_FROM_REPOSITORY tasks import metadata changes from a linked S3 bucket to your Amazon FSx for Lustre file system.

  • AUTO_RELEASE_DATA tasks automatically release files from an Amazon File Cache resource.

  • RELEASE_DATA_FROM_FILESYSTEM tasks are not supported.

" }, "CreationTime":{"shape":"CreationTime"}, "StartTime":{ @@ -2353,7 +2353,7 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent deletion. This parameter is automatically filled on your behalf when using the CLI or SDK.

", + "documentation":"

A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent deletion. This parameter is automatically filled on your behalf when using the CLI or SDK.

", "idempotencyToken":true } }, @@ -2509,7 +2509,7 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent deletion. This token is automatically filled on your behalf when using the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "documentation":"

A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent deletion. This token is automatically filled on your behalf when using the Command Line Interface (CLI) or an Amazon Web Services SDK.

", "idempotencyToken":true }, "WindowsConfiguration":{"shape":"DeleteFileSystemWindowsConfiguration"}, @@ -3302,7 +3302,7 @@ "members":{ "OwnerId":{ "shape":"AWSAccountId", - "documentation":"

The Amazon Web Services account that created the file system. If the file system was created by an Identity and Access Management (IAM) user, the Amazon Web Services account to which the IAM user belongs is the owner.

" + "documentation":"

The Amazon Web Services account that created the file system. If the file system was created by a user in IAM Identity Center, the Amazon Web Services account to which the IAM user belongs is the owner.

" }, "CreationTime":{ "shape":"CreationTime", @@ -4028,7 +4028,7 @@ }, "EndpointIpAddressRange":{ "shape":"IpAddressRange", - "documentation":"

(Multi-AZ only) The IP address range in which the endpoints to access your file system are created.

The Endpoint IP address range you select for your file system must exist outside the VPC's CIDR range and must be at least /30 or larger. If you do not specify this optional parameter, Amazon FSx will automatically select a CIDR block for you.

" + "documentation":"

(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses for file systems deployed in the same VPC/route tables.

" }, "Endpoints":{ "shape":"FileSystemEndpoints", @@ -5237,7 +5237,7 @@ "AutomaticBackupRetentionDays":{"shape":"AutomaticBackupRetentionDays"}, "AutoImportPolicy":{ "shape":"AutoImportPolicyType", - "documentation":"

(Optional) When you create your file system, your existing S3 objects appear as file and directory listings. Use this property to choose how Amazon FSx keeps your file and directory listing up to date as you add or modify objects in your linked S3 bucket. AutoImportPolicy can have the following values:

  • NONE - (Default) AutoImport is off. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created. FSx does not update the file and directory listing for any new or changed objects after choosing this option.

  • NEW - AutoImport is on. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system.

  • NEW_CHANGED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option.

  • NEW_CHANGED_DELETED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket, any existing objects that are changed in the S3 bucket, and any objects that were deleted in the S3 bucket.

The AutoImportPolicy parameter is not supported for Lustre file systems with the Persistent_2 deployment type. Instead, use to update a data repository association on your Persistent_2 file system.

" + "documentation":"

(Optional) When you create your file system, your existing S3 objects appear as file and directory listings. Use this property to choose how Amazon FSx keeps your file and directory listing up to date as you add or modify objects in your linked S3 bucket. AutoImportPolicy can have the following values:

  • NONE - (Default) AutoImport is off. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created. FSx does not update the file and directory listing for any new or changed objects after choosing this option.

  • NEW - AutoImport is on. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system.

  • NEW_CHANGED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option.

  • NEW_CHANGED_DELETED - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket, any existing objects that are changed in the S3 bucket, and any objects that were deleted in the S3 bucket.

This parameter is not supported for file systems with a data repository association.

" }, "DataCompressionType":{ "shape":"DataCompressionType", @@ -5315,12 +5315,12 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent updates. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "documentation":"

A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent updates. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", "idempotencyToken":true }, "StorageCapacity":{ "shape":"StorageCapacity", - "documentation":"

Use this parameter to increase the storage capacity of an Amazon FSx for Windows File Server, Amazon FSx for Lustre, or Amazon FSx for NetApp ONTAP file system. Specifies the storage capacity target value, in GiB, to increase the storage capacity for the file system that you're updating.

You can't make a storage capacity increase request if there is an existing storage capacity increase request in progress.

For Windows file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. To increase storage capacity, the file system must have at least 16 MBps of throughput capacity. For more information, see Managing storage capacity in the Amazon FSx for Windows File Server User Guide.

For Lustre file systems, the storage capacity target value can be the following:

  • For SCRATCH_2, PERSISTENT_1, and PERSISTENT_2 SSD deployment types, valid values are in multiples of 2400 GiB. The value must be greater than the current storage capacity.

  • For PERSISTENT HDD file systems, valid values are multiples of 6000 GiB for 12-MBps throughput per TiB file systems and multiples of 1800 GiB for 40-MBps throughput per TiB file systems. The values must be greater than the current storage capacity.

  • For SCRATCH_1 file systems, you can't increase the storage capacity.

For more information, see Managing storage and throughput capacity in the Amazon FSx for Lustre User Guide.

For ONTAP file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. For more information, see Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User Guide.

" + "documentation":"

Use this parameter to increase the storage capacity of an FSx for Windows File Server, FSx for Lustre, FSx for OpenZFS, or FSx for ONTAP file system. Specifies the storage capacity target value, in GiB, to increase the storage capacity for the file system that you're updating.

You can't make a storage capacity increase request if there is an existing storage capacity increase request in progress.

For Lustre file systems, the storage capacity target value can be the following:

  • For SCRATCH_2, PERSISTENT_1, and PERSISTENT_2 SSD deployment types, valid values are in multiples of 2400 GiB. The value must be greater than the current storage capacity.

  • For PERSISTENT HDD file systems, valid values are multiples of 6000 GiB for 12-MBps throughput per TiB file systems and multiples of 1800 GiB for 40-MBps throughput per TiB file systems. The values must be greater than the current storage capacity.

  • For SCRATCH_1 file systems, you can't increase the storage capacity.

For more information, see Managing storage and throughput capacity in the FSx for Lustre User Guide.

For FSx for OpenZFS file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. For more information, see Managing storage capacity in the FSx for OpenZFS User Guide.

For Windows file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. To increase storage capacity, the file system must have at least 16 MBps of throughput capacity. For more information, see Managing storage capacity in the Amazon FSx for Windows File Server User Guide.

For ONTAP file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. For more information, see Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User Guide.

" }, "WindowsConfiguration":{ "shape":"UpdateFileSystemWindowsConfiguration", diff --git a/services/gamelift/pom.xml b/services/gamelift/pom.xml index 17f28114eea0..e21551f80c71 100644 --- a/services/gamelift/pom.xml +++ b/services/gamelift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT gamelift AWS Java SDK :: Services :: AWS GameLift diff --git a/services/gamesparks/pom.xml b/services/gamesparks/pom.xml index e4de95010cad..b428a8c0dcd2 100644 --- a/services/gamesparks/pom.xml +++ b/services/gamesparks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT gamesparks AWS Java SDK :: Services :: Game Sparks diff --git a/services/glacier/pom.xml b/services/glacier/pom.xml index bc395edf058f..6d3c79fd8452 100644 --- a/services/glacier/pom.xml +++ b/services/glacier/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT glacier AWS Java SDK :: Services :: Amazon Glacier diff --git a/services/globalaccelerator/pom.xml b/services/globalaccelerator/pom.xml index 93a7ef34df6d..8aeb7f48c995 100644 --- a/services/globalaccelerator/pom.xml +++ b/services/globalaccelerator/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT globalaccelerator AWS Java SDK :: Services :: Global Accelerator diff --git a/services/glue/pom.xml b/services/glue/pom.xml index 6124936b01f6..d69d2e3db5e5 100644 --- a/services/glue/pom.xml +++ b/services/glue/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 glue diff --git a/services/glue/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/glue/src/main/resources/codegen-resources/endpoint-rule-set.json index 73361609bf92..477f7b05b763 100644 --- a/services/glue/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/glue/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glue-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://glue-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glue-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://glue-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glue.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://glue.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://glue.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://glue.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/glue/src/main/resources/codegen-resources/endpoint-tests.json b/services/glue/src/main/resources/codegen-resources/endpoint-tests.json index 349217abd0c0..0e0a8d8bc7fe 100644 --- a/services/glue/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/glue/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { + "UseFIPS": false, "Region": "af-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -21,9 +21,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-northeast-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -47,9 +47,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-northeast-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-northeast-3", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -73,9 +73,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-southeast-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -99,9 +99,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-southeast-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -112,9 +112,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ca-central-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -125,9 +125,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-central-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -138,9 +138,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-north-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -151,9 +151,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -164,9 +164,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -177,9 +177,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-west-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -190,9 +190,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-west-3", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -203,9 +203,9 @@ } }, "params": { + "UseFIPS": false, "Region": "me-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -216,9 +216,9 @@ } }, "params": { + "UseFIPS": false, "Region": "sa-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -229,9 +229,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -242,9 +242,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -255,9 +255,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-east-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -268,9 +268,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-east-2", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -281,9 +281,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -294,9 +294,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-west-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -307,9 +307,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -320,9 +320,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -333,9 +333,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": true + "UseDualStack": true } }, { @@ -346,9 +346,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": false + "UseDualStack": true } }, { @@ -359,9 +359,9 @@ } }, "params": { + "UseFIPS": false, "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -372,9 +372,9 @@ } }, "params": { + "UseFIPS": false, "Region": "cn-northwest-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -385,9 +385,9 @@ } }, "params": { + "UseFIPS": true, "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true + "UseDualStack": true } }, { @@ -398,9 +398,9 @@ } }, "params": { + "UseFIPS": true, "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -411,9 +411,9 @@ } }, "params": { + "UseFIPS": false, "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": false + "UseDualStack": true } }, { @@ -424,9 +424,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -437,9 +437,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -450,9 +450,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-gov-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -463,9 +463,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-gov-west-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -476,9 +476,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": true + "UseDualStack": true } }, { @@ -489,9 +489,20 @@ } }, "params": { + "UseFIPS": false, "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": false + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -502,9 +513,20 @@ } }, "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, "Region": "us-iso-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": true } }, { @@ -515,9 +537,20 @@ } }, "params": { + "UseFIPS": false, "Region": "us-iso-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -528,9 +561,20 @@ } }, "params": { + "UseFIPS": true, "Region": "us-isob-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -541,22 +585,35 @@ } }, "params": { + "UseFIPS": false, "Region": "us-isob-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseFIPS": false, "Region": "us-east-1", "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -566,9 +623,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -578,11 +635,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/glue/src/main/resources/codegen-resources/service-2.json b/services/glue/src/main/resources/codegen-resources/service-2.json index 827269c436e6..a01cd047bc64 100644 --- a/services/glue/src/main/resources/codegen-resources/service-2.json +++ b/services/glue/src/main/resources/codegen-resources/service-2.json @@ -199,7 +199,9 @@ {"shape":"OperationTimeoutException"}, {"shape":"InternalServiceException"}, {"shape":"GlueEncryptionException"}, - {"shape":"InvalidStateException"} + {"shape":"InvalidStateException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} ], "documentation":"

Retrieves partitions in a batch request.

" }, @@ -463,7 +465,8 @@ {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"}, {"shape":"GlueEncryptionException"}, - {"shape":"ConcurrentModificationException"} + {"shape":"ConcurrentModificationException"}, + {"shape":"FederatedResourceAlreadyExistsException"} ], "documentation":"

Creates a new database in a Data Catalog.

" }, @@ -1438,7 +1441,8 @@ {"shape":"EntityNotFoundException"}, {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"}, - {"shape":"GlueEncryptionException"} + {"shape":"GlueEncryptionException"}, + {"shape":"FederationSourceException"} ], "documentation":"

Retrieves the definition of a specified database.

" }, @@ -1679,7 +1683,9 @@ {"shape":"InvalidInputException"}, {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"}, - {"shape":"GlueEncryptionException"} + {"shape":"GlueEncryptionException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} ], "documentation":"

Retrieves information about a specified partition.

" }, @@ -1715,7 +1721,9 @@ {"shape":"InternalServiceException"}, {"shape":"GlueEncryptionException"}, {"shape":"InvalidStateException"}, - {"shape":"ResourceNotReadyException"} + {"shape":"ResourceNotReadyException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} ], "documentation":"

Retrieves information about the partitions in a table.

" }, @@ -1927,7 +1935,9 @@ {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"}, {"shape":"GlueEncryptionException"}, - {"shape":"ResourceNotReadyException"} + {"shape":"ResourceNotReadyException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} ], "documentation":"

Retrieves the Table definition in a Data Catalog for a specified table.

" }, @@ -1978,7 +1988,9 @@ {"shape":"InvalidInputException"}, {"shape":"OperationTimeoutException"}, {"shape":"InternalServiceException"}, - {"shape":"GlueEncryptionException"} + {"shape":"GlueEncryptionException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} ], "documentation":"

Retrieves the definitions of some or all of the tables in a given Database.

" }, @@ -2044,8 +2056,11 @@ {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"}, {"shape":"GlueEncryptionException"}, - {"shape":"PermissionTypeMismatchException"} - ] + {"shape":"PermissionTypeMismatchException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} + ], + "documentation":"

Retrieves partition metadata from the Data Catalog that contains unfiltered metadata.

For IAM authorization, the public IAM action associated with this API is glue:GetPartition.

" }, "GetUnfilteredPartitionsMetadata":{ "name":"GetUnfilteredPartitionsMetadata", @@ -2061,8 +2076,11 @@ {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"}, {"shape":"GlueEncryptionException"}, - {"shape":"PermissionTypeMismatchException"} - ] + {"shape":"PermissionTypeMismatchException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} + ], + "documentation":"

Retrieves partition metadata from the Data Catalog that contains unfiltered metadata.

For IAM authorization, the public IAM action associated with this API is glue:GetPartitions.

" }, "GetUnfilteredTableMetadata":{ "name":"GetUnfilteredTableMetadata", @@ -2078,8 +2096,11 @@ {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"}, {"shape":"GlueEncryptionException"}, - {"shape":"PermissionTypeMismatchException"} - ] + {"shape":"PermissionTypeMismatchException"}, + {"shape":"FederationSourceException"}, + {"shape":"FederationSourceRetryableException"} + ], + "documentation":"

Retrieves table metadata from the Data Catalog that contains unfiltered metadata.

For IAM authorization, the public IAM action associated with this API is glue:GetTable.

" }, "GetUserDefinedFunction":{ "name":"GetUserDefinedFunction", @@ -3566,7 +3587,7 @@ "members":{ "AdditionalAuditContext":{ "shape":"AuditContextString", - "documentation":"

The context for the audit..

" + "documentation":"

A string containing the additional audit context information.

" }, "RequestedColumns":{ "shape":"AuditColumnNamesList", @@ -3577,7 +3598,7 @@ "documentation":"

All columns request for audit.

" } }, - "documentation":"

A structure containing information for audit.

" + "documentation":"

A structure containing the Lake Formation audit context.

" }, "AuditContextString":{ "type":"string", @@ -4567,6 +4588,37 @@ "members":{ } }, + "CatalogDeltaSource":{ + "type":"structure", + "required":[ + "Name", + "Database", + "Table" + ], + "members":{ + "Name":{ + "shape":"NodeName", + "documentation":"

The name of the Delta Lake data source.

" + }, + "Database":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The name of the database to read from.

" + }, + "Table":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The name of the table in the database to read from.

" + }, + "AdditionalDeltaOptions":{ + "shape":"AdditionalOptions", + "documentation":"

Specifies additional connection options.

" + }, + "OutputSchemas":{ + "shape":"GlueSchemas", + "documentation":"

Specifies the data schema for the Delta Lake source.

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

Specifies a Delta Lake data source that is registered in the Glue Data Catalog.

" + }, "CatalogEncryptionMode":{ "type":"string", "enum":[ @@ -5111,7 +5163,7 @@ }, "S3CatalogHudiSource":{ "shape":"S3CatalogHudiSource", - "documentation":"

Specifies a Hudi data source that is registered in the Glue Data Catalog. The Hudi data source must be stored in Amazon S3.

" + "documentation":"

Specifies a Hudi data source that is registered in the Glue Data Catalog. The data source must be stored in Amazon S3.

" }, "CatalogHudiSource":{ "shape":"CatalogHudiSource", @@ -5128,6 +5180,27 @@ "S3HudiDirectTarget":{ "shape":"S3HudiDirectTarget", "documentation":"

Specifies a target that writes to a Hudi data source in Amazon S3.

" + }, + "DirectJDBCSource":{"shape":"DirectJDBCSource"}, + "S3CatalogDeltaSource":{ + "shape":"S3CatalogDeltaSource", + "documentation":"

Specifies a Delta Lake data source that is registered in the Glue Data Catalog. The data source must be stored in Amazon S3.

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

Specifies a Delta Lake data source that is registered in the Glue Data Catalog.

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

Specifies a Delta Lake data source stored in Amazon S3.

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

Specifies a target that writes to a Delta Lake data source in the Glue Data Catalog.

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

Specifies a target that writes to a Delta Lake data source in Amazon S3.

" } }, "documentation":"

CodeGenConfigurationNode enumerates all valid Node types. One and only one of its member variables can be populated.

" @@ -5296,9 +5369,16 @@ "ColumnRowFilter":{ "type":"structure", "members":{ - "ColumnName":{"shape":"NameString"}, - "RowFilterExpression":{"shape":"PredicateString"} - } + "ColumnName":{ + "shape":"NameString", + "documentation":"

A string containing the name of the column.

" + }, + "RowFilterExpression":{ + "shape":"PredicateString", + "documentation":"

A string containing the row-level filter expression.

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

A filter that uses both column-level and row-level filtering.

" }, "ColumnRowFilterList":{ "type":"list", @@ -5350,7 +5430,7 @@ }, "DecimalColumnStatisticsData":{ "shape":"DecimalColumnStatisticsData", - "documentation":"

Decimal column statistics data.

" + "documentation":"

Decimal column statistics data. UnscaledValues within are Base64-encoded binary objects storing big-endian, two's complement representations of the decimal's unscaled value.

" }, "DoubleColumnStatisticsData":{ "shape":"DoubleColumnStatisticsData", @@ -5575,7 +5655,7 @@ }, "ConnectionProperties":{ "shape":"ConnectionProperties", - "documentation":"

These key-value pairs define parameters for the connection:

  • HOST - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.

  • PORT - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.

  • USER_NAME - The name under which to log in to the database. The value string for USER_NAME is \"USERNAME\".

  • PASSWORD - A password, if one is used, for the user name.

  • ENCRYPTED_PASSWORD - When you enable connection password protection by setting ConnectionPasswordEncryption in the Data Catalog encryption settings, this field stores the encrypted password.

  • JDBC_DRIVER_JAR_URI - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.

  • JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.

  • JDBC_ENGINE - The name of the JDBC engine to use.

  • JDBC_ENGINE_VERSION - The version of the JDBC engine to use.

  • CONFIG_FILES - (Reserved for future use.)

  • INSTANCE_ID - The instance ID to use.

  • JDBC_CONNECTION_URL - The URL for connecting to a JDBC data source.

  • JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.

  • CUSTOM_JDBC_CERT - An Amazon S3 location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.

  • SKIP_CUSTOM_JDBC_CERT_VALIDATION - By default, this is false. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to true to skip Glue’s validation of the customer certificate.

  • CUSTOM_JDBC_CERT_STRING - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the SSL_SERVER_CERT_DN; in Microsoft SQL Server, this is used as the hostNameInCertificate.

  • CONNECTION_URL - The URL for connecting to a general (non-JDBC) data source.

  • SECRET_ID - The secret ID used for the secret manager of credentials.

  • CONNECTOR_URL - The connector URL for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_TYPE - The connector type for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_CLASS_NAME - The connector class name for a MARKETPLACE or CUSTOM connection.

  • KAFKA_BOOTSTRAP_SERVERS - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.

  • KAFKA_SSL_ENABLED - Whether to enable or disable SSL on an Apache Kafka connection. Default value is \"true\".

  • KAFKA_CUSTOM_CERT - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string.

  • KAFKA_SKIP_CUSTOM_CERT_VALIDATION - Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is \"false\".

  • KAFKA_CLIENT_KEYSTORE - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional).

  • KAFKA_CLIENT_KEYSTORE_PASSWORD - The password to access the provided keystore (Optional).

  • KAFKA_CLIENT_KEY_PASSWORD - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).

  • ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD - The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected).

  • ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD - The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected).

  • KAFKA_SASL_MECHANISM - \"SCRAM-SHA-512\" or \"GSSAPI\". These are the two supported SASL Mechanisms.

  • KAFKA_SASL_SCRAM_USERNAME - A plaintext username used to authenticate with the \"SCRAM-SHA-512\" mechanism.

  • KAFKA_SASL_SCRAM_PASSWORD - A plaintext password used to authenticate with the \"SCRAM-SHA-512\" mechanism.

  • ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD - The encrypted version of the Kafka SASL SCRAM password (if the user has the Glue encrypt passwords setting selected).

  • KAFKA_SASL_GSSAPI_KEYTAB - The S3 location of a Kerberos keytab file. A keytab stores long-term keys for one or more principals. For more information, see MIT Kerberos Documentation: Keytab.

  • KAFKA_SASL_GSSAPI_KRB5_CONF - The S3 location of a Kerberos krb5.conf file. A krb5.conf stores Kerberos configuration information, such as the location of the KDC server. For more information, see MIT Kerberos Documentation: krb5.conf.

  • KAFKA_SASL_GSSAPI_SERVICE - The Kerberos service name, as set with sasl.kerberos.service.name in your Kafka Configuration.

  • KAFKA_SASL_GSSAPI_PRINCIPAL - The name of the Kerberos princial used by Glue. For more information, see Kafka Documentation: Configuring Kafka Brokers.

" + "documentation":"

These key-value pairs define parameters for the connection:

  • HOST - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.

  • PORT - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.

  • USER_NAME - The name under which to log in to the database. The value string for USER_NAME is \"USERNAME\".

  • PASSWORD - A password, if one is used, for the user name.

  • ENCRYPTED_PASSWORD - When you enable connection password protection by setting ConnectionPasswordEncryption in the Data Catalog encryption settings, this field stores the encrypted password.

  • JDBC_DRIVER_JAR_URI - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.

  • JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.

  • JDBC_ENGINE - The name of the JDBC engine to use.

  • JDBC_ENGINE_VERSION - The version of the JDBC engine to use.

  • CONFIG_FILES - (Reserved for future use.)

  • INSTANCE_ID - The instance ID to use.

  • JDBC_CONNECTION_URL - The URL for connecting to a JDBC data source.

  • JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.

  • CUSTOM_JDBC_CERT - An Amazon S3 location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.

  • SKIP_CUSTOM_JDBC_CERT_VALIDATION - By default, this is false. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to true to skip Glue’s validation of the customer certificate.

  • CUSTOM_JDBC_CERT_STRING - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the SSL_SERVER_CERT_DN; in Microsoft SQL Server, this is used as the hostNameInCertificate.

  • CONNECTION_URL - The URL for connecting to a general (non-JDBC) data source.

  • SECRET_ID - The secret ID used for the secret manager of credentials.

  • CONNECTOR_URL - The connector URL for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_TYPE - The connector type for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_CLASS_NAME - The connector class name for a MARKETPLACE or CUSTOM connection.

  • KAFKA_BOOTSTRAP_SERVERS - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.

  • KAFKA_SSL_ENABLED - Whether to enable or disable SSL on an Apache Kafka connection. Default value is \"true\".

  • KAFKA_CUSTOM_CERT - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string.

  • KAFKA_SKIP_CUSTOM_CERT_VALIDATION - Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is \"false\".

  • KAFKA_CLIENT_KEYSTORE - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional).

  • KAFKA_CLIENT_KEYSTORE_PASSWORD - The password to access the provided keystore (Optional).

  • KAFKA_CLIENT_KEY_PASSWORD - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).

  • ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD - The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected).

  • ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD - The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected).

  • KAFKA_SASL_MECHANISM - \"SCRAM-SHA-512\", \"GSSAPI\", or \"AWS_MSK_IAM\". These are the supported SASL Mechanisms.

  • KAFKA_SASL_SCRAM_USERNAME - A plaintext username used to authenticate with the \"SCRAM-SHA-512\" mechanism.

  • KAFKA_SASL_SCRAM_PASSWORD - A plaintext password used to authenticate with the \"SCRAM-SHA-512\" mechanism.

  • ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD - The encrypted version of the Kafka SASL SCRAM password (if the user has the Glue encrypt passwords setting selected).

  • KAFKA_SASL_GSSAPI_KEYTAB - The S3 location of a Kerberos keytab file. A keytab stores long-term keys for one or more principals. For more information, see MIT Kerberos Documentation: Keytab.

  • KAFKA_SASL_GSSAPI_KRB5_CONF - The S3 location of a Kerberos krb5.conf file. A krb5.conf stores Kerberos configuration information, such as the location of the KDC server. For more information, see MIT Kerberos Documentation: krb5.conf.

  • KAFKA_SASL_GSSAPI_SERVICE - The Kerberos service name, as set with sasl.kerberos.service.name in your Kafka Configuration.

  • KAFKA_SASL_GSSAPI_PRINCIPAL - The name of the Kerberos princial used by Glue. For more information, see Kafka Documentation: Configuring Kafka Brokers.

" }, "PhysicalConnectionRequirements":{ "shape":"PhysicalConnectionRequirements", @@ -5606,7 +5686,7 @@ "members":{ "Name":{ "shape":"NameString", - "documentation":"

The name of the connection.

" + "documentation":"

The name of the connection. Connection will not function as expected without a name.

" }, "Description":{ "shape":"DescriptionString", @@ -5614,7 +5694,7 @@ }, "ConnectionType":{ "shape":"ConnectionType", - "documentation":"

The type of the connection. Currently, these types are supported:

  • JDBC - Designates a connection to a database through Java Database Connectivity (JDBC).

  • KAFKA - Designates a connection to an Apache Kafka streaming platform.

  • MONGODB - Designates a connection to a MongoDB document database.

  • NETWORK - Designates a network connection to a data source within an Amazon Virtual Private Cloud environment (Amazon VPC).

  • MARKETPLACE - Uses configuration settings contained in a connector purchased from Amazon Web Services Marketplace to read from and write to data stores that are not natively supported by Glue.

  • CUSTOM - Uses configuration settings contained in a custom connector to read from and write to data stores that are not natively supported by Glue.

SFTP is not supported.

" + "documentation":"

The type of the connection. Currently, these types are supported:

  • JDBC - Designates a connection to a database through Java Database Connectivity (JDBC).

    JDBC Connections use the following ConnectionParameters.

    • Required: All of (HOST, PORT, JDBC_ENGINE) or JDBC_CONNECTION_URL.

    • Required: All of (USERNAME, PASSWORD) or SECRET_ID.

    • Optional: JDBC_ENFORCE_SSL, CUSTOM_JDBC_CERT, CUSTOM_JDBC_CERT_STRING, SKIP_CUSTOM_JDBC_CERT_VALIDATION. These parameters are used to configure SSL with JDBC.

  • KAFKA - Designates a connection to an Apache Kafka streaming platform.

    KAFKA Connections use the following ConnectionParameters.

    • Required: KAFKA_BOOTSTRAP_SERVERS.

    • Optional: KAFKA_SSL_ENABLED, KAFKA_CUSTOM_CERT, KAFKA_SKIP_CUSTOM_CERT_VALIDATION. These parameters are used to configure SSL with KAFKA.

    • Optional: KAFKA_CLIENT_KEYSTORE, KAFKA_CLIENT_KEYSTORE_PASSWORD, KAFKA_CLIENT_KEY_PASSWORD, ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD, ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD. These parameters are used to configure TLS client configuration with SSL in KAFKA.

    • Optional: KAFKA_SASL_MECHANISM. Can be specified as SCRAM-SHA-512, GSSAPI, or AWS_MSK_IAM.

    • Optional: KAFKA_SASL_SCRAM_USERNAME, KAFKA_SASL_SCRAM_PASSWORD, ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD. These parameters are used to configure SASL/SCRAM-SHA-512 authentication with KAFKA.

    • Optional: KAFKA_SASL_GSSAPI_KEYTAB, KAFKA_SASL_GSSAPI_KRB5_CONF, KAFKA_SASL_GSSAPI_SERVICE, KAFKA_SASL_GSSAPI_PRINCIPAL. These parameters are used to configure SASL/GSSAPI authentication with KAFKA.

  • MONGODB - Designates a connection to a MongoDB document database.

    MONGODB Connections use the following ConnectionParameters.

    • Required: CONNECTION_URL.

    • Required: All of (USERNAME, PASSWORD) or SECRET_ID.

  • NETWORK - Designates a network connection to a data source within an Amazon Virtual Private Cloud environment (Amazon VPC).

    NETWORK Connections do not require ConnectionParameters. Instead, provide a PhysicalConnectionRequirements.

  • MARKETPLACE - Uses configuration settings contained in a connector purchased from Amazon Web Services Marketplace to read from and write to data stores that are not natively supported by Glue.

    MARKETPLACE Connections use the following ConnectionParameters.

    • Required: CONNECTOR_TYPE, CONNECTOR_URL, CONNECTOR_CLASS_NAME, CONNECTION_URL.

    • Required for JDBC CONNECTOR_TYPE connections: All of (USERNAME, PASSWORD) or SECRET_ID.

  • CUSTOM - Uses configuration settings contained in a custom connector to read from and write to data stores that are not natively supported by Glue.

SFTP is not supported.

For more information about how optional ConnectionProperties are used to configure features in Glue, consult Glue connection properties.

For more information about how optional ConnectionProperties are used to configure features in Glue Studio, consult Using connectors and connections.

" }, "MatchCriteria":{ "shape":"MatchCriteria", @@ -7037,11 +7117,11 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The number of seconds before request times out.

" + "documentation":"

The number of minutes before session times out. Default for Spark ETL jobs is 48 hours (2880 minutes), the maximum session lifetime for this job type. Consult the documentation for other job types.

" }, "IdleTimeout":{ "shape":"Timeout", - "documentation":"

The number of seconds when idle before request times out.

" + "documentation":"

The number of minutes when idle before session times out. Default for Spark ETL jobs is value of Timeout. Consult the documentation for other job types.

" }, "DefaultArguments":{ "shape":"OrchestrationArgumentsMap", @@ -7913,7 +7993,7 @@ }, "CreateTableDefaultPermissions":{ "shape":"PrincipalPermissionsList", - "documentation":"

Creates a set of default permissions on the table for principals.

" + "documentation":"

Creates a set of default permissions on the table for principals. Used by Lake Formation. Not used in the normal course of Glue operations.

" }, "TargetDatabase":{ "shape":"DatabaseIdentifier", @@ -7922,6 +8002,10 @@ "CatalogId":{ "shape":"CatalogIdString", "documentation":"

The ID of the Data Catalog in which the database resides.

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

A FederatedDatabase structure that references an entity outside the Glue Data Catalog.

" } }, "documentation":"

The Database object represents a logical grouping of tables that might reside in a Hive metastore or an RDBMS.

" @@ -7962,11 +8046,15 @@ }, "CreateTableDefaultPermissions":{ "shape":"PrincipalPermissionsList", - "documentation":"

Creates a set of default permissions on the table for principals.

" + "documentation":"

Creates a set of default permissions on the table for principals. Used by Lake Formation. Not used in the normal course of Glue operations.

" }, "TargetDatabase":{ "shape":"DatabaseIdentifier", "documentation":"

A DatabaseIdentifier structure that describes a target database for resource linking.

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

A FederatedDatabase structure that references an entity outside the Glue Data Catalog.

" } }, "documentation":"

The structure used to create or update a database.

" @@ -8664,6 +8752,13 @@ }, "documentation":"

Specifies a Delta data store to crawl one or more Delta tables.

" }, + "DeltaTargetCompressionType":{ + "type":"string", + "enum":[ + "uncompressed", + "snappy" + ] + }, "DeltaTargetList":{ "type":"list", "member":{"shape":"DeltaTarget"} @@ -8814,6 +8909,43 @@ "max":25, "min":1 }, + "DirectJDBCSource":{ + "type":"structure", + "required":[ + "Name", + "Database", + "Table", + "ConnectionName", + "ConnectionType" + ], + "members":{ + "Name":{ + "shape":"NodeName", + "documentation":"

The name of the JDBC source connection.

" + }, + "Database":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The database of the JDBC source connection.

" + }, + "Table":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The table of the JDBC source connection.

" + }, + "ConnectionName":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The connection name of the JDBC source.

" + }, + "ConnectionType":{ + "shape":"JDBCConnectionType", + "documentation":"

The connection type of the JDBC source.

" + }, + "RedshiftTmpDir":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The temp directory of the JDBC Redshift source.

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

Specifies the direct JDBC source connection.

" + }, "DirectKafkaSource":{ "type":"structure", "required":["Name"], @@ -9163,6 +9295,10 @@ "Message":{ "shape":"MessageString", "documentation":"

A message describing the problem.

" + }, + "FromFederationSource":{ + "shape":"NullableBoolean", + "documentation":"

Indicates whether or not the exception relates to a federated source.

" } }, "documentation":"

A specified entity does not exist

", @@ -9311,6 +9447,91 @@ "type":"string", "pattern":"[\\s\\S]*" }, + "FederatedDatabase":{ + "type":"structure", + "members":{ + "Identifier":{ + "shape":"FederationIdentifier", + "documentation":"

A unique identifier for the federated database.

" + }, + "ConnectionName":{ + "shape":"NameString", + "documentation":"

The name of the connection to the external metastore.

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

A database that points to an entity outside the Glue Data Catalog.

" + }, + "FederatedResourceAlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"MessageString", + "documentation":"

The message describing the problem.

" + }, + "AssociatedGlueResource":{ + "shape":"GlueResourceArn", + "documentation":"

The associated Glue resource already exists.

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

A federated resource already exists.

", + "exception":true + }, + "FederatedTable":{ + "type":"structure", + "members":{ + "Identifier":{ + "shape":"FederationIdentifier", + "documentation":"

A unique identifier for the federated table.

" + }, + "DatabaseIdentifier":{ + "shape":"FederationIdentifier", + "documentation":"

A unique identifier for the federated database.

" + }, + "ConnectionName":{ + "shape":"NameString", + "documentation":"

The name of the connection to the external metastore.

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

A table that points to an entity outside the Glue Data Catalog.

" + }, + "FederationIdentifier":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "FederationSourceErrorCode":{ + "type":"string", + "enum":[ + "InvalidResponseException", + "OperationTimeoutException", + "OperationNotSupportedException", + "InternalServiceException", + "ThrottlingException" + ] + }, + "FederationSourceException":{ + "type":"structure", + "members":{ + "FederationSourceErrorCode":{ + "shape":"FederationSourceErrorCode", + "documentation":"

The error code of the problem.

" + }, + "Message":{ + "shape":"MessageString", + "documentation":"

The message describing the problem.

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

A federation source failed.

", + "exception":true + }, + "FederationSourceRetryableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"MessageString"} + }, + "exception":true + }, "FieldName":{ "type":"string", "enum":[ @@ -9792,7 +10013,7 @@ "members":{ "ColumnStatisticsList":{ "shape":"ColumnStatisticsList", - "documentation":"

List of ColumnStatistics that failed to be retrieved.

" + "documentation":"

List of ColumnStatistics.

" }, "Errors":{ "shape":"ColumnErrors", @@ -10279,7 +10500,7 @@ }, "ResourceShareType":{ "shape":"ResourceShareType", - "documentation":"

Allows you to specify that you want to list the databases shared with your account. The allowable values are FOREIGN or ALL.

  • If set to FOREIGN, will list the databases shared with your account.

  • If set to ALL, will list the databases shared with your account, as well as the databases in yor local account.

" + "documentation":"

Allows you to specify that you want to list the databases shared with your account. The allowable values are FEDERATED, FOREIGN or ALL.

  • If set to FEDERATED, will list the federated databases (referencing an external entity) shared with your account.

  • If set to FOREIGN, will list the databases shared with your account.

  • If set to ALL, will list the databases shared with your account, as well as the databases in yor local account.

" } } }, @@ -11564,20 +11785,47 @@ "SupportedPermissionTypes" ], "members":{ - "CatalogId":{"shape":"CatalogIdString"}, - "DatabaseName":{"shape":"NameString"}, - "TableName":{"shape":"NameString"}, - "PartitionValues":{"shape":"ValueStringList"}, - "AuditContext":{"shape":"AuditContext"}, - "SupportedPermissionTypes":{"shape":"PermissionTypeList"} + "CatalogId":{ + "shape":"CatalogIdString", + "documentation":"

The catalog ID where the partition resides.

" + }, + "DatabaseName":{ + "shape":"NameString", + "documentation":"

(Required) Specifies the name of a database that contains the partition.

" + }, + "TableName":{ + "shape":"NameString", + "documentation":"

(Required) Specifies the name of a table that contains the partition.

" + }, + "PartitionValues":{ + "shape":"ValueStringList", + "documentation":"

(Required) A list of partition key values.

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

A structure containing Lake Formation audit context information.

" + }, + "SupportedPermissionTypes":{ + "shape":"PermissionTypeList", + "documentation":"

(Required) A list of supported permission types.

" + } } }, "GetUnfilteredPartitionMetadataResponse":{ "type":"structure", "members":{ - "Partition":{"shape":"Partition"}, - "AuthorizedColumns":{"shape":"NameStringList"}, - "IsRegisteredWithLakeFormation":{"shape":"Boolean"} + "Partition":{ + "shape":"Partition", + "documentation":"

A Partition object containing the partition metadata.

" + }, + "AuthorizedColumns":{ + "shape":"NameStringList", + "documentation":"

A list of column names that the user has been granted access to.

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

A Boolean value that indicates whether the partition location is registered with Lake Formation.

" + } } }, "GetUnfilteredPartitionsMetadataRequest":{ @@ -11589,22 +11837,55 @@ "SupportedPermissionTypes" ], "members":{ - "CatalogId":{"shape":"CatalogIdString"}, - "DatabaseName":{"shape":"NameString"}, - "TableName":{"shape":"NameString"}, - "Expression":{"shape":"PredicateString"}, - "AuditContext":{"shape":"AuditContext"}, - "SupportedPermissionTypes":{"shape":"PermissionTypeList"}, - "NextToken":{"shape":"Token"}, - "Segment":{"shape":"Segment"}, - "MaxResults":{"shape":"PageSize"} + "CatalogId":{ + "shape":"CatalogIdString", + "documentation":"

The ID of the Data Catalog where the partitions in question reside. If none is provided, the AWS account ID is used by default.

" + }, + "DatabaseName":{ + "shape":"NameString", + "documentation":"

The name of the catalog database where the partitions reside.

" + }, + "TableName":{ + "shape":"NameString", + "documentation":"

The name of the table that contains the partition.

" + }, + "Expression":{ + "shape":"PredicateString", + "documentation":"

An expression that filters the partitions to be returned.

The expression uses SQL syntax similar to the SQL WHERE filter clause. The SQL statement parser JSQLParser parses the expression.

Operators: The following are the operators that you can use in the Expression API call:

=

Checks whether the values of the two operands are equal; if yes, then the condition becomes true.

Example: Assume 'variable a' holds 10 and 'variable b' holds 20.

(a = b) is not true.

< >

Checks whether the values of two operands are equal; if the values are not equal, then the condition becomes true.

Example: (a < > b) is true.

>

Checks whether the value of the left operand is greater than the value of the right operand; if yes, then the condition becomes true.

Example: (a > b) is not true.

<

Checks whether the value of the left operand is less than the value of the right operand; if yes, then the condition becomes true.

Example: (a < b) is true.

>=

Checks whether the value of the left operand is greater than or equal to the value of the right operand; if yes, then the condition becomes true.

Example: (a >= b) is not true.

<=

Checks whether the value of the left operand is less than or equal to the value of the right operand; if yes, then the condition becomes true.

Example: (a <= b) is true.

AND, OR, IN, BETWEEN, LIKE, NOT, IS NULL

Logical operators.

Supported Partition Key Types: The following are the supported partition keys.

  • string

  • date

  • timestamp

  • int

  • bigint

  • long

  • tinyint

  • smallint

  • decimal

If an type is encountered that is not valid, an exception is thrown.

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

A structure containing Lake Formation audit context information.

" + }, + "SupportedPermissionTypes":{ + "shape":"PermissionTypeList", + "documentation":"

A list of supported permission types.

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

A continuation token, if this is not the first call to retrieve these partitions.

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

The segment of the table's partitions to scan in this request.

" + }, + "MaxResults":{ + "shape":"PageSize", + "documentation":"

The maximum number of partitions to return in a single response.

" + } } }, "GetUnfilteredPartitionsMetadataResponse":{ "type":"structure", "members":{ - "UnfilteredPartitions":{"shape":"UnfilteredPartitionList"}, - "NextToken":{"shape":"Token"} + "UnfilteredPartitions":{ + "shape":"UnfilteredPartitionList", + "documentation":"

A list of requested partitions.

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

A continuation token, if the returned list of partitions does not include the last one.

" + } } }, "GetUnfilteredTableMetadataRequest":{ @@ -11616,20 +11897,47 @@ "SupportedPermissionTypes" ], "members":{ - "CatalogId":{"shape":"CatalogIdString"}, - "DatabaseName":{"shape":"NameString"}, - "Name":{"shape":"NameString"}, - "AuditContext":{"shape":"AuditContext"}, - "SupportedPermissionTypes":{"shape":"PermissionTypeList"} + "CatalogId":{ + "shape":"CatalogIdString", + "documentation":"

The catalog ID where the table resides.

" + }, + "DatabaseName":{ + "shape":"NameString", + "documentation":"

(Required) Specifies the name of a database that contains the table.

" + }, + "Name":{ + "shape":"NameString", + "documentation":"

(Required) Specifies the name of a table for which you are requesting metadata.

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

A structure containing Lake Formation audit context information.

" + }, + "SupportedPermissionTypes":{ + "shape":"PermissionTypeList", + "documentation":"

(Required) A list of supported permission types.

" + } } }, "GetUnfilteredTableMetadataResponse":{ "type":"structure", "members":{ - "Table":{"shape":"Table"}, - "AuthorizedColumns":{"shape":"NameStringList"}, - "IsRegisteredWithLakeFormation":{"shape":"Boolean"}, - "CellFilters":{"shape":"ColumnRowFilterList"} + "Table":{ + "shape":"Table", + "documentation":"

A Table object containing the table metadata.

" + }, + "AuthorizedColumns":{ + "shape":"NameStringList", + "documentation":"

A list of column names that the user has been granted access to.

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

A Boolean value that indicates whether the partition location is registered with Lake Formation.

" + }, + "CellFilters":{ + "shape":"ColumnRowFilterList", + "documentation":"

A list of column row filters.

" + } } }, "GetUserDefinedFunctionRequest":{ @@ -12191,6 +12499,10 @@ "Message":{ "shape":"MessageString", "documentation":"

A message describing the problem.

" + }, + "FromFederationSource":{ + "shape":"NullableBoolean", + "documentation":"

Indicates whether or not the exception relates to a federated source.

" } }, "documentation":"

The input provided was not valid.

", @@ -12208,6 +12520,16 @@ "exception":true }, "IsVersionValid":{"type":"boolean"}, + "JDBCConnectionType":{ + "type":"string", + "enum":[ + "sqlserver", + "mysql", + "oracle", + "postgresql", + "redshift" + ] + }, "JDBCConnectorOptions":{ "type":"structure", "members":{ @@ -12481,7 +12803,7 @@ }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" + "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" }, "WorkerType":{ "shape":"WorkerType", @@ -14912,8 +15234,12 @@ "PermissionTypeMismatchException":{ "type":"structure", "members":{ - "Message":{"shape":"MessageString"} + "Message":{ + "shape":"MessageString", + "documentation":"

There is a mismatch between the SupportedPermissionType used in the query request and the permissions defined on the target table.

" + } }, + "documentation":"

The operation timed out.

", "exception":true }, "PhysicalConnectionRequirements":{ @@ -15648,7 +15974,8 @@ "type":"string", "enum":[ "FOREIGN", - "ALL" + "ALL", + "FEDERATED" ] }, "ResourceType":{ @@ -15758,6 +16085,37 @@ } } }, + "S3CatalogDeltaSource":{ + "type":"structure", + "required":[ + "Name", + "Database", + "Table" + ], + "members":{ + "Name":{ + "shape":"NodeName", + "documentation":"

The name of the Delta Lake data source.

" + }, + "Database":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The name of the database to read from.

" + }, + "Table":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The name of the table in the database to read from.

" + }, + "AdditionalDeltaOptions":{ + "shape":"AdditionalOptions", + "documentation":"

Specifies additional connection options.

" + }, + "OutputSchemas":{ + "shape":"GlueSchemas", + "documentation":"

Specifies the data schema for the Delta Lake source.

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

Specifies a Delta Lake data source that is registered in the Glue Data Catalog. The data source must be stored in Amazon S3.

" + }, "S3CatalogHudiSource":{ "type":"structure", "required":[ @@ -15944,6 +16302,121 @@ }, "documentation":"

Specifies a command-separated value (CSV) data store stored in Amazon S3.

" }, + "S3DeltaCatalogTarget":{ + "type":"structure", + "required":[ + "Name", + "Inputs", + "Table", + "Database" + ], + "members":{ + "Name":{ + "shape":"NodeName", + "documentation":"

The name of the data target.

" + }, + "Inputs":{ + "shape":"OneInput", + "documentation":"

The nodes that are inputs to the data target.

" + }, + "PartitionKeys":{ + "shape":"GlueStudioPathList", + "documentation":"

Specifies native partitioning using a sequence of keys.

" + }, + "Table":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The name of the table in the database to write to.

" + }, + "Database":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The name of the database to write to.

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

Specifies additional connection options for the connector.

" + }, + "SchemaChangePolicy":{ + "shape":"CatalogSchemaChangePolicy", + "documentation":"

A policy that specifies update behavior for the crawler.

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

Specifies a target that writes to a Delta Lake data source in the Glue Data Catalog.

" + }, + "S3DeltaDirectTarget":{ + "type":"structure", + "required":[ + "Name", + "Inputs", + "Path", + "Compression", + "Format" + ], + "members":{ + "Name":{ + "shape":"NodeName", + "documentation":"

The name of the data target.

" + }, + "Inputs":{ + "shape":"OneInput", + "documentation":"

The nodes that are inputs to the data target.

" + }, + "PartitionKeys":{ + "shape":"GlueStudioPathList", + "documentation":"

Specifies native partitioning using a sequence of keys.

" + }, + "Path":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The Amazon S3 path of your Delta Lake data source to write to.

" + }, + "Compression":{ + "shape":"DeltaTargetCompressionType", + "documentation":"

Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are \"gzip\" and \"bzip\").

" + }, + "Format":{ + "shape":"TargetFormat", + "documentation":"

Specifies the data output format for the target.

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

Specifies additional connection options for the connector.

" + }, + "SchemaChangePolicy":{ + "shape":"DirectSchemaChangePolicy", + "documentation":"

A policy that specifies update behavior for the crawler.

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

Specifies a target that writes to a Delta Lake data source in Amazon S3.

" + }, + "S3DeltaSource":{ + "type":"structure", + "required":[ + "Name", + "Paths" + ], + "members":{ + "Name":{ + "shape":"NodeName", + "documentation":"

The name of the Delta Lake source.

" + }, + "Paths":{ + "shape":"EnclosedInStringProperties", + "documentation":"

A list of the Amazon S3 paths to read from.

" + }, + "AdditionalDeltaOptions":{ + "shape":"AdditionalOptions", + "documentation":"

Specifies additional connection options.

" + }, + "AdditionalOptions":{ + "shape":"S3DirectSourceAdditionalOptions", + "documentation":"

Specifies additional options for the connector.

" + }, + "OutputSchemas":{ + "shape":"GlueSchemas", + "documentation":"

Specifies the data schema for the Delta Lake source.

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

Specifies a Delta Lake data source stored in Amazon S3.

" + }, "S3DirectSourceAdditionalOptions":{ "type":"structure", "members":{ @@ -17900,15 +18373,15 @@ }, "ViewOriginalText":{ "shape":"ViewTextString", - "documentation":"

If the table is a view, the original text of the view; otherwise null.

" + "documentation":"

Included for Apache Hive compatibility. Not used in the normal course of Glue operations. If the table is a VIRTUAL_VIEW, certain Athena configuration encoded in base64.

" }, "ViewExpandedText":{ "shape":"ViewTextString", - "documentation":"

If the table is a view, the expanded text of the view; otherwise null.

" + "documentation":"

Included for Apache Hive compatibility. Not used in the normal course of Glue operations.

" }, "TableType":{ "shape":"TableTypeString", - "documentation":"

The type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.).

" + "documentation":"

The type of this table. Glue will create tables with the EXTERNAL_TABLE type. Other services, such as Athena, may create tables with additional table types.

Glue related table types:

EXTERNAL_TABLE

Hive compatible attribute - indicates a non-Hive managed table.

GOVERNED

Used by Lake Formation. The Glue Data Catalog understands GOVERNED.

" }, "Parameters":{ "shape":"ParametersMap", @@ -17933,6 +18406,10 @@ "VersionId":{ "shape":"VersionString", "documentation":"

The ID of the table version.

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

A FederatedTable structure that references an entity outside the Glue Data Catalog.

" } }, "documentation":"

Represents a collection of related data organized in columns and rows.

" @@ -17987,7 +18464,7 @@ }, "Owner":{ "shape":"NameString", - "documentation":"

The table owner.

" + "documentation":"

The table owner. Included for Apache Hive compatibility. Not used in the normal course of Glue operations.

" }, "LastAccessTime":{ "shape":"Timestamp", @@ -18011,15 +18488,15 @@ }, "ViewOriginalText":{ "shape":"ViewTextString", - "documentation":"

If the table is a view, the original text of the view; otherwise null.

" + "documentation":"

Included for Apache Hive compatibility. Not used in the normal course of Glue operations. If the table is a VIRTUAL_VIEW, certain Athena configuration encoded in base64.

" }, "ViewExpandedText":{ "shape":"ViewTextString", - "documentation":"

If the table is a view, the expanded text of the view; otherwise null.

" + "documentation":"

Included for Apache Hive compatibility. Not used in the normal course of Glue operations.

" }, "TableType":{ "shape":"TableTypeString", - "documentation":"

The type of this table (EXTERNAL_TABLE, VIRTUAL_VIEW, etc.).

" + "documentation":"

The type of this table. Glue will create tables with the EXTERNAL_TABLE type. Other services, such as Athena, may create tables with additional table types.

Glue related table types:

EXTERNAL_TABLE

Hive compatible attribute - indicates a non-Hive managed table.

GOVERNED

Used by Lake Formation. The Glue Data Catalog understands GOVERNED.

" }, "Parameters":{ "shape":"ParametersMap", @@ -18135,7 +18612,8 @@ "avro", "orc", "parquet", - "hudi" + "hudi", + "delta" ] }, "TaskRun":{ @@ -18612,10 +19090,20 @@ "UnfilteredPartition":{ "type":"structure", "members":{ - "Partition":{"shape":"Partition"}, - "AuthorizedColumns":{"shape":"NameStringList"}, - "IsRegisteredWithLakeFormation":{"shape":"Boolean"} - } + "Partition":{ + "shape":"Partition", + "documentation":"

The partition object.

" + }, + "AuthorizedColumns":{ + "shape":"NameStringList", + "documentation":"

The list of columns the user has permissions to access.

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

A Boolean value indicating that the partition location is registered with Lake Formation.

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

A partition that contains unfiltered metadata.

" }, "UnfilteredPartitionList":{ "type":"list", @@ -18987,10 +19475,6 @@ "shape":"NameString", "documentation":"

The name of the data quality ruleset.

" }, - "UpdatedName":{ - "shape":"NameString", - "documentation":"

The new name of the ruleset, if you are renaming it.

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

A description of the ruleset.

" diff --git a/services/grafana/pom.xml b/services/grafana/pom.xml index 0b0e904fafa9..637e19901e47 100644 --- a/services/grafana/pom.xml +++ b/services/grafana/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT grafana AWS Java SDK :: Services :: Grafana diff --git a/services/grafana/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/grafana/src/main/resources/codegen-resources/endpoint-rule-set.json index 270d769edf9c..d46f7374131c 100644 --- a/services/grafana/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/grafana/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,174 +111,428 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://grafana-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://grafana-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://grafana-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://grafana.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", "rules": [ { - "conditions": [], + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-northeast-1" + ] + } + ], "endpoint": { - "url": "https://grafana-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://grafana.ap-northeast-1.amazonaws.com", "properties": {}, "headers": {} }, "type": "endpoint" - } - ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", - "argv": [ + "conditions": [ { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-northeast-2" + ] + } + ], + "endpoint": { + "url": "https://grafana.ap-northeast-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-southeast-1" + ] + } + ], + "endpoint": { + "url": "https://grafana.ap-southeast-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-southeast-2" + ] + } + ], + "endpoint": { + "url": "https://grafana.ap-southeast-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-central-1" + ] + } + ], + "endpoint": { + "url": "https://grafana.eu-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-west-1" + ] + } + ], + "endpoint": { + "url": "https://grafana.eu-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-west-2" + ] + } + ], + "endpoint": { + "url": "https://grafana.eu-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://grafana.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-2" + ] + } + ], + "endpoint": { + "url": "https://grafana.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-west-2" + ] + } + ], + "endpoint": { + "url": "https://grafana.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://grafana.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://grafana.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://grafana.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/grafana/src/main/resources/codegen-resources/endpoint-tests.json b/services/grafana/src/main/resources/codegen-resources/endpoint-tests.json index 0c4a3e89d75f..83d5051c2d0a 100644 --- a/services/grafana/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/grafana/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,527 +1,346 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.eu-central-1.amazonaws.com" + "url": "https://grafana.ap-northeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-central-1" + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.eu-central-1.amazonaws.com" + "url": "https://grafana.ap-northeast-2.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" + "Region": "ap-northeast-2" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.us-west-2.amazonaws.com" + "url": "https://grafana.ap-southeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-west-2" + "Region": "ap-southeast-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.us-west-2.amazonaws.com" + "url": "https://grafana.ap-southeast-2.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.eu-west-2.amazonaws.com" + "url": "https://grafana.eu-central-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-2" + "Region": "eu-central-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.eu-west-2.amazonaws.com" + "url": "https://grafana.eu-west-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, "Region": "eu-west-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.eu-west-1.amazonaws.com" + "url": "https://grafana.eu-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-west-1" + "Region": "eu-west-2" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.eu-west-1.amazonaws.com" + "url": "https://grafana.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.ap-northeast-2.amazonaws.com" + "url": "https://grafana.us-east-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-2" + "Region": "us-east-2" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.ap-northeast-2.amazonaws.com" + "url": "https://grafana.us-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-2" + "Region": "us-west-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://grafana-fips.ap-northeast-1.api.aws" + "url": "https://grafana-fips.us-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.ap-northeast-1.amazonaws.com" + "url": "https://grafana-fips.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://grafana.ap-northeast-1.api.aws" + "url": "https://grafana.us-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://grafana.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://grafana-fips.ap-southeast-1.api.aws" + "url": "https://grafana-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.ap-southeast-1.amazonaws.com" + "url": "https://grafana-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://grafana.ap-southeast-1.api.aws" + "url": "https://grafana.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.ap-southeast-1.amazonaws.com" + "url": "https://grafana.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://grafana-fips.ap-southeast-2.api.aws" + "url": "https://grafana-fips.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.ap-southeast-2.amazonaws.com" + "url": "https://grafana-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://grafana.ap-southeast-2.api.aws" + "url": "https://grafana.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.ap-southeast-2.amazonaws.com" + "url": "https://grafana.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://grafana-fips.us-east-1.amazonaws.com" + "url": "https://grafana-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://grafana.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.us-east-1.amazonaws.com" + "url": "https://grafana.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://grafana-fips.us-east-2.amazonaws.com" + "url": "https://grafana-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://grafana.us-east-2.api.aws" + "url": "https://grafana.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, + "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://grafana.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -530,7 +349,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, diff --git a/services/grafana/src/main/resources/codegen-resources/service-2.json b/services/grafana/src/main/resources/codegen-resources/service-2.json index e244b3b5872b..3f7bc1e01f78 100644 --- a/services/grafana/src/main/resources/codegen-resources/service-2.json +++ b/services/grafana/src/main/resources/codegen-resources/service-2.json @@ -323,7 +323,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Use this operation to define the identity provider (IdP) that this workspace authenticates users from, using SAML. You can also map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the Admin and Editor roles in the workspace.

" + "documentation":"

Use this operation to define the identity provider (IdP) that this workspace authenticates users from, using SAML. You can also map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the Admin and Editor roles in the workspace.

Changes to the authentication method for a workspace may take a few minutes to take effect.

" }, "UpdateWorkspaceConfiguration":{ "name":"UpdateWorkspaceConfiguration", @@ -624,13 +624,17 @@ "documentation":"

The configuration string for the workspace that you create. For more information about the format and configuration options available, see Working in your Grafana workspace.

", "jsonvalue":true }, + "networkAccessControl":{ + "shape":"NetworkAccessConfiguration", + "documentation":"

Configuration for network access to your workspace.

When this is configured, only listed IP addresses and VPC endpoints will be able to access your workspace. Standard Grafana authentication and authorization will still be required.

If this is not configured, or is removed, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required.

" + }, "organizationRoleName":{ "shape":"OrganizationRoleName", "documentation":"

The name of an IAM role that already exists to use with Organizations to access Amazon Web Services data sources and notification channels in other accounts in an organization.

" }, "permissionType":{ "shape":"PermissionType", - "documentation":"

If you specify SERVICE_MANAGED on AWS Grafana console, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels. In the CLI mode, the permissionType SERVICE_MANAGED will not create the IAM role for you. The ability for the Amazon Managed Grafana to create the IAM role on behalf of the user is supported only in the Amazon Managed Grafana AWS console. Use only the CUSTOMER_MANAGED permission type when creating a workspace in the CLI.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization that is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels.

" + "documentation":"

When creating a workspace through the Amazon Web Services API, CLI or Amazon Web Services CloudFormation, you must manage IAM roles and provision the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

You must also specify a workspaceRoleArn for a role that you will manage for the workspace to use when accessing those datasources and notification channels.

The ability for Amazon Managed Grafana to create and update IAM roles on behalf of the user is supported only in the Amazon Managed Grafana console, where this value may be set to SERVICE_MANAGED.

Use only the CUSTOMER_MANAGED permission type when creating a workspace with the API, CLI or Amazon Web Services CloudFormation.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels.

" }, "stackSetName":{ "shape":"StackSetName", @@ -646,7 +650,7 @@ }, "workspaceDataSources":{ "shape":"DataSourceTypesList", - "documentation":"

Specify the Amazon Web Services data sources that you want to be queried in this workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to read data from these sources. You must still add them as data sources in the Grafana console in the workspace.

If you don't specify a data source here, you can still add it as a data source in the workspace console later. However, you will then have to manually configure permissions for it.

" + "documentation":"

This parameter is for internal use only, and should not be used.

" }, "workspaceDescription":{ "shape":"Description", @@ -666,7 +670,7 @@ }, "workspaceRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The workspace needs an IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. If you already have a role that you want to use, specify it here. The permission type should be set to CUSTOMER_MANAGED.

" + "documentation":"

Specified the IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from, including both data sources and notification channels. You are responsible for managing the permissions for this role as new data sources or notification channels are added.

" } } }, @@ -1051,6 +1055,24 @@ } }, "LoginValidityDuration":{"type":"integer"}, + "NetworkAccessConfiguration":{ + "type":"structure", + "required":[ + "prefixListIds", + "vpceIds" + ], + "members":{ + "prefixListIds":{ + "shape":"PrefixListIds", + "documentation":"

An array of prefix list IDs. A prefix list is a list of CIDR ranges of IP addresses. The IP addresses specified are allowed to access your workspace. If the list is not included in the configuration then no IP addresses will be allowed to access the workspace. You create a prefix list using the Amazon VPC console.

Prefix list IDs have the format pl-1a2b3c4d .

For more information about prefix lists, see Group CIDR blocks using managed prefix listsin the Amazon Virtual Private Cloud User Guide.

" + }, + "vpceIds":{ + "shape":"VpceIds", + "documentation":"

An array of Amazon VPC endpoint IDs for the workspace. You can create VPC endpoints to your Amazon Managed Grafana workspace for access from within a VPC. If a NetworkAccessConfiguration is specified then only VPC endpoints specified here will be allowed to access the workspace.

VPC endpoint IDs have the format vpce-1a2b3c4d .

For more information about creating an interface VPC endpoint, see Interface VPC endpoints in the Amazon Managed Grafana User Guide.

The only VPC endpoints that can be specified here are interface VPC endpoints for Grafana workspaces (using the com.amazonaws.[region].grafana-workspace service endpoint). Other VPC endpoints will be ignored.

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

The configuration settings for in-bound network access to your workspace.

When this is configured, only listed IP addresses and VPC endpoints will be able to access your workspace. Standard Grafana authentication and authorization will still be required.

If this is not configured, or is removed, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required.

" + }, "NotificationDestinationType":{ "type":"string", "enum":["SNS"] @@ -1106,6 +1128,15 @@ "SERVICE_MANAGED" ] }, + "PrefixListId":{ + "type":"string", + "max":100, + "min":1 + }, + "PrefixListIds":{ + "type":"list", + "member":{"shape":"PrefixListId"} + }, "ResourceNotFoundException":{ "type":"structure", "required":[ @@ -1549,13 +1580,21 @@ "shape":"AccountAccessType", "documentation":"

Specifies whether the workspace can access Amazon Web Services resources in this Amazon Web Services account only, or whether it can also access Amazon Web Services resources in other accounts in the same organization. If you specify ORGANIZATION, you must specify which organizational units the workspace can access in the workspaceOrganizationalUnits parameter.

" }, + "networkAccessControl":{ + "shape":"NetworkAccessConfiguration", + "documentation":"

The configuration settings for network access to your workspace.

When this is configured, only listed IP addresses and VPC endpoints will be able to access your workspace. Standard Grafana authentication and authorization will still be required.

If this is not configured, or is removed, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required.

" + }, "organizationRoleName":{ "shape":"OrganizationRoleName", - "documentation":"

The name of an IAM role that already exists to use to access resources through Organizations.

" + "documentation":"

The name of an IAM role that already exists to use to access resources through Organizations. This can only be used with a workspace that has the permissionType set to CUSTOMER_MANAGED.

" }, "permissionType":{ "shape":"PermissionType", - "documentation":"

If you specify Service Managed, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

" + "documentation":"

Use this parameter if you want to change a workspace from SERVICE_MANAGED to CUSTOMER_MANAGED. This allows you to manage the permissions that the workspace uses to access datasources and notification channels. If the workspace is in a member Amazon Web Services account of an organization, and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

If you specify this as CUSTOMER_MANAGED, you must also specify a workspaceRoleArn that the workspace will use for accessing Amazon Web Services resources.

For more information on the role and permissions needed, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

Do not use this to convert a CUSTOMER_MANAGED workspace to SERVICE_MANAGED. Do not include this parameter if you want to leave the workspace as SERVICE_MANAGED.

You can convert a CUSTOMER_MANAGED workspace to SERVICE_MANAGED using the Amazon Managed Grafana console. For more information, see Managing permissions for data sources and notification channels.

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

Whether to remove the network access configuration from the workspace.

Setting this to true and providing a networkAccessControl to set will return an error.

If you remove this configuration by setting this to true, then all IP addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization will still be required.

" }, "removeVpcConfiguration":{ "shape":"Boolean", @@ -1571,7 +1610,7 @@ }, "workspaceDataSources":{ "shape":"DataSourceTypesList", - "documentation":"

Specify the Amazon Web Services data sources that you want to be queried in this workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to read data from these sources. You must still add them as data sources in the Grafana console in the workspace.

If you don't specify a data source here, you can still add it as a data source later in the workspace console. However, you will then have to manually configure permissions for it.

" + "documentation":"

This parameter is for internal use only, and should not be used.

" }, "workspaceDescription":{ "shape":"Description", @@ -1597,7 +1636,7 @@ }, "workspaceRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The workspace needs an IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. If you already have a role that you want to use, specify it here. If you omit this field and you specify some Amazon Web Services resources in workspaceDataSources or workspaceNotificationDestinations, a new IAM role with the necessary permissions is automatically created.

" + "documentation":"

Specifies an IAM role that grants permissions to Amazon Web Services resources that the workspace accesses, such as data sources and notification channels. If this workspace has permissionType CUSTOMER_MANAGED, then this role is required.

" } } }, @@ -1707,14 +1746,23 @@ "members":{ "securityGroupIds":{ "shape":"SecurityGroupIds", - "documentation":"

The list of Amazon EC2 security group IDs attached to the Amazon VPC for your Grafana workspace to connect.

" + "documentation":"

The list of Amazon EC2 security group IDs attached to the Amazon VPC for your Grafana workspace to connect. Duplicates not allowed.

" }, "subnetIds":{ "shape":"SubnetIds", - "documentation":"

The list of Amazon EC2 subnet IDs created in the Amazon VPC for your Grafana workspace to connect.

" + "documentation":"

The list of Amazon EC2 subnet IDs created in the Amazon VPC for your Grafana workspace to connect. Duplicates not allowed.

" } }, - "documentation":"

The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.

" + "documentation":"

The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.

Provided securityGroupIds and subnetIds must be part of the same VPC.

" + }, + "VpceId":{ + "type":"string", + "max":100, + "min":1 + }, + "VpceIds":{ + "type":"list", + "member":{"shape":"VpceId"} }, "WorkspaceDescription":{ "type":"structure", @@ -1743,7 +1791,7 @@ }, "dataSources":{ "shape":"DataSourceTypesList", - "documentation":"

Specifies the Amazon Web Services data sources that have been configured to have IAM roles and permissions created to allow Amazon Managed Grafana to read data from these sources.

" + "documentation":"

Specifies the Amazon Web Services data sources that have been configured to have IAM roles and permissions created to allow Amazon Managed Grafana to read data from these sources.

This list is only used when the workspace was created through the Amazon Web Services console, and the permissionType is SERVICE_MANAGED.

" }, "description":{ "shape":"Description", @@ -1785,6 +1833,10 @@ "shape":"WorkspaceName", "documentation":"

The name of the workspace.

" }, + "networkAccessControl":{ + "shape":"NetworkAccessConfiguration", + "documentation":"

The configuration settings for network access to your workspace.

" + }, "notificationDestinations":{ "shape":"NotificationDestinationsList", "documentation":"

The Amazon Web Services notification channels that Amazon Managed Grafana can automatically create IAM roles and permissions for, to allow Amazon Managed Grafana to use these channels.

" @@ -1799,7 +1851,7 @@ }, "permissionType":{ "shape":"PermissionType", - "documentation":"

If this is Service Managed, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

If this is CUSTOMER_MANAGED, you manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

" + "documentation":"

If this is SERVICE_MANAGED, and the workplace was created through the Amazon Managed Grafana console, then Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

If this is CUSTOMER_MANAGED, you must manage those roles and permissions yourself.

If you are working with a workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, this parameter must be set to CUSTOMER_MANAGED.

For more information about converting between customer and service managed, see Managing permissions for data sources and notification channels. For more information about the roles and permissions that must be managed for customer managed workspaces, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

" }, "stackSetName":{ "shape":"StackSetName", diff --git a/services/greengrass/pom.xml b/services/greengrass/pom.xml index 678bd4c756aa..ce86a35e3401 100644 --- a/services/greengrass/pom.xml +++ b/services/greengrass/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT greengrass AWS Java SDK :: Services :: AWS Greengrass diff --git a/services/greengrassv2/pom.xml b/services/greengrassv2/pom.xml index 18a33e954476..9439b1012507 100644 --- a/services/greengrassv2/pom.xml +++ b/services/greengrassv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT greengrassv2 AWS Java SDK :: Services :: Greengrass V2 diff --git a/services/greengrassv2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/greengrassv2/src/main/resources/codegen-resources/endpoint-rule-set.json index d5cf41cb93e1..99169a08f9da 100644 --- a/services/greengrassv2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/greengrassv2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,96 +111,253 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://greengrass.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://greengrass.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://greengrass-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://greengrass-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -233,13 +370,21 @@ { "ref": "Region" }, - "us-gov-east-1" + "dataplane-us-gov-east-1" ] } ], "endpoint": { - "url": "https://greengrass.us-gov-east-1.amazonaws.com", - "properties": {}, + "url": "https://greengrass-ats.iot.us-gov-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "greengrass", + "signingRegion": "us-gov-east-1" + } + ] + }, "headers": {} }, "type": "endpoint" @@ -252,13 +397,21 @@ { "ref": "Region" }, - "us-gov-west-1" + "dataplane-us-gov-west-1" ] } ], "endpoint": { - "url": "https://greengrass.us-gov-west-1.amazonaws.com", - "properties": {}, + "url": "https://greengrass-ats.iot.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "greengrass", + "signingRegion": "us-gov-west-1" + } + ] + }, "headers": {} }, "type": "endpoint" @@ -266,7 +419,7 @@ { "conditions": [], "endpoint": { - "url": "https://greengrass-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://greengrass.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -275,178 +428,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://greengrass.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "dataplane-us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://greengrass-ats.iot.us-gov-east-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-east-1", - "signingName": "greengrass" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "dataplane-us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://greengrass-ats.iot.us-gov-west-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "greengrass" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://greengrass.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://greengrass.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://greengrass.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/greengrassv2/src/main/resources/codegen-resources/endpoint-tests.json b/services/greengrassv2/src/main/resources/codegen-resources/endpoint-tests.json index 9bf4ab743652..7a7a0020ca93 100644 --- a/services/greengrassv2/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/greengrassv2/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,428 +1,472 @@ { "testCases": [ { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://greengrass.ap-northeast-1.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", + "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-iso-east-1.c2s.ic.gov" + "url": "https://greengrass.ap-northeast-2.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", + "Region": "ap-northeast-2", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.cn-north-1.amazonaws.com.cn" + "url": "https://greengrass.ap-south-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", + "Region": "ap-south-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://greengrass.ap-southeast-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass-fips.cn-north-1.amazonaws.com.cn" + "url": "https://greengrass.ap-southeast-2.amazonaws.com" } }, "params": { - "Region": "cn-north-1", + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://greengrass.ca-central-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": true, + "Region": "ca-central-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://greengrass.eu-central-1.amazonaws.com" } }, "params": { - "Region": "us-isob-east-1", + "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-isob-east-1.sc2s.sgov.gov" + "url": "https://greengrass.eu-west-1.amazonaws.com" } }, "params": { - "Region": "us-isob-east-1", + "Region": "eu-west-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-gov-east-1.amazonaws.com" + "url": "https://greengrass.eu-west-2.amazonaws.com" } }, "params": { - "Region": "us-gov-east-1", + "Region": "eu-west-2", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-gov-east-1.amazonaws.com" + "url": "https://greengrass.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-gov-east-1", + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region dataplane-us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "signingName": "greengrass", - "name": "sigv4", - "signingRegion": "us-gov-west-1" - } - ] - }, - "url": "https://greengrass-ats.iot.us-gov-west-1.amazonaws.com" + "url": "https://greengrass.us-east-2.amazonaws.com" } }, "params": { - "Region": "dataplane-us-gov-west-1", + "Region": "us-east-2", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region dataplane-us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "signingName": "greengrass", - "name": "sigv4", - "signingRegion": "us-gov-east-1" - } - ] - }, - "url": "https://greengrass-ats.iot.us-gov-east-1.amazonaws.com" + "url": "https://greengrass.us-west-2.amazonaws.com" } }, "params": { - "Region": "dataplane-us-gov-east-1", + "Region": "us-west-2", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://greengrass.us-gov-west-1.amazonaws.com" + "url": "https://greengrass-fips.us-east-1.api.aws" } }, "params": { - "Region": "us-gov-west-1", - "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-gov-west-1.amazonaws.com" + "url": "https://greengrass-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-gov-west-1", + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://greengrass-fips.us-gov-east-1.api.aws" + "url": "https://greengrass.us-east-1.api.aws" } }, "params": { - "Region": "us-gov-east-1", + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-gov-east-1.api.aws" + "url": "https://greengrass.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-gov-east-1", - "UseDualStack": true, + "Region": "cn-north-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://greengrass.ap-northeast-2.amazonaws.com" + "url": "https://greengrass-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "ap-northeast-2", - "UseDualStack": false, - "UseFIPS": false + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.ap-northeast-1.amazonaws.com" + "url": "https://greengrass-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "ap-northeast-1", + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://greengrass.ca-central-1.amazonaws.com" + "url": "https://greengrass.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "ca-central-1", - "UseDualStack": false, + "Region": "cn-north-1", + "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region dataplane-us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-east-2.amazonaws.com" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "greengrass", + "signingRegion": "us-gov-east-1" + } + ] + }, + "url": "https://greengrass-ats.iot.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-east-2", + "Region": "dataplane-us-gov-east-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region dataplane-us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.ap-south-1.amazonaws.com" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "greengrass", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://greengrass-ats.iot.us-gov-west-1.amazonaws.com" } }, "params": { - "Region": "ap-south-1", + "Region": "dataplane-us-gov-west-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-east-1.amazonaws.com" + "url": "https://greengrass.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-east-1", + "Region": "us-gov-east-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.ap-southeast-2.amazonaws.com" + "url": "https://greengrass.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "ap-southeast-2", + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.ap-southeast-1.amazonaws.com" + "url": "https://greengrass.us-gov-west-1.amazonaws.com" } }, "params": { - "Region": "ap-southeast-1", + "Region": "us-gov-west-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.eu-central-1.amazonaws.com" + "url": "https://greengrass.us-gov-west-1.amazonaws.com" } }, "params": { - "Region": "eu-central-1", + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://greengrass.us-west-2.amazonaws.com" + "url": "https://greengrass-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": false + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://greengrass.eu-west-2.amazonaws.com" + "url": "https://greengrass.us-gov-east-1.api.aws" } }, "params": { - "Region": "eu-west-2", - "UseDualStack": false, + "Region": "us-gov-east-1", + "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.eu-west-1.amazonaws.com" + "url": "https://greengrass-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "eu-west-1", + "Region": "us-iso-east-1", "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass-fips.us-east-1.api.aws" + "url": "https://greengrass.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-east-1", + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", "UseDualStack": true, "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass-fips.us-east-1.amazonaws.com" + "url": "https://greengrass-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-1", + "Region": "us-isob-east-1", "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://greengrass.us-east-1.api.aws" + "url": "https://greengrass.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-1", - "UseDualStack": true, + "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -435,6 +479,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { @@ -458,6 +515,12 @@ "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/greengrassv2/src/main/resources/codegen-resources/service-2.json b/services/greengrassv2/src/main/resources/codegen-resources/service-2.json index 90c69eeffff9..b443c43b4ee2 100644 --- a/services/greengrassv2/src/main/resources/codegen-resources/service-2.json +++ b/services/greengrassv2/src/main/resources/codegen-resources/service-2.json @@ -1482,7 +1482,7 @@ }, "coreDeviceExecutionStatus":{ "shape":"EffectiveDeploymentExecutionStatus", - "documentation":"

The status of the deployment job on the Greengrass core device.

" + "documentation":"

The status of the deployment job on the Greengrass core device.

  • IN_PROGRESS – The deployment job is running.

  • QUEUED – The deployment job is in the job queue and waiting to run.

  • FAILED – The deployment failed. For more information, see the statusDetails field.

  • COMPLETED – The deployment to an IoT thing was completed successfully.

  • TIMED_OUT – The deployment didn't complete in the allotted time.

  • CANCELED – The deployment was canceled by the user.

  • REJECTED – The deployment was rejected. For more information, see the statusDetails field.

  • SUCCEEDED – The deployment to an IoT thing group was completed successfully.

" }, "reason":{ "shape":"Reason", @@ -1530,7 +1530,8 @@ "COMPLETED", "TIMED_OUT", "CANCELED", - "REJECTED" + "REJECTED", + "SUCCEEDED" ] }, "EffectiveDeploymentStatusDetails":{ @@ -1825,11 +1826,11 @@ }, "lastReportedTimestamp":{ "shape":"Timestamp", - "documentation":"

The last time the Greengrass core device sent a message containing a certain component to the Amazon Web Services Cloud.

A component does not need to see a state change for this field to update.

" + "documentation":"

The last time the Greengrass core device sent a message containing a component's state to the Amazon Web Services Cloud.

A component does not need to see a state change for this field to update.

" }, "lastInstallationSource":{ "shape":"NonEmptyString", - "documentation":"

The most recent deployment source that brought the component to the Greengrass core device. For a thing group deployment or thing deployment, the source will be the The ID of the deployment. and for local deployments it will be LOCAL.

" + "documentation":"

The most recent deployment source that brought the component to the Greengrass core device. For a thing group deployment or thing deployment, the source will be the The ID of the deployment. and for local deployments it will be LOCAL.

Any deployment will attempt to reinstall currently broken components on the device, which will update the last installation source.

" }, "lifecycleStatusCodes":{ "shape":"InstalledComponentLifecycleStatusCodeList", diff --git a/services/groundstation/pom.xml b/services/groundstation/pom.xml index 86c12eae2bdf..4418c29b5bd1 100644 --- a/services/groundstation/pom.xml +++ b/services/groundstation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT groundstation AWS Java SDK :: Services :: GroundStation diff --git a/services/groundstation/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/groundstation/src/main/resources/codegen-resources/endpoint-rule-set.json index c44dafdae7ed..56c7bc1bf50f 100644 --- a/services/groundstation/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/groundstation/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://groundstation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://groundstation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://groundstation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://groundstation-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://groundstation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://groundstation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://groundstation.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://groundstation.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/groundstation/src/main/resources/codegen-resources/endpoint-tests.json b/services/groundstation/src/main/resources/codegen-resources/endpoint-tests.json index 6a17ce7a7c6d..7869aa5ffc58 100644 --- a/services/groundstation/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/groundstation/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,94 @@ { "testCases": [ { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.us-gov-east-1.api.aws" + "url": "https://groundstation.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.us-gov-east-1.amazonaws.com" + "url": "https://groundstation.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "ap-northeast-2" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.us-gov-east-1.api.aws" + "url": "https://groundstation.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.us-gov-east-1.amazonaws.com" + "url": "https://groundstation.eu-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "eu-central-1" } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.af-south-1.amazonaws.com" + "url": "https://groundstation.eu-north-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "af-south-1" + "Region": "eu-north-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.us-west-2.amazonaws.com" + "url": "https://groundstation.eu-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-west-2" + "Region": "eu-west-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.us-west-2.amazonaws.com" + "url": "https://groundstation.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-west-2" + "Region": "me-south-1" } }, { @@ -105,237 +105,270 @@ } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.eu-north-1.amazonaws.com" + "url": "https://groundstation.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-north-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.ap-southeast-2.amazonaws.com" + "url": "https://groundstation-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "us-east-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.me-south-1.amazonaws.com" + "url": "https://groundstation.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "me-south-1" + "Region": "us-east-2" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.eu-west-1.amazonaws.com" + "url": "https://groundstation-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "eu-west-1" + "Region": "us-east-2" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.us-east-2.amazonaws.com" + "url": "https://groundstation.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-west-2" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.us-east-2.amazonaws.com" + "url": "https://groundstation-fips.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-west-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://groundstation.eu-central-1.amazonaws.com" + "url": "https://groundstation-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://groundstation.ap-northeast-2.amazonaws.com" + "url": "https://groundstation.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://groundstation.us-east-1.amazonaws.com" + "url": "https://groundstation-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.us-east-1.amazonaws.com" + "url": "https://groundstation-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.us-east-1.api.aws" + "url": "https://groundstation.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.us-east-1.api.aws" + "url": "https://groundstation.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://groundstation-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://groundstation.us-iso-east-1.c2s.ic.gov" + "url": "https://groundstation.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://groundstation.us-gov-east-1.amazonaws.com" } }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, "params": { "UseFIPS": true, "UseDualStack": true, - "Region": "cn-north-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation-fips.cn-north-1.amazonaws.com.cn" + "url": "https://groundstation-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "cn-north-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://groundstation.cn-north-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "cn-north-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://groundstation.cn-north-1.amazonaws.com.cn" + "url": "https://groundstation.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "cn-north-1" + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { @@ -351,6 +384,17 @@ "Region": "us-isob-east-1" } }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, { "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { @@ -365,7 +409,7 @@ } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -378,6 +422,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { @@ -401,6 +458,12 @@ "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/groundstation/src/main/resources/codegen-resources/service-2.json b/services/groundstation/src/main/resources/codegen-resources/service-2.json index b8d81dba2d0c..2151e4f35af2 100644 --- a/services/groundstation/src/main/resources/codegen-resources/service-2.json +++ b/services/groundstation/src/main/resources/codegen-resources/service-2.json @@ -208,7 +208,7 @@ {"shape":"DependencyException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets the latest configuration information for a registered agent.

" + "documentation":"

For use by AWS Ground Station Agent and shouldn't be called directly.

Gets the latest configuration information for a registered agent.

" }, "GetConfig":{ "name":"GetConfig", @@ -432,7 +432,7 @@ {"shape":"DependencyException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Registers a new agent with AWS Groundstation.

" + "documentation":"

For use by AWS Ground Station Agent and shouldn't be called directly.

Registers a new agent with AWS Ground Station.

" }, "ReserveContact":{ "name":"ReserveContact", @@ -497,7 +497,7 @@ {"shape":"DependencyException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Update the status of the agent.

", + "documentation":"

For use by AWS Ground Station Agent and shouldn't be called directly.

Update the status of the agent.

", "idempotent":true }, "UpdateConfig":{ @@ -559,16 +559,25 @@ "min":1, "pattern":"^[\\w-]+$" }, + "AgentCpuCoresList":{ + "type":"list", + "member":{"shape":"Integer"}, + "max":256, + "min":0 + }, "AgentDetails":{ "type":"structure", "required":[ "agentVersion", "componentVersions", "instanceId", - "instanceType", - "reservedCpuCores" + "instanceType" ], "members":{ + "agentCpuCores":{ + "shape":"AgentCpuCoresList", + "documentation":"

List of CPU cores reserved for the agent.

" + }, "agentVersion":{ "shape":"VersionString", "documentation":"

Current agent version.

" @@ -586,8 +595,8 @@ "documentation":"

Type of EC2 instance agent is running on.

" }, "reservedCpuCores":{ - "shape":"ReservedCpuCoresList", - "documentation":"

Number of Cpu cores reserved for agent.

" + "shape":"AgentCpuCoresList", + "documentation":"

This field should not be used. Use agentCpuCores instead.

List of CPU cores reserved for processes other than the agent running on the EC2 instance.

" } }, "documentation":"

Detailed information about the agent.

" @@ -766,6 +775,31 @@ "max":20, "min":1 }, + "CapabilityHealth":{ + "type":"string", + "enum":[ + "UNHEALTHY", + "HEALTHY" + ] + }, + "CapabilityHealthReason":{ + "type":"string", + "enum":[ + "NO_REGISTERED_AGENT", + "INVALID_IP_OWNERSHIP", + "NOT_AUTHORIZED_TO_CREATE_SLR", + "UNVERIFIED_IP_OWNERSHIP", + "INITIALIZING_DATAPLANE", + "DATAPLANE_FAILURE", + "HEALTHY" + ] + }, + "CapabilityHealthReasonList":{ + "type":"list", + "member":{"shape":"CapabilityHealthReason"}, + "max":500, + "min":0 + }, "ComponentStatusData":{ "type":"structure", "required":[ @@ -788,7 +822,7 @@ "documentation":"

Capability ARN of the component.

" }, "componentType":{ - "shape":"ComponentType", + "shape":"ComponentTypeString", "documentation":"

The Component type.

" }, "dataflowId":{ @@ -810,15 +844,11 @@ "type":"list", "member":{"shape":"ComponentStatusData"}, "max":20, - "min":1 + "min":0 }, - "ComponentType":{ + "ComponentTypeString":{ "type":"string", - "enum":[ - "LAMINAR_FLOW", - "PRISM", - "DIGITIZER" - ] + "pattern":"^[a-zA-Z0-9_]{1,64}$" }, "ComponentVersion":{ "type":"structure", @@ -828,7 +858,7 @@ ], "members":{ "componentType":{ - "shape":"ComponentType", + "shape":"ComponentTypeString", "documentation":"

Component type.

" }, "versions":{ @@ -1085,11 +1115,11 @@ "members":{ "contactPostPassDurationSeconds":{ "shape":"DataflowEndpointGroupDurationInSeconds", - "documentation":"

Amount of time, in seconds, after a contact ends for the contact to remain in a POSTPASS state. A CloudWatch event is emitted when the contact enters and exits the POSTPASS state.

" + "documentation":"

Amount of time, in seconds, after a contact ends that the Ground Station Dataflow Endpoint Group will be in a POSTPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the POSTPASS state.

" }, "contactPrePassDurationSeconds":{ "shape":"DataflowEndpointGroupDurationInSeconds", - "documentation":"

Amount of time, in seconds, prior to contact start for the contact to remain in a PREPASS state. A CloudWatch event is emitted when the contact enters and exits the PREPASS state.

" + "documentation":"

Amount of time, in seconds, before a contact starts that the Ground Station Dataflow Endpoint Group will be in a PREPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the PREPASS state.

" }, "endpointDetails":{ "shape":"EndpointDetailsList", @@ -1645,6 +1675,14 @@ "shape":"DataflowEndpoint", "documentation":"

A dataflow endpoint.

" }, + "healthReasons":{ + "shape":"CapabilityHealthReasonList", + "documentation":"

Health reasons for a dataflow endpoint. This field is ignored when calling CreateDataflowEndpointGroup.

" + }, + "healthStatus":{ + "shape":"CapabilityHealth", + "documentation":"

A dataflow endpoint health status. This field is ignored when calling CreateDataflowEndpointGroup.

" + }, "securityDetails":{ "shape":"SecurityDetails", "documentation":"

Endpoint security details including a list of subnets, a list of security groups and a role to connect streams to instances.

" @@ -1957,11 +1995,11 @@ "members":{ "contactPostPassDurationSeconds":{ "shape":"DataflowEndpointGroupDurationInSeconds", - "documentation":"

Amount of time, in seconds, after a contact ends for the contact to remain in a POSTPASS state. A CloudWatch event is emitted when the contact enters and exits the POSTPASS state.

" + "documentation":"

Amount of time, in seconds, after a contact ends that the Ground Station Dataflow Endpoint Group will be in a POSTPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the POSTPASS state.

" }, "contactPrePassDurationSeconds":{ "shape":"DataflowEndpointGroupDurationInSeconds", - "documentation":"

Amount of time, in seconds, prior to contact start for the contact to remain in a PREPASS state. A CloudWatch event is emitted when the contact enters and exits the PREPASS state.

" + "documentation":"

Amount of time, in seconds, before a contact starts that the Ground Station Dataflow Endpoint Group will be in a PREPASS state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the PREPASS state.

" }, "dataflowEndpointGroupArn":{ "shape":"DataflowEndpointGroupArn", @@ -2692,7 +2730,7 @@ }, "discoveryData":{ "shape":"DiscoveryData", - "documentation":"

Data for associating and agent with the capabilities it is managing.

" + "documentation":"

Data for associating an agent with the capabilities it is managing.

" } } }, @@ -2742,12 +2780,6 @@ }, "documentation":"

" }, - "ReservedCpuCoresList":{ - "type":"list", - "member":{"shape":"Integer"}, - "max":256, - "min":1 - }, "ResourceLimitExceededException":{ "type":"structure", "members":{ diff --git a/services/guardduty/pom.xml b/services/guardduty/pom.xml index 89f176d848ce..d69a503be1af 100644 --- a/services/guardduty/pom.xml +++ b/services/guardduty/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 guardduty diff --git a/services/guardduty/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/guardduty/src/main/resources/codegen-resources/endpoint-rule-set.json index 90f83fd39021..bd3e1c6f7666 100644 --- a/services/guardduty/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/guardduty/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://guardduty-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://guardduty-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://guardduty.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://guardduty.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://guardduty-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://guardduty-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://guardduty.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://guardduty.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://guardduty.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://guardduty.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/guardduty/src/main/resources/codegen-resources/endpoint-tests.json b/services/guardduty/src/main/resources/codegen-resources/endpoint-tests.json index 75c66c71b9ac..ac82b920c939 100644 --- a/services/guardduty/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/guardduty/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,250 +1,120 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ap-south-1.amazonaws.com" + "url": "https://guardduty.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-south-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" + "Region": "af-south-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.ap-south-1.amazonaws.com" + "url": "https://guardduty.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-1" + "UseFIPS": false, + "Region": "ap-east-1" } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.eu-south-1.amazonaws.com" + "url": "https://guardduty.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-south-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-1" + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.eu-south-1.amazonaws.com" + "url": "https://guardduty.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseFIPS": false, + "Region": "ap-northeast-2" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.us-gov-east-1.amazonaws.com" + "url": "https://guardduty.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.us-gov-east-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "Region": "ap-northeast-3" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.us-gov-east-1.amazonaws.com" + "url": "https://guardduty.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-central-1" + "UseFIPS": false, + "Region": "ap-south-1" } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.me-central-1.amazonaws.com" + "url": "https://guardduty.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.me-central-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "me-central-1" + "Region": "ap-southeast-1" } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.me-central-1.amazonaws.com" + "url": "https://guardduty.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ca-central-1.amazonaws.com" + "url": "https://guardduty.ap-southeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ca-central-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" + "Region": "ap-southeast-3" } }, { @@ -255,48 +125,9 @@ } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-central-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" + "Region": "ca-central-1" } }, { @@ -307,1201 +138,421 @@ } }, "params": { - "UseFIPS": false, "UseDualStack": false, + "UseFIPS": false, "Region": "eu-central-1" } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.eu-central-2.amazonaws.com" + "url": "https://guardduty.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-central-2.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-2" + "Region": "eu-north-1" } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.eu-central-2.amazonaws.com" + "url": "https://guardduty.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-1" + "UseFIPS": false, + "Region": "eu-south-1" } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.us-west-1.amazonaws.com" + "url": "https://guardduty.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.us-west-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, "Region": "eu-west-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://guardduty.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://guardduty.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.us-gov-west-1.amazonaws.com" + "url": "https://guardduty.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ap-southeast-1.api.aws" + "url": "https://guardduty.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ap-southeast-1.amazonaws.com" + "url": "https://guardduty.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.ap-southeast-1.api.aws" + "url": "https://guardduty.sa-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.ap-southeast-1.amazonaws.com" + "url": "https://guardduty.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ap-southeast-2.api.aws" + "url": "https://guardduty-fips.us-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ap-southeast-2.amazonaws.com" + "url": "https://guardduty.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2" + "UseFIPS": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.ap-southeast-2.api.aws" + "url": "https://guardduty-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.ap-southeast-2.amazonaws.com" + "url": "https://guardduty.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2" + "UseFIPS": false, + "Region": "us-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://guardduty-fips.us-west-1.amazonaws.com" + } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-east-1" + "Region": "us-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://guardduty.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-iso-east-1" + "UseFIPS": false, + "Region": "us-west-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://guardduty-fips.us-west-2.amazonaws.com" + } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-east-1" + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://guardduty.us-iso-east-1.c2s.ic.gov" + "url": "https://guardduty-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ap-southeast-3.api.aws" + "url": "https://guardduty.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-3" + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.ap-southeast-3.amazonaws.com" + "url": "https://guardduty.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-3" + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.ap-southeast-3.api.aws" + "url": "https://guardduty.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-3" + "Region": "cn-northwest-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://guardduty.ap-southeast-3.amazonaws.com" + "url": "https://guardduty-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-3" + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.us-east-1.api.aws" + "url": "https://guardduty-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.us-east-1.amazonaws.com" + "url": "https://guardduty.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.us-east-1.api.aws" + "url": "https://guardduty.us-gov-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.us-east-1.amazonaws.com" + "url": "https://guardduty.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.us-east-2.api.aws" + "url": "https://guardduty.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.us-east-2.amazonaws.com" + "url": "https://guardduty.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-2" + "UseFIPS": true, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://guardduty.us-east-2.api.aws" + "url": "https://guardduty-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-2" + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://guardduty.us-east-2.amazonaws.com" + "url": "https://guardduty.us-gov-east-1.api.aws" } }, "params": { + "UseDualStack": true, "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://guardduty-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "cn-northwest-1" + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://guardduty-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "cn-northwest-1" + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://guardduty.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "UseDualStack": true, - "Region": "cn-northwest-1" + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://guardduty.cn-northwest-1.amazonaws.com.cn" + "url": "https://guardduty.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "cn-northwest-1" + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { @@ -1510,8 +561,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "UseDualStack": true, + "UseFIPS": true, "Region": "us-isob-east-1" } }, @@ -1523,8 +574,8 @@ } }, "params": { - "UseFIPS": true, "UseDualStack": false, + "UseFIPS": true, "Region": "us-isob-east-1" } }, @@ -1534,8 +585,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "UseDualStack": true, + "UseFIPS": false, "Region": "us-isob-east-1" } }, @@ -1547,33 +598,46 @@ } }, "params": { - "UseFIPS": false, "UseDualStack": false, + "UseFIPS": false, "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, + "UseFIPS": false, "Region": "us-east-1", "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "UseDualStack": false, + "UseFIPS": true, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -1584,11 +648,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "UseDualStack": true, + "UseFIPS": false, "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/guardduty/src/main/resources/codegen-resources/paginators-1.json b/services/guardduty/src/main/resources/codegen-resources/paginators-1.json index fa3d923c7aa0..5d79a528af1d 100644 --- a/services/guardduty/src/main/resources/codegen-resources/paginators-1.json +++ b/services/guardduty/src/main/resources/codegen-resources/paginators-1.json @@ -6,11 +6,22 @@ "limit_key": "MaxResults", "result_key": "Scans" }, + "DescribeOrganizationConfiguration": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "GetUsageStatistics": { "input_token": "NextToken", "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListCoverage": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Resources" + }, "ListDetectors": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/guardduty/src/main/resources/codegen-resources/service-2.json b/services/guardduty/src/main/resources/codegen-resources/service-2.json index 1d78278d9ec8..09c83a471562 100644 --- a/services/guardduty/src/main/resources/codegen-resources/service-2.json +++ b/services/guardduty/src/main/resources/codegen-resources/service-2.json @@ -72,7 +72,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Creates a single Amazon GuardDuty detector. A detector is a resource that represents the GuardDuty service. To start using GuardDuty, you must create a detector in each Region where you enable the service. You can have only one detector per account per Region. All data sources are enabled in a new detector by default.

" + "documentation":"

Creates a single Amazon GuardDuty detector. A detector is a resource that represents the GuardDuty service. To start using GuardDuty, you must create a detector in each Region where you enable the service. You can have only one detector per account per Region. All data sources are enabled in a new detector by default.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "CreateFilter":{ "name":"CreateFilter", @@ -87,7 +87,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Creates a filter using the specified finding criteria.

" + "documentation":"

Creates a filter using the specified finding criteria. The maximum number of saved filters per Amazon Web Services account per Region is 100. For more information, see Quotas for GuardDuty.

" }, "CreateIPSet":{ "name":"CreateIPSet", @@ -117,7 +117,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Creates member accounts of the current Amazon Web Services account by specifying a list of Amazon Web Services account IDs. This step is a prerequisite for managing the associated member accounts either by invitation or through an organization.

When using Create Members as an organizations delegated administrator this action will enable GuardDuty in the added member accounts, with the exception of the organization delegated administrator account, which must enable GuardDuty prior to being added as a member.

If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member accounts and before using Invite Members .

" + "documentation":"

Creates member accounts of the current Amazon Web Services account by specifying a list of Amazon Web Services account IDs. This step is a prerequisite for managing the associated member accounts either by invitation or through an organization.

When using Create Members as an organizations delegated administrator this action will enable GuardDuty in the added member accounts, with the exception of the organization delegated administrator account, which must enable GuardDuty prior to being added as a member.

If you are adding accounts by invitation, use this action after GuardDuty has bee enabled in potential member accounts and before using InviteMembers.

" }, "CreatePublishingDestination":{ "name":"CreatePublishingDestination", @@ -147,7 +147,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Generates example findings of types specified by the list of finding types. If 'NULL' is specified for findingTypes, the API generates example findings of all supported finding types.

" + "documentation":"

Generates sample findings of types specified by the list of finding types. If 'NULL' is specified for findingTypes, the API generates sample findings of all supported finding types.

" }, "CreateThreatIntelSet":{ "name":"CreateThreatIntelSet", @@ -252,7 +252,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.

" + "documentation":"

Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.

With autoEnableOrganizationMembers configuration for your organization set to ALL, you'll receive an error if you attempt to disable GuardDuty for a member account in your organization.

" }, "DeletePublishingDestination":{ "name":"DeletePublishingDestination", @@ -297,7 +297,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Returns a list of malware scans. Each member account can view the malware scans for their own accounts. An administrator can view the malware scans for all the member accounts.

" + "documentation":"

Returns a list of malware scans. Each member account can view the malware scans for their own accounts. An administrator can view the malware scans for all the member accounts.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "DescribeOrganizationConfiguration":{ "name":"DescribeOrganizationConfiguration", @@ -312,7 +312,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Returns information about the account selected as the delegated administrator for GuardDuty.

" + "documentation":"

Returns information about the account selected as the delegated administrator for GuardDuty.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "DescribePublishingDestination":{ "name":"DescribePublishingDestination", @@ -357,7 +357,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Disassociates the current GuardDuty member account from its administrator account.

" + "documentation":"

Disassociates the current GuardDuty member account from its administrator account.

With autoEnableOrganizationMembers configuration for your organization set to ALL, you'll receive an error if you attempt to disable GuardDuty in a member account.

" }, "DisassociateFromMasterAccount":{ "name":"DisassociateFromMasterAccount", @@ -389,7 +389,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Disassociates GuardDuty member accounts (to the current administrator account) specified by the account IDs.

" + "documentation":"

Disassociates GuardDuty member accounts (to the current administrator account) specified by the account IDs.

With autoEnableOrganizationMembers configuration for your organization set to ALL, you'll receive an error if you attempt to disassociate a member account before removing them from your Amazon Web Services organization.

" }, "EnableOrganizationAdminAccount":{ "name":"EnableOrganizationAdminAccount", @@ -421,6 +421,21 @@ ], "documentation":"

Provides the details for the GuardDuty administrator account associated with the current GuardDuty member account.

" }, + "GetCoverageStatistics":{ + "name":"GetCoverageStatistics", + "http":{ + "method":"POST", + "requestUri":"/detector/{detectorId}/coverage/statistics", + "responseCode":200 + }, + "input":{"shape":"GetCoverageStatisticsRequest"}, + "output":{"shape":"GetCoverageStatisticsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Retrieves aggregated statistics for your account. If you are a GuardDuty administrator, you can retrieve the statistics for all the resources associated with the active member accounts in your organization who have enabled EKS Runtime Monitoring and have the GuardDuty agent running on their EKS nodes.

" + }, "GetDetector":{ "name":"GetDetector", "http":{ @@ -434,7 +449,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Retrieves an Amazon GuardDuty detector specified by the detectorId.

" + "documentation":"

Retrieves an Amazon GuardDuty detector specified by the detectorId.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "GetFilter":{ "name":"GetFilter", @@ -524,7 +539,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Returns the details of the malware scan settings.

" + "documentation":"

Returns the details of the malware scan settings.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "GetMasterAccount":{ "name":"GetMasterAccount", @@ -556,7 +571,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Describes which data sources are enabled for the member account's detector.

" + "documentation":"

Describes which data sources are enabled for the member account's detector.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "GetMembers":{ "name":"GetMembers", @@ -633,6 +648,21 @@ ], "documentation":"

Invites other Amazon Web Services accounts (created as members of the current Amazon Web Services account by CreateMembers) to enable GuardDuty, and allow the current Amazon Web Services account to view and manage these accounts' findings on their behalf as the GuardDuty administrator account.

" }, + "ListCoverage":{ + "name":"ListCoverage", + "http":{ + "method":"POST", + "requestUri":"/detector/{detectorId}/coverage", + "responseCode":200 + }, + "input":{"shape":"ListCoverageRequest"}, + "output":{"shape":"ListCoverageResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Lists coverage details for your GuardDuty account. If you're a GuardDuty administrator, you can retrieve all resources associated with the active member accounts in your organization.

Make sure the accounts have EKS Runtime Monitoring enabled and GuardDuty agent running on their EKS nodes.

" + }, "ListDetectors":{ "name":"ListDetectors", "http":{ @@ -796,7 +826,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Turns on GuardDuty monitoring of the specified member accounts. Use this operation to restart monitoring of accounts that you stopped monitoring with the StopMonitoringMembers operation.

" + "documentation":"

Turns on GuardDuty monitoring of the specified member accounts. Use this operation to restart monitoring of accounts that you stopped monitoring with the StopMonitoringMembers operation.

" }, "StopMonitoringMembers":{ "name":"StopMonitoringMembers", @@ -811,7 +841,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Stops GuardDuty monitoring for the specified member accounts. Use the StartMonitoringMembers operation to restart monitoring for those accounts.

" + "documentation":"

Stops GuardDuty monitoring for the specified member accounts. Use the StartMonitoringMembers operation to restart monitoring for those accounts.

With autoEnableOrganizationMembers configuration for your organization set to ALL, you'll receive an error if you attempt to stop monitoring the member accounts in your organization.

" }, "TagResource":{ "name":"TagResource", @@ -871,7 +901,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Updates the Amazon GuardDuty detector specified by the detectorId.

" + "documentation":"

Updates the Amazon GuardDuty detector specified by the detectorId.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "UpdateFilter":{ "name":"UpdateFilter", @@ -931,7 +961,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Updates the malware scan settings.

" + "documentation":"

Updates the malware scan settings.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "UpdateMemberDetectors":{ "name":"UpdateMemberDetectors", @@ -946,7 +976,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Contains information on member accounts to be updated.

" + "documentation":"

Contains information on member accounts to be updated.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "UpdateOrganizationConfiguration":{ "name":"UpdateOrganizationConfiguration", @@ -961,7 +991,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Updates the delegated administrator account with the values provided.

" + "documentation":"

Configures the delegated administrator account with the provided values. You must provide the value for either autoEnableOrganizationMembers or autoEnable.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

" }, "UpdatePublishingDestination":{ "name":"UpdatePublishingDestination", @@ -1140,7 +1170,14 @@ "DataSources":{ "shape":"DataSourcesFreeTrial", "documentation":"

Describes the data source enabled for the GuardDuty member account.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" + }, + "Features":{ + "shape":"FreeTrialFeatureConfigurationsResults", + "documentation":"

A list of features enabled for the GuardDuty account.

", + "locationName":"features" } }, "documentation":"

Provides details of the GuardDuty member account that uses a free trial service.

" @@ -1203,10 +1240,31 @@ "shape":"KubernetesApiCallAction", "documentation":"

Information about the Kubernetes API call action described in this finding.

", "locationName":"kubernetesApiCallAction" + }, + "RdsLoginAttemptAction":{ + "shape":"RdsLoginAttemptAction", + "documentation":"

Information about RDS_LOGIN_ATTEMPT action described in this finding.

", + "locationName":"rdsLoginAttemptAction" } }, "documentation":"

Contains information about actions.

" }, + "AddonDetails":{ + "type":"structure", + "members":{ + "AddonVersion":{ + "shape":"String", + "documentation":"

Version of the installed EKS add-on.

", + "locationName":"addonVersion" + }, + "AddonStatus":{ + "shape":"String", + "documentation":"

Status of the installed EKS add-on.

", + "locationName":"addonStatus" + } + }, + "documentation":"

Information about the installed EKS add-on (GuardDuty security agent).

" + }, "AdminAccount":{ "type":"structure", "members":{ @@ -1294,6 +1352,14 @@ "members":{ } }, + "AutoEnableMembers":{ + "type":"string", + "enum":[ + "NEW", + "ALL", + "NONE" + ] + }, "AwsApiCallAction":{ "type":"structure", "members":{ @@ -1572,6 +1638,16 @@ "type":"list", "member":{"shape":"Container"} }, + "CountByCoverageStatus":{ + "type":"map", + "key":{"shape":"CoverageStatus"}, + "value":{"shape":"Long"} + }, + "CountByResourceType":{ + "type":"map", + "key":{"shape":"ResourceType"}, + "value":{"shape":"Long"} + }, "CountBySeverity":{ "type":"map", "key":{"shape":"String"}, @@ -1593,6 +1669,213 @@ }, "documentation":"

Contains information about the country where the remote IP address is located.

" }, + "CoverageEksClusterDetails":{ + "type":"structure", + "members":{ + "ClusterName":{ + "shape":"String", + "documentation":"

Name of the EKS cluster.

", + "locationName":"clusterName" + }, + "CoveredNodes":{ + "shape":"Long", + "documentation":"

Represents the nodes within the EKS cluster that have a HEALTHY coverage status.

", + "locationName":"coveredNodes" + }, + "CompatibleNodes":{ + "shape":"Long", + "documentation":"

Represents all the nodes within the EKS cluster in your account.

", + "locationName":"compatibleNodes" + }, + "AddonDetails":{ + "shape":"AddonDetails", + "documentation":"

Information about the installed EKS add-on.

", + "locationName":"addonDetails" + } + }, + "documentation":"

Information about the EKS cluster that has a coverage status.

" + }, + "CoverageFilterCondition":{ + "type":"structure", + "members":{ + "Equals":{ + "shape":"Equals", + "documentation":"

Represents an equal condition that is applied to a single field while retrieving the coverage details.

", + "locationName":"equals" + }, + "NotEquals":{ + "shape":"NotEquals", + "documentation":"

Represents a not equal condition that is applied to a single field while retrieving the coverage details.

", + "locationName":"notEquals" + } + }, + "documentation":"

Represents a condition that when matched will be added to the response of the operation.

" + }, + "CoverageFilterCriteria":{ + "type":"structure", + "members":{ + "FilterCriterion":{ + "shape":"CoverageFilterCriterionList", + "documentation":"

Represents a condition that when matched will be added to the response of the operation.

", + "locationName":"filterCriterion" + } + }, + "documentation":"

Represents the criteria used in the filter.

" + }, + "CoverageFilterCriterion":{ + "type":"structure", + "members":{ + "CriterionKey":{ + "shape":"CoverageFilterCriterionKey", + "documentation":"

An enum value representing possible filter fields.

", + "locationName":"criterionKey" + }, + "FilterCondition":{ + "shape":"CoverageFilterCondition", + "documentation":"

Contains information about the condition.

", + "locationName":"filterCondition" + } + }, + "documentation":"

Represents a condition that when matched will be added to the response of the operation.

" + }, + "CoverageFilterCriterionKey":{ + "type":"string", + "enum":[ + "ACCOUNT_ID", + "CLUSTER_NAME", + "RESOURCE_TYPE", + "COVERAGE_STATUS", + "ADDON_VERSION" + ] + }, + "CoverageFilterCriterionList":{ + "type":"list", + "member":{"shape":"CoverageFilterCriterion"}, + "max":50, + "min":0 + }, + "CoverageResource":{ + "type":"structure", + "members":{ + "ResourceId":{ + "shape":"String", + "documentation":"

The unique ID of the resource.

", + "locationName":"resourceId" + }, + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the GuardDuty detector associated with the resource.

", + "locationName":"detectorId" + }, + "AccountId":{ + "shape":"AccountId", + "documentation":"

The unique ID of the Amazon Web Services account.

", + "locationName":"accountId" + }, + "ResourceDetails":{ + "shape":"CoverageResourceDetails", + "documentation":"

Information about the resource for which the coverage statistics are retrieved.

", + "locationName":"resourceDetails" + }, + "CoverageStatus":{ + "shape":"CoverageStatus", + "documentation":"

Represents the status of the EKS cluster coverage.

", + "locationName":"coverageStatus" + }, + "Issue":{ + "shape":"String", + "documentation":"

Represents the reason why a coverage status was UNHEALTHY for the EKS cluster.

", + "locationName":"issue" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the coverage details for the resource were last updated. This is in UTC format.

", + "locationName":"updatedAt" + } + }, + "documentation":"

Information about the resource of the GuardDuty account.

" + }, + "CoverageResourceDetails":{ + "type":"structure", + "members":{ + "EksClusterDetails":{ + "shape":"CoverageEksClusterDetails", + "documentation":"

EKS cluster details involved in the coverage statistics.

", + "locationName":"eksClusterDetails" + }, + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

The type of Amazon Web Services resource.

", + "locationName":"resourceType" + } + }, + "documentation":"

Information about the resource for each individual EKS cluster.

" + }, + "CoverageResources":{ + "type":"list", + "member":{"shape":"CoverageResource"} + }, + "CoverageSortCriteria":{ + "type":"structure", + "members":{ + "AttributeName":{ + "shape":"CoverageSortKey", + "documentation":"

Represents the field name used to sort the coverage details.

", + "locationName":"attributeName" + }, + "OrderBy":{ + "shape":"OrderBy", + "documentation":"

The order in which the sorted findings are to be displayed.

", + "locationName":"orderBy" + } + }, + "documentation":"

Information about the sorting criteria used in the coverage statistics.

" + }, + "CoverageSortKey":{ + "type":"string", + "enum":[ + "ACCOUNT_ID", + "CLUSTER_NAME", + "COVERAGE_STATUS", + "ISSUE", + "ADDON_VERSION", + "UPDATED_AT" + ] + }, + "CoverageStatistics":{ + "type":"structure", + "members":{ + "CountByResourceType":{ + "shape":"CountByResourceType", + "documentation":"

Represents coverage statistics for EKS clusters aggregated by resource type.

", + "locationName":"countByResourceType" + }, + "CountByCoverageStatus":{ + "shape":"CountByCoverageStatus", + "documentation":"

Represents coverage statistics for EKS clusters aggregated by coverage status.

", + "locationName":"countByCoverageStatus" + } + }, + "documentation":"

Information about the coverage statistics for a resource.

" + }, + "CoverageStatisticsType":{ + "type":"string", + "enum":[ + "COUNT_BY_RESOURCE_TYPE", + "COUNT_BY_COVERAGE_STATUS" + ] + }, + "CoverageStatisticsTypeList":{ + "type":"list", + "member":{"shape":"CoverageStatisticsType"} + }, + "CoverageStatus":{ + "type":"string", + "enum":[ + "HEALTHY", + "UNHEALTHY" + ] + }, "CreateDetectorRequest":{ "type":"structure", "required":["Enable"], @@ -1615,13 +1898,20 @@ }, "DataSources":{ "shape":"DataSourceConfigurations", - "documentation":"

Describes which data sources will be enabled for the detector.

", + "documentation":"

Describes which data sources will be enabled for the detector.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" }, "Tags":{ "shape":"TagMap", "documentation":"

The tags to be added to a new detector resource.

", "locationName":"tags" + }, + "Features":{ + "shape":"DetectorFeatureConfigurations", + "documentation":"

A list of features that will be configured for the detector.

", + "locationName":"features" } } }, @@ -1661,7 +1951,7 @@ }, "Description":{ "shape":"FilterDescription", - "documentation":"

The description of the filter. Valid special characters include period (.), underscore (_), dash (-), and whitespace. The new line character is considered to be an invalid input for description.

", + "documentation":"

The description of the filter. Valid characters include alphanumeric characters, and special characters such as hyphen, period, colon, underscore, parentheses ({ }, [ ], and ( )), forward slash, horizontal tab, vertical tab, newline, form feed, return, and whitespace.

", "locationName":"description" }, "Action":{ @@ -1676,7 +1966,7 @@ }, "FindingCriteria":{ "shape":"FindingCriteria", - "documentation":"

Represents the criteria to be used in the filter for querying findings.

You can only use the following attributes to query findings:

  • accountId

  • region

  • confidence

  • id

  • resource.accessKeyDetails.accessKeyId

  • resource.accessKeyDetails.principalId

  • resource.accessKeyDetails.userName

  • resource.accessKeyDetails.userType

  • resource.instanceDetails.iamInstanceProfile.id

  • resource.instanceDetails.imageId

  • resource.instanceDetails.instanceId

  • resource.instanceDetails.outpostArn

  • resource.instanceDetails.networkInterfaces.ipv6Addresses

  • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

  • resource.instanceDetails.networkInterfaces.publicDnsName

  • resource.instanceDetails.networkInterfaces.publicIp

  • resource.instanceDetails.networkInterfaces.securityGroups.groupId

  • resource.instanceDetails.networkInterfaces.securityGroups.groupName

  • resource.instanceDetails.networkInterfaces.subnetId

  • resource.instanceDetails.networkInterfaces.vpcId

  • resource.instanceDetails.tags.key

  • resource.instanceDetails.tags.value

  • resource.resourceType

  • service.action.actionType

  • service.action.awsApiCallAction.api

  • service.action.awsApiCallAction.callerType

  • service.action.awsApiCallAction.errorCode

  • service.action.awsApiCallAction.userAgent

  • service.action.awsApiCallAction.remoteIpDetails.city.cityName

  • service.action.awsApiCallAction.remoteIpDetails.country.countryName

  • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

  • service.action.awsApiCallAction.remoteIpDetails.organization.asn

  • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

  • service.action.awsApiCallAction.serviceName

  • service.action.dnsRequestAction.domain

  • service.action.networkConnectionAction.blocked

  • service.action.networkConnectionAction.connectionDirection

  • service.action.networkConnectionAction.localPortDetails.port

  • service.action.networkConnectionAction.protocol

  • service.action.networkConnectionAction.localIpDetails.ipAddressV4

  • service.action.networkConnectionAction.remoteIpDetails.city.cityName

  • service.action.networkConnectionAction.remoteIpDetails.country.countryName

  • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

  • service.action.networkConnectionAction.remoteIpDetails.organization.asn

  • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

  • service.action.networkConnectionAction.remotePortDetails.port

  • service.additionalInfo.threatListName

  • resource.s3BucketDetails.publicAccess.effectivePermissions

  • resource.s3BucketDetails.name

  • resource.s3BucketDetails.tags.key

  • resource.s3BucketDetails.tags.value

  • resource.s3BucketDetails.type

  • service.archived

    When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.

  • service.resourceRole

  • severity

  • type

  • updatedAt

    Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.

", + "documentation":"

Represents the criteria to be used in the filter for querying findings.

You can only use the following attributes to query findings:

  • accountId

  • region

  • id

  • resource.accessKeyDetails.accessKeyId

  • resource.accessKeyDetails.principalId

  • resource.accessKeyDetails.userName

  • resource.accessKeyDetails.userType

  • resource.instanceDetails.iamInstanceProfile.id

  • resource.instanceDetails.imageId

  • resource.instanceDetails.instanceId

  • resource.instanceDetails.outpostArn

  • resource.instanceDetails.networkInterfaces.ipv6Addresses

  • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

  • resource.instanceDetails.networkInterfaces.publicDnsName

  • resource.instanceDetails.networkInterfaces.publicIp

  • resource.instanceDetails.networkInterfaces.securityGroups.groupId

  • resource.instanceDetails.networkInterfaces.securityGroups.groupName

  • resource.instanceDetails.networkInterfaces.subnetId

  • resource.instanceDetails.networkInterfaces.vpcId

  • resource.instanceDetails.tags.key

  • resource.instanceDetails.tags.value

  • resource.resourceType

  • service.action.actionType

  • service.action.awsApiCallAction.api

  • service.action.awsApiCallAction.callerType

  • service.action.awsApiCallAction.errorCode

  • service.action.awsApiCallAction.userAgent

  • service.action.awsApiCallAction.remoteIpDetails.city.cityName

  • service.action.awsApiCallAction.remoteIpDetails.country.countryName

  • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

  • service.action.awsApiCallAction.remoteIpDetails.organization.asn

  • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

  • service.action.awsApiCallAction.serviceName

  • service.action.dnsRequestAction.domain

  • service.action.networkConnectionAction.blocked

  • service.action.networkConnectionAction.connectionDirection

  • service.action.networkConnectionAction.localPortDetails.port

  • service.action.networkConnectionAction.protocol

  • service.action.networkConnectionAction.localIpDetails.ipAddressV4

  • service.action.networkConnectionAction.remoteIpDetails.city.cityName

  • service.action.networkConnectionAction.remoteIpDetails.country.countryName

  • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

  • service.action.networkConnectionAction.remoteIpDetails.organization.asn

  • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

  • service.action.networkConnectionAction.remotePortDetails.port

  • service.additionalInfo.threatListName

  • resource.s3BucketDetails.publicAccess.effectivePermissions

  • resource.s3BucketDetails.name

  • resource.s3BucketDetails.tags.key

  • resource.s3BucketDetails.tags.value

  • resource.s3BucketDetails.type

  • service.resourceRole

  • severity

  • type

  • updatedAt

    Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.

", "locationName":"findingCriteria" }, "ClientToken":{ @@ -1721,7 +2011,7 @@ }, "Name":{ "shape":"Name", - "documentation":"

The user-friendly name to identify the IPSet.

Allowed characters are alphanumerics, spaces, hyphens (-), and underscores (_).

", + "documentation":"

The user-friendly name to identify the IPSet.

Allowed characters are alphanumeric, whitespace, dash (-), and underscores (_).

", "locationName":"name" }, "Format":{ @@ -2320,7 +2610,7 @@ }, "SortCriteria":{ "shape":"SortCriteria", - "documentation":"

Represents the criteria used for sorting scan entries.

", + "documentation":"

Represents the criteria used for sorting scan entries. The attributeName is required and it must be scanStartTime.

", "locationName":"sortCriteria" } } @@ -2350,19 +2640,30 @@ "documentation":"

The ID of the detector to retrieve information about the delegated administrator from.

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

You can use this parameter to indicate the maximum number of items that you want in the response.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "documentation":"

You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.

", + "location":"querystring", + "locationName":"nextToken" } } }, "DescribeOrganizationConfigurationResponse":{ "type":"structure", - "required":[ - "AutoEnable", - "MemberAccountLimitReached" - ], + "required":["MemberAccountLimitReached"], "members":{ "AutoEnable":{ "shape":"Boolean", - "documentation":"

Indicates whether GuardDuty is automatically enabled for accounts added to the organization.

", + "documentation":"

Indicates whether GuardDuty is automatically enabled for accounts added to the organization.

Even though this is still supported, we recommend using AutoEnableOrganizationMembers to achieve the similar results.

", + "deprecated":true, + "deprecatedMessage":"This field is deprecated, use AutoEnableOrganizationMembers instead", "locationName":"autoEnable" }, "MemberAccountLimitReached":{ @@ -2373,7 +2674,24 @@ "DataSources":{ "shape":"OrganizationDataSourceConfigurationsResult", "documentation":"

Describes which data sources are enabled automatically for member accounts.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" + }, + "Features":{ + "shape":"OrganizationFeaturesConfigurationsResults", + "documentation":"

A list of features that are configured for this organization.

", + "locationName":"features" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The pagination parameter to be used on the next list operation to retrieve more items.

", + "locationName":"nextToken" + }, + "AutoEnableOrganizationMembers":{ + "shape":"AutoEnableMembers", + "documentation":"

Indicates the auto-enablement configuration of GuardDuty for the member accounts in the organization.

  • NEW: Indicates that when a new account joins the organization, they will have GuardDuty enabled automatically.

  • ALL: Indicates that all accounts in the Amazon Web Services Organization have GuardDuty enabled automatically. This includes NEW accounts that join the organization and accounts that may have been suspended or removed from the organization in GuardDuty.

  • NONE: Indicates that GuardDuty will not be automatically enabled for any accounts in the organization. GuardDuty must be managed for each account individually by the administrator.

", + "locationName":"autoEnableOrganizationMembers" } } }, @@ -2487,6 +2805,129 @@ "type":"list", "member":{"shape":"Destination"} }, + "DetectorAdditionalConfiguration":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"FeatureAdditionalConfiguration", + "documentation":"

Name of the additional configuration.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

Status of the additional configuration.

", + "locationName":"status" + } + }, + "documentation":"

Information about the additional configuration for a feature in your GuardDuty account.

" + }, + "DetectorAdditionalConfigurationResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"FeatureAdditionalConfiguration", + "documentation":"

Name of the additional configuration.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

Status of the additional configuration.

", + "locationName":"status" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the additional configuration was last updated. This is in UTC format.

", + "locationName":"updatedAt" + } + }, + "documentation":"

Information about the additional configuration.

" + }, + "DetectorAdditionalConfigurationResults":{ + "type":"list", + "member":{"shape":"DetectorAdditionalConfigurationResult"} + }, + "DetectorAdditionalConfigurations":{ + "type":"list", + "member":{"shape":"DetectorAdditionalConfiguration"} + }, + "DetectorFeature":{ + "type":"string", + "enum":[ + "S3_DATA_EVENTS", + "EKS_AUDIT_LOGS", + "EBS_MALWARE_PROTECTION", + "RDS_LOGIN_EVENTS", + "EKS_RUNTIME_MONITORING" + ] + }, + "DetectorFeatureConfiguration":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"DetectorFeature", + "documentation":"

The name of the feature.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

The status of the feature.

", + "locationName":"status" + }, + "AdditionalConfiguration":{ + "shape":"DetectorAdditionalConfigurations", + "documentation":"

Additional configuration for a resource.

", + "locationName":"additionalConfiguration" + } + }, + "documentation":"

Contains information about a GuardDuty feature.

" + }, + "DetectorFeatureConfigurationResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"DetectorFeatureResult", + "documentation":"

Indicates the name of the feature that can be enabled for the detector.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

Indicates the status of the feature that is enabled for the detector.

", + "locationName":"status" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the feature object was updated.

", + "locationName":"updatedAt" + }, + "AdditionalConfiguration":{ + "shape":"DetectorAdditionalConfigurationResults", + "documentation":"

Additional configuration for a resource.

", + "locationName":"additionalConfiguration" + } + }, + "documentation":"

Contains information about a GuardDuty feature.

" + }, + "DetectorFeatureConfigurations":{ + "type":"list", + "member":{"shape":"DetectorFeatureConfiguration"} + }, + "DetectorFeatureConfigurationsResults":{ + "type":"list", + "member":{"shape":"DetectorFeatureConfigurationResult"} + }, + "DetectorFeatureResult":{ + "type":"string", + "enum":[ + "FLOW_LOGS", + "CLOUD_TRAIL", + "DNS_LOGS", + "S3_DATA_EVENTS", + "EKS_AUDIT_LOGS", + "EBS_MALWARE_PROTECTION", + "RDS_LOGIN_EVENTS", + "EKS_RUNTIME_MONITORING" + ] + }, "DetectorId":{ "type":"string", "max":300, @@ -2878,11 +3319,22 @@ }, "documentation":"

Contains information about the reason that the finding was generated.

" }, - "Feedback":{ + "FeatureAdditionalConfiguration":{ + "type":"string", + "enum":["EKS_ADDON_MANAGEMENT"] + }, + "FeatureStatus":{ "type":"string", "enum":[ - "USEFUL", - "NOT_USEFUL" + "ENABLED", + "DISABLED" + ] + }, + "Feedback":{ + "type":"string", + "enum":[ + "USEFUL", + "NOT_USEFUL" ] }, "FilePaths":{ @@ -3132,6 +3584,10 @@ "max":50, "min":0 }, + "FlagsList":{ + "type":"list", + "member":{"shape":"String"} + }, "FlowLogsConfigurationResult":{ "type":"structure", "required":["Status"], @@ -3144,6 +3600,39 @@ }, "documentation":"

Contains information on the status of VPC flow logs as a data source.

" }, + "FreeTrialFeatureConfigurationResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"FreeTrialFeatureResult", + "documentation":"

The name of the feature for which the free trial is configured.

", + "locationName":"name" + }, + "FreeTrialDaysRemaining":{ + "shape":"Integer", + "documentation":"

The number of the remaining free trial days for the feature.

", + "locationName":"freeTrialDaysRemaining" + } + }, + "documentation":"

Contains information about the free trial period for a feature.

" + }, + "FreeTrialFeatureConfigurationsResults":{ + "type":"list", + "member":{"shape":"FreeTrialFeatureConfigurationResult"} + }, + "FreeTrialFeatureResult":{ + "type":"string", + "enum":[ + "FLOW_LOGS", + "CLOUD_TRAIL", + "DNS_LOGS", + "S3_DATA_EVENTS", + "EKS_AUDIT_LOGS", + "EBS_MALWARE_PROTECTION", + "RDS_LOGIN_EVENTS", + "EKS_RUNTIME_MONITORING" + ] + }, "GeoLocation":{ "type":"structure", "members":{ @@ -3183,6 +3672,41 @@ } } }, + "GetCoverageStatisticsRequest":{ + "type":"structure", + "required":[ + "DetectorId", + "StatisticsType" + ], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the GuardDuty detector associated to the coverage statistics.

", + "location":"uri", + "locationName":"detectorId" + }, + "FilterCriteria":{ + "shape":"CoverageFilterCriteria", + "documentation":"

Represents the criteria used to filter the coverage statistics

", + "locationName":"filterCriteria" + }, + "StatisticsType":{ + "shape":"CoverageStatisticsTypeList", + "documentation":"

Represents the statistics type used to aggregate the coverage details.

", + "locationName":"statisticsType" + } + } + }, + "GetCoverageStatisticsResponse":{ + "type":"structure", + "members":{ + "CoverageStatistics":{ + "shape":"CoverageStatistics", + "documentation":"

Represents the count aggregated by the statusCode and resourceType.

", + "locationName":"coverageStatistics" + } + } + }, "GetDetectorRequest":{ "type":"structure", "required":["DetectorId"], @@ -3230,12 +3754,19 @@ "DataSources":{ "shape":"DataSourceConfigurationsResult", "documentation":"

Describes which data sources are enabled for the detector.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" }, "Tags":{ "shape":"TagMap", "documentation":"

The tags of the detector resource.

", "locationName":"tags" + }, + "Features":{ + "shape":"DetectorFeatureConfigurationsResults", + "documentation":"

Describes the features that have been enabled for the detector.

", + "locationName":"features" } } }, @@ -4163,6 +4694,109 @@ }, "documentation":"

Details about the Kubernetes workload involved in a Kubernetes finding.

" }, + "Lineage":{ + "type":"list", + "member":{"shape":"LineageObject"} + }, + "LineageObject":{ + "type":"structure", + "members":{ + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The time when the process started. This is in UTC format.

", + "locationName":"startTime" + }, + "NamespacePid":{ + "shape":"Integer", + "documentation":"

The process ID of the child process.

", + "locationName":"namespacePid" + }, + "UserId":{ + "shape":"Integer", + "documentation":"

The user ID of the user that executed the process.

", + "locationName":"userId" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the process.

", + "locationName":"name" + }, + "Pid":{ + "shape":"Integer", + "documentation":"

The ID of the process.

", + "locationName":"pid" + }, + "Uuid":{ + "shape":"String", + "documentation":"

The unique ID assigned to the process by GuardDuty.

", + "locationName":"uuid" + }, + "ExecutablePath":{ + "shape":"String", + "documentation":"

The absolute path of the process executable file.

", + "locationName":"executablePath" + }, + "Euid":{ + "shape":"Integer", + "documentation":"

The effective user ID that was used to execute the process.

", + "locationName":"euid" + }, + "ParentUuid":{ + "shape":"String", + "documentation":"

The unique ID of the parent process. This ID is assigned to the parent process by GuardDuty.

", + "locationName":"parentUuid" + } + }, + "documentation":"

Information about the runtime process details.

" + }, + "ListCoverageRequest":{ + "type":"structure", + "required":["DetectorId"], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector whose coverage details you want to retrieve.

", + "location":"uri", + "locationName":"detectorId" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the NextToken value returned from the previous request to continue listing results after the first page.

", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return in the response.

", + "locationName":"maxResults" + }, + "FilterCriteria":{ + "shape":"CoverageFilterCriteria", + "documentation":"

Represents the criteria used to filter the coverage details.

", + "locationName":"filterCriteria" + }, + "SortCriteria":{ + "shape":"CoverageSortCriteria", + "documentation":"

Represents the criteria used to sort the coverage details.

", + "locationName":"sortCriteria" + } + } + }, + "ListCoverageResponse":{ + "type":"structure", + "required":["Resources"], + "members":{ + "Resources":{ + "shape":"CoverageResources", + "documentation":"

A list of resources and their attributes providing cluster details.

", + "locationName":"resources" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The pagination parameter to be used on the next list operation to retrieve more items.

", + "locationName":"nextToken" + } + } + }, "ListDetectorsRequest":{ "type":"structure", "members":{ @@ -4567,6 +5201,36 @@ "max":300, "min":1 }, + "LoginAttribute":{ + "type":"structure", + "members":{ + "User":{ + "shape":"String", + "documentation":"

Indicates the user name which attempted to log in.

", + "locationName":"user" + }, + "Application":{ + "shape":"String", + "documentation":"

Indicates the application name used to attempt log in.

", + "locationName":"application" + }, + "FailedLoginAttempts":{ + "shape":"Integer", + "documentation":"

Represents the sum of failed (unsuccessful) login attempts made to establish a connection to the database instance.

", + "locationName":"failedLoginAttempts" + }, + "SuccessfulLoginAttempts":{ + "shape":"Integer", + "documentation":"

Represents the sum of successful connections (a correct combination of login attributes) made to the database instance by the actor.

", + "locationName":"successfulLoginAttempts" + } + }, + "documentation":"

Information about the login attempts.

" + }, + "LoginAttributes":{ + "type":"list", + "member":{"shape":"LoginAttribute"} + }, "Long":{"type":"long"}, "LongValue":{"type":"long"}, "MalwareProtectionConfiguration":{ @@ -4695,12 +5359,54 @@ }, "documentation":"

Contains information about the member account.

" }, + "MemberAdditionalConfiguration":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeatureAdditionalConfiguration", + "documentation":"

Name of the additional configuration.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

Status of the additional configuration.

", + "locationName":"status" + } + }, + "documentation":"

Information about the additional configuration for the member account.

" + }, + "MemberAdditionalConfigurationResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeatureAdditionalConfiguration", + "documentation":"

Indicates the name of the additional configuration that is set for the member account.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

Indicates the status of the additional configuration that is set for the member account.

", + "locationName":"status" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the additional configuration was set for the member account. This is in UTC format.

", + "locationName":"updatedAt" + } + }, + "documentation":"

Information about the additional configuration for the member account.

" + }, + "MemberAdditionalConfigurationResults":{ + "type":"list", + "member":{"shape":"MemberAdditionalConfigurationResult"} + }, + "MemberAdditionalConfigurations":{ + "type":"list", + "member":{"shape":"MemberAdditionalConfiguration"} + }, "MemberDataSourceConfiguration":{ "type":"structure", - "required":[ - "AccountId", - "DataSources" - ], + "required":["AccountId"], "members":{ "AccountId":{ "shape":"AccountId", @@ -4710,7 +5416,14 @@ "DataSources":{ "shape":"DataSourceConfigurationsResult", "documentation":"

Contains information on the status of data sources for the account.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" + }, + "Features":{ + "shape":"MemberFeaturesConfigurationsResults", + "documentation":"

Contains information about the status of the features for the member account.

", + "locationName":"features" } }, "documentation":"

Contains information on which data sources are enabled for a member account.

" @@ -4721,12 +5434,71 @@ "max":50, "min":1 }, + "MemberFeaturesConfiguration":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeature", + "documentation":"

The name of the feature.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

The status of the feature.

", + "locationName":"status" + }, + "AdditionalConfiguration":{ + "shape":"MemberAdditionalConfigurations", + "documentation":"

Additional configuration of the feature for the member account.

", + "locationName":"additionalConfiguration" + } + }, + "documentation":"

Contains information about the features for the member account.

" + }, + "MemberFeaturesConfigurationResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeature", + "documentation":"

Indicates the name of the feature that is enabled for the detector.

", + "locationName":"name" + }, + "Status":{ + "shape":"FeatureStatus", + "documentation":"

Indicates the status of the feature that is enabled for the detector.

", + "locationName":"status" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the feature object was updated.

", + "locationName":"updatedAt" + }, + "AdditionalConfiguration":{ + "shape":"MemberAdditionalConfigurationResults", + "documentation":"

Indicates the additional configuration of the feature that is configured for the member account.

", + "locationName":"additionalConfiguration" + } + }, + "documentation":"

Contains information about the features for the member account.

" + }, + "MemberFeaturesConfigurations":{ + "type":"list", + "member":{"shape":"MemberFeaturesConfiguration"} + }, + "MemberFeaturesConfigurationsResults":{ + "type":"list", + "member":{"shape":"MemberFeaturesConfigurationResult"} + }, "Members":{ "type":"list", "member":{"shape":"Member"}, "max":50, "min":0 }, + "MemoryRegionsList":{ + "type":"list", + "member":{"shape":"String"} + }, "Name":{ "type":"string", "max":300, @@ -4853,6 +5625,27 @@ "DESC" ] }, + "OrgFeature":{ + "type":"string", + "enum":[ + "S3_DATA_EVENTS", + "EKS_AUDIT_LOGS", + "EBS_MALWARE_PROTECTION", + "RDS_LOGIN_EVENTS", + "EKS_RUNTIME_MONITORING" + ] + }, + "OrgFeatureAdditionalConfiguration":{ + "type":"string", + "enum":["EKS_ADDON_MANAGEMENT"] + }, + "OrgFeatureStatus":{ + "type":"string", + "enum":[ + "NEW", + "NONE" + ] + }, "Organization":{ "type":"structure", "members":{ @@ -4879,6 +5672,46 @@ }, "documentation":"

Contains information about the ISP organization of the remote IP address.

" }, + "OrganizationAdditionalConfiguration":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeatureAdditionalConfiguration", + "documentation":"

The name of the additional configuration that will be configured for the organization.

", + "locationName":"name" + }, + "AutoEnable":{ + "shape":"OrgFeatureStatus", + "documentation":"

The status of the additional configuration that will be configured for the organization.

", + "locationName":"autoEnable" + } + }, + "documentation":"

A list of additional configurations which will be configured for the organization.

" + }, + "OrganizationAdditionalConfigurationResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeatureAdditionalConfiguration", + "documentation":"

The name of the additional configuration that is configured for the member accounts within the organization.

", + "locationName":"name" + }, + "AutoEnable":{ + "shape":"OrgFeatureStatus", + "documentation":"

Describes how The status of the additional configuration that are configured for the member accounts within the organization.

If you set AutoEnable to NEW, a feature will be configured for only the new accounts when they join the organization.

If you set AutoEnable to NONE, no feature will be configured for the accounts when they join the organization.

", + "locationName":"autoEnable" + } + }, + "documentation":"

A list of additional configuration which will be configured for the organization.

" + }, + "OrganizationAdditionalConfigurationResults":{ + "type":"list", + "member":{"shape":"OrganizationAdditionalConfigurationResult"} + }, + "OrganizationAdditionalConfigurations":{ + "type":"list", + "member":{"shape":"OrganizationAdditionalConfiguration"} + }, "OrganizationDataSourceConfigurations":{ "type":"structure", "members":{ @@ -4944,6 +5777,56 @@ }, "documentation":"

An object that contains information on the status of whether EBS volumes scanning will be enabled as a data source for an organization.

" }, + "OrganizationFeatureConfiguration":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeature", + "documentation":"

The name of the feature that will be configured for the organization.

", + "locationName":"name" + }, + "AutoEnable":{ + "shape":"OrgFeatureStatus", + "documentation":"

The status of the feature that will be configured for the organization.

", + "locationName":"autoEnable" + }, + "AdditionalConfiguration":{ + "shape":"OrganizationAdditionalConfigurations", + "documentation":"

The additional information that will be configured for the organization.

", + "locationName":"additionalConfiguration" + } + }, + "documentation":"

A list of features which will be configured for the organization.

" + }, + "OrganizationFeatureConfigurationResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OrgFeature", + "documentation":"

The name of the feature that is configured for the member accounts within the organization.

", + "locationName":"name" + }, + "AutoEnable":{ + "shape":"OrgFeatureStatus", + "documentation":"

Describes how The status of the feature that are configured for the member accounts within the organization.

If you set AutoEnable to NEW, a feature will be configured for only the new accounts when they join the organization.

If you set AutoEnable to NONE, no feature will be configured for the accounts when they join the organization.

", + "locationName":"autoEnable" + }, + "AdditionalConfiguration":{ + "shape":"OrganizationAdditionalConfigurationResults", + "documentation":"

The additional configuration that is configured for the member accounts within the organization.

", + "locationName":"additionalConfiguration" + } + }, + "documentation":"

A list of features which will be configured for the organization.

" + }, + "OrganizationFeaturesConfigurations":{ + "type":"list", + "member":{"shape":"OrganizationFeatureConfiguration"} + }, + "OrganizationFeaturesConfigurationsResults":{ + "type":"list", + "member":{"shape":"OrganizationFeatureConfigurationResult"} + }, "OrganizationKubernetesAuditLogsConfiguration":{ "type":"structure", "required":["AutoEnable"], @@ -5152,6 +6035,77 @@ "type":"list", "member":{"shape":"PrivateIpAddressDetails"} }, + "ProcessDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

The name of the process.

", + "locationName":"name" + }, + "ExecutablePath":{ + "shape":"String", + "documentation":"

The absolute path of the process executable file.

", + "locationName":"executablePath" + }, + "ExecutableSha256":{ + "shape":"String", + "documentation":"

The SHA256 hash of the process executable.

", + "locationName":"executableSha256" + }, + "NamespacePid":{ + "shape":"Integer", + "documentation":"

The ID of the child process.

", + "locationName":"namespacePid" + }, + "Pwd":{ + "shape":"String", + "documentation":"

The present working directory of the process.

", + "locationName":"pwd" + }, + "Pid":{ + "shape":"Integer", + "documentation":"

The ID of the process.

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

The time when the process started. This is in UTC format.

", + "locationName":"startTime" + }, + "Uuid":{ + "shape":"String", + "documentation":"

The unique ID assigned to the process by GuardDuty.

", + "locationName":"uuid" + }, + "ParentUuid":{ + "shape":"String", + "documentation":"

The unique ID of the parent process. This ID is assigned to the parent process by GuardDuty.

", + "locationName":"parentUuid" + }, + "User":{ + "shape":"String", + "documentation":"

The user that executed the process.

", + "locationName":"user" + }, + "UserId":{ + "shape":"Integer", + "documentation":"

The unique ID of the user that executed the process.

", + "locationName":"userId" + }, + "Euid":{ + "shape":"Integer", + "documentation":"

The effective user ID of the user that executed the process.

", + "locationName":"euid" + }, + "Lineage":{ + "shape":"Lineage", + "documentation":"

Information about the process's lineage.

", + "locationName":"lineage" + } + }, + "documentation":"

Information about the observed process.

" + }, "ProductCode":{ "type":"structure", "members":{ @@ -5199,6 +6153,87 @@ "max":300, "min":1 }, + "RdsDbInstanceDetails":{ + "type":"structure", + "members":{ + "DbInstanceIdentifier":{ + "shape":"String", + "documentation":"

The identifier associated to the database instance that was involved in the finding.

", + "locationName":"dbInstanceIdentifier" + }, + "Engine":{ + "shape":"String", + "documentation":"

The database engine of the database instance involved in the finding.

", + "locationName":"engine" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The version of the database engine that was involved in the finding.

", + "locationName":"engineVersion" + }, + "DbClusterIdentifier":{ + "shape":"String", + "documentation":"

The identifier of the database cluster that contains the database instance ID involved in the finding.

", + "locationName":"dbClusterIdentifier" + }, + "DbInstanceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) that identifies the database instance involved in the finding.

", + "locationName":"dbInstanceArn" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Instance tag key-value pairs associated with the database instance ID.

", + "locationName":"tags" + } + }, + "documentation":"

Contains information about the resource type RDSDBInstance involved in a GuardDuty finding.

" + }, + "RdsDbUserDetails":{ + "type":"structure", + "members":{ + "User":{ + "shape":"String", + "documentation":"

The user name used in the anomalous login attempt.

", + "locationName":"user" + }, + "Application":{ + "shape":"String", + "documentation":"

The application name used in the anomalous login attempt.

", + "locationName":"application" + }, + "Database":{ + "shape":"String", + "documentation":"

The name of the database instance involved in the anomalous login attempt.

", + "locationName":"database" + }, + "Ssl":{ + "shape":"String", + "documentation":"

The version of the Secure Socket Layer (SSL) used for the network.

", + "locationName":"ssl" + }, + "AuthMethod":{ + "shape":"String", + "documentation":"

The authentication method used by the user involved in the finding.

", + "locationName":"authMethod" + } + }, + "documentation":"

Contains information about the user and authentication details for a database instance involved in the finding.

" + }, + "RdsLoginAttemptAction":{ + "type":"structure", + "members":{ + "RemoteIpDetails":{ + "shape":"RemoteIpDetails", + "locationName":"remoteIpDetails" + }, + "LoginAttributes":{ + "shape":"LoginAttributes", + "documentation":"

Indicates the login attributes used in the login attempt.

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

Indicates that a login attempt was made to the potentially compromised database from a remote IP address.

" + }, "RemoteAccountDetails":{ "type":"structure", "members":{ @@ -5267,7 +6302,7 @@ "members":{ "AccessKeyDetails":{ "shape":"AccessKeyDetails", - "documentation":"

The IAM access key details (IAM user information) of a user that engaged in the activity that prompted GuardDuty to generate a finding.

", + "documentation":"

The IAM access key details (user information) of a user that engaged in the activity that prompted GuardDuty to generate a finding.

", "locationName":"accessKeyDetails" }, "S3BucketDetails":{ @@ -5308,6 +6343,16 @@ "ContainerDetails":{ "shape":"Container", "locationName":"containerDetails" + }, + "RdsDbInstanceDetails":{ + "shape":"RdsDbInstanceDetails", + "documentation":"

Contains information about the database instance to which an anomalous login attempt was made.

", + "locationName":"rdsDbInstanceDetails" + }, + "RdsDbUserDetails":{ + "shape":"RdsDbUserDetails", + "documentation":"

Contains information about the user details through which anomalous login attempt was made.

", + "locationName":"rdsDbUserDetails" } }, "documentation":"

Contains information about the Amazon Web Services resource associated with the activity that prompted GuardDuty to generate a finding.

" @@ -5327,6 +6372,132 @@ "type":"list", "member":{"shape":"String"} }, + "ResourceType":{ + "type":"string", + "enum":["EKS"] + }, + "RuntimeContext":{ + "type":"structure", + "members":{ + "ModifyingProcess":{ + "shape":"ProcessDetails", + "documentation":"

Information about the process that modified the current process. This is available for multiple finding types.

", + "locationName":"modifyingProcess" + }, + "ModifiedAt":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the process modified the current process. The timestamp is in UTC date string format.

", + "locationName":"modifiedAt" + }, + "ScriptPath":{ + "shape":"String", + "documentation":"

The path to the script that was executed.

", + "locationName":"scriptPath" + }, + "LibraryPath":{ + "shape":"String", + "documentation":"

The path to the new library that was loaded.

", + "locationName":"libraryPath" + }, + "LdPreloadValue":{ + "shape":"String", + "documentation":"

The value of the LD_PRELOAD environment variable.

", + "locationName":"ldPreloadValue" + }, + "SocketPath":{ + "shape":"String", + "documentation":"

The path to the docket socket that was accessed.

", + "locationName":"socketPath" + }, + "RuncBinaryPath":{ + "shape":"String", + "documentation":"

The path to the leveraged runc implementation.

", + "locationName":"runcBinaryPath" + }, + "ReleaseAgentPath":{ + "shape":"String", + "documentation":"

The path in the container that modified the release agent file.

", + "locationName":"releaseAgentPath" + }, + "MountSource":{ + "shape":"String", + "documentation":"

The path on the host that is mounted by the container.

", + "locationName":"mountSource" + }, + "MountTarget":{ + "shape":"String", + "documentation":"

The path in the container that is mapped to the host directory.

", + "locationName":"mountTarget" + }, + "FileSystemType":{ + "shape":"String", + "documentation":"

Represents the type of mounted fileSystem.

", + "locationName":"fileSystemType" + }, + "Flags":{ + "shape":"FlagsList", + "documentation":"

Represents options that control the behavior of a runtime operation or action. For example, a filesystem mount operation may contain a read-only flag.

", + "locationName":"flags" + }, + "ModuleName":{ + "shape":"String", + "documentation":"

The name of the module loaded into the kernel.

", + "locationName":"moduleName" + }, + "ModuleFilePath":{ + "shape":"String", + "documentation":"

The path to the module loaded into the kernel.

", + "locationName":"moduleFilePath" + }, + "ModuleSha256":{ + "shape":"String", + "documentation":"

The SHA256 hash of the module.

", + "locationName":"moduleSha256" + }, + "ShellHistoryFilePath":{ + "shape":"String", + "documentation":"

The path to the modified shell history file.

", + "locationName":"shellHistoryFilePath" + }, + "TargetProcess":{ + "shape":"ProcessDetails", + "documentation":"

Information about the process that had its memory overwritten by the current process.

", + "locationName":"targetProcess" + }, + "AddressFamily":{ + "shape":"String", + "documentation":"

Represents the communication protocol associated with the address. For example, the address family AF_INET is used for IP version of 4 protocol.

", + "locationName":"addressFamily" + }, + "IanaProtocolNumber":{ + "shape":"Integer", + "documentation":"

Specifies a particular protocol within the address family. Usually there is a single protocol in address families. For example, the address family AF_INET only has the IP protocol.

", + "locationName":"ianaProtocolNumber" + }, + "MemoryRegions":{ + "shape":"MemoryRegionsList", + "documentation":"

Specifies the Region of a process's address space such as stack and heap.

", + "locationName":"memoryRegions" + } + }, + "documentation":"

Additional information about the suspicious activity.

" + }, + "RuntimeDetails":{ + "type":"structure", + "members":{ + "Process":{ + "shape":"ProcessDetails", + "documentation":"

Information about the observed process.

", + "locationName":"process" + }, + "Context":{ + "shape":"RuntimeContext", + "documentation":"

Additional information about the suspicious activity.

", + "locationName":"context" + } + }, + "documentation":"

Information about the process and any required context values for a specific finding.

" + }, "S3BucketDetail":{ "type":"structure", "members":{ @@ -5786,6 +6957,11 @@ "shape":"EbsVolumeScanDetails", "documentation":"

Returns details from the malware scan that created a finding.

", "locationName":"ebsVolumeScanDetails" + }, + "RuntimeDetails":{ + "shape":"RuntimeDetails", + "documentation":"

Information about the process and any required context values for a specific finding

", + "locationName":"runtimeDetails" } }, "documentation":"

Contains additional information about the generated finding.

" @@ -5811,7 +6987,7 @@ "members":{ "AttributeName":{ "shape":"String", - "documentation":"

Represents the finding attribute (for example, accountId) to sort findings by.

", + "documentation":"

Represents the finding attribute, such as accountId, that sorts the findings.

", "locationName":"attributeName" }, "OrderBy":{ @@ -6077,7 +7253,7 @@ "members":{ "GuardDutyFindingId":{ "shape":"NonEmptyString", - "documentation":"

The ID of the GuardDuty finding that triggered the BirdDog scan.

", + "documentation":"

The ID of the GuardDuty finding that triggered the malware scan.

", "locationName":"guardDutyFindingId" }, "Description":{ @@ -6197,8 +7373,15 @@ }, "DataSources":{ "shape":"DataSourceConfigurations", - "documentation":"

Describes which data sources will be updated.

", + "documentation":"

Describes which data sources will be updated.

There might be regional differences because some data sources might not be available in all the Amazon Web Services Regions where GuardDuty is presently supported. For more information, see Regions and endpoints.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" + }, + "Features":{ + "shape":"DetectorFeatureConfigurations", + "documentation":"

Provides the features that will be updated for the detector.

", + "locationName":"features" } } }, @@ -6228,7 +7411,7 @@ }, "Description":{ "shape":"FilterDescription", - "documentation":"

The description of the filter. Valid special characters include period (.), underscore (_), dash (-), and whitespace. The new line character is considered to be an invalid input for description.

", + "documentation":"

The description of the filter. Valid characters include alphanumeric characters, and special characters such as hyphen, period, colon, underscore, parentheses ({ }, [ ], and ( )), forward slash, horizontal tab, vertical tab, newline, form feed, return, and whitespace.

", "locationName":"description" }, "Action":{ @@ -6384,7 +7567,14 @@ "DataSources":{ "shape":"DataSourceConfigurations", "documentation":"

Describes which data sources will be updated.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" + }, + "Features":{ + "shape":"MemberFeaturesConfigurations", + "documentation":"

A list of features that will be updated for the specified member accounts.

", + "locationName":"features" } } }, @@ -6401,26 +7591,37 @@ }, "UpdateOrganizationConfigurationRequest":{ "type":"structure", - "required":[ - "DetectorId", - "AutoEnable" - ], + "required":["DetectorId"], "members":{ "DetectorId":{ "shape":"DetectorId", - "documentation":"

The ID of the detector to update the delegated administrator for.

", + "documentation":"

The ID of the detector that configures the delegated administrator.

", "location":"uri", "locationName":"detectorId" }, "AutoEnable":{ "shape":"Boolean", - "documentation":"

Indicates whether to automatically enable member accounts in the organization.

", + "documentation":"

Indicates whether to automatically enable member accounts in the organization.

Even though this is still supported, we recommend using AutoEnableOrganizationMembers to achieve the similar results.

", + "deprecated":true, + "deprecatedMessage":"This field is deprecated, use AutoEnableOrganizationMembers instead", "locationName":"autoEnable" }, "DataSources":{ "shape":"OrganizationDataSourceConfigurations", "documentation":"

Describes which data sources will be updated.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" + }, + "Features":{ + "shape":"OrganizationFeaturesConfigurations", + "documentation":"

A list of features that will be configured for the organization.

", + "locationName":"features" + }, + "AutoEnableOrganizationMembers":{ + "shape":"AutoEnableMembers", + "documentation":"

Indicates the auto-enablement configuration of GuardDuty for the member accounts in the organization.

  • NEW: Indicates that when a new account joins the organization, they will have GuardDuty enabled automatically.

  • ALL: Indicates that all accounts in the Amazon Web Services Organization have GuardDuty enabled automatically. This includes NEW accounts that join the organization and accounts that may have been suspended or removed from the organization in GuardDuty.

  • NONE: Indicates that GuardDuty will not be automatically enabled for any accounts in the organization. GuardDuty must be managed for each account individually by the administrator.

", + "locationName":"autoEnableOrganizationMembers" } } }, @@ -6523,7 +7724,6 @@ }, "UsageCriteria":{ "type":"structure", - "required":["DataSources"], "members":{ "AccountIds":{ "shape":"AccountIds", @@ -6533,12 +7733,19 @@ "DataSources":{ "shape":"DataSourceList", "documentation":"

The data sources to aggregate usage statistics from.

", + "deprecated":true, + "deprecatedMessage":"This parameter is deprecated, use Features instead", "locationName":"dataSources" }, "Resources":{ "shape":"ResourceList", "documentation":"

The resources to aggregate usage statistics from. Only accepts exact resource names.

", "locationName":"resources" + }, + "Features":{ + "shape":"UsageFeatureList", + "documentation":"

The features to aggregate usage statistics from.

", + "locationName":"features" } }, "documentation":"

Contains information about the criteria used to query usage statistics.

" @@ -6563,6 +7770,43 @@ "type":"list", "member":{"shape":"UsageDataSourceResult"} }, + "UsageFeature":{ + "type":"string", + "enum":[ + "FLOW_LOGS", + "CLOUD_TRAIL", + "DNS_LOGS", + "S3_DATA_EVENTS", + "EKS_AUDIT_LOGS", + "EBS_MALWARE_PROTECTION", + "RDS_LOGIN_EVENTS", + "LAMBDA_NETWORK_LOGS", + "EKS_RUNTIME_MONITORING" + ] + }, + "UsageFeatureList":{ + "type":"list", + "member":{"shape":"UsageFeature"} + }, + "UsageFeatureResult":{ + "type":"structure", + "members":{ + "Feature":{ + "shape":"UsageFeature", + "documentation":"

The feature that generated the usage cost.

", + "locationName":"feature" + }, + "Total":{ + "shape":"Total", + "locationName":"total" + } + }, + "documentation":"

Contains information about the result of the total usage based on the feature.

" + }, + "UsageFeatureResultList":{ + "type":"list", + "member":{"shape":"UsageFeatureResult"} + }, "UsageResourceResult":{ "type":"structure", "members":{ @@ -6589,7 +7833,8 @@ "SUM_BY_ACCOUNT", "SUM_BY_DATA_SOURCE", "SUM_BY_RESOURCE", - "TOP_RESOURCES" + "TOP_RESOURCES", + "SUM_BY_FEATURES" ] }, "UsageStatistics":{ @@ -6614,6 +7859,11 @@ "shape":"UsageResourceResultList", "documentation":"

Lists the top 50 resources that have generated the most GuardDuty usage, in order from most to least expensive.

", "locationName":"topResources" + }, + "SumByFeature":{ + "shape":"UsageFeatureResultList", + "documentation":"

The usage statistic sum organized by feature.

", + "locationName":"sumByFeature" } }, "documentation":"

Contains the result of GuardDuty usage. If a UsageStatisticType is provided the result for other types will be null.

" diff --git a/services/health/pom.xml b/services/health/pom.xml index 896e6a8c9bee..d3b6f8ab0201 100644 --- a/services/health/pom.xml +++ b/services/health/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT health AWS Java SDK :: Services :: AWS Health APIs and Notifications diff --git a/services/healthlake/pom.xml b/services/healthlake/pom.xml index edd9deb5306b..d7d73ef9b394 100644 --- a/services/healthlake/pom.xml +++ b/services/healthlake/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT healthlake AWS Java SDK :: Services :: Health Lake diff --git a/services/honeycode/pom.xml b/services/honeycode/pom.xml index bb8ff2488a0d..612aa5f1f9b6 100644 --- a/services/honeycode/pom.xml +++ b/services/honeycode/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT honeycode AWS Java SDK :: Services :: Honeycode diff --git a/services/iam/pom.xml b/services/iam/pom.xml index 3d7b09c13a22..7824d2f399c9 100644 --- a/services/iam/pom.xml +++ b/services/iam/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iam AWS Java SDK :: Services :: AWS IAM diff --git a/services/iam/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/iam/src/main/resources/codegen-resources/endpoint-rule-set.json index cd01afb8e765..c1cc7ead31f3 100644 --- a/services/iam/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/iam/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,64 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "isSet", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" + "ref": "Region" + } ] } ], @@ -128,22 +111,13 @@ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -151,100 +125,221 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iam-fips.{Region}.api.aws", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://iam-fips.amazonaws.com", + "url": "https://iam.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "us-east-1" } ] }, @@ -254,828 +349,886 @@ } ] }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsDualStack" + "name" ] - } + }, + "aws-cn" ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://iam.{Region}.api.aws", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://iam.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] }, - "name" - ] - }, - "aws-cn" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ { - "ref": "UseFIPS" + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ { - "ref": "UseDualStack" + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] }, - true + { + "conditions": [], + "endpoint": { + "url": "https://iam.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, { "conditions": [], "endpoint": { - "url": "https://iam-fips.{Region}.api.amazonwebservices.com.cn", - "properties": {}, + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-gov-west-1" + } + ] + }, "headers": {} }, "type": "endpoint" } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] - } + }, + "aws-iso" ] } ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.c2s.ic.gov", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, { "conditions": [], "endpoint": { - "url": "https://iam-fips.{Region}.amazonaws.com.cn", - "properties": {}, + "url": "https://iam.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-iso-east-1" + } + ] + }, "headers": {} }, "type": "endpoint" } ] }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsDualStack" + "name" ] - } + }, + "aws-iso-b" ] } ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.sc2s.sgov.gov", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, { "conditions": [], "endpoint": { - "url": "https://iam.{Region}.api.amazonwebservices.com.cn", - "properties": {}, + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-isob-east-1" + } + ] + }, "headers": {} }, "type": "endpoint" } ] }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://iam.cn-north-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-north-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-us-gov" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] }, { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseDualStack" + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://iam-fips.{Region}.api.aws", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iam.us-gov.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "iam" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] } ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" - }, - "supportsDualStack" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iam.{Region}.api.aws", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://iam.us-gov.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-iso" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + ], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "PartitionResult" - }, - "supportsFIPS" + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://iam-fips.{Region}.c2s.ic.gov", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://iam.us-iso-east-1.c2s.ic.gov", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-iso-east-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-iso-b" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://iam-fips.{Region}.sc2s.sgov.gov", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-isob-east-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ + "conditions": [ { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ { - "ref": "PartitionResult" - }, - "supportsDualStack" + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://iam-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } - ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -1093,13 +1246,40 @@ } ], "endpoint": { - "url": "https://iam-fips.amazonaws.com", + "url": "https://iam.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://iam.cn-north-1.amazonaws.com.cn", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "cn-north-1" } ] }, @@ -1125,8 +1305,8 @@ "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "us-gov-west-1" } ] }, @@ -1135,67 +1315,63 @@ "type": "endpoint" }, { - "conditions": [], + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-global" + ] + } + ], "endpoint": { - "url": "https://iam-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, + "url": "https://iam.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-iso-east-1" + } + ] + }, "headers": {} }, "type": "endpoint" - } - ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", - "argv": [ + "conditions": [ { - "ref": "PartitionResult" + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-b-global" + ] + } + ], + "endpoint": { + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-isob-east-1" + } + ] }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { - "url": "https://iam.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://iam.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -1204,163 +1380,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-global" - ] - } - ], - "endpoint": { - "url": "https://iam.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-cn-global" - ] - } - ], - "endpoint": { - "url": "https://iam.cn-north-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-north-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-us-gov-global" - ] - } - ], - "endpoint": { - "url": "https://iam.us-gov.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-iso-global" - ] - } - ], - "endpoint": { - "url": "https://iam.us-iso-east-1.c2s.ic.gov", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-iso-east-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-iso-b-global" - ] - } - ], - "endpoint": { - "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-isob-east-1", - "signingName": "iam" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://iam.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/iam/src/main/resources/codegen-resources/endpoint-tests.json b/services/iam/src/main/resources/codegen-resources/endpoint-tests.json index 763c33059b16..18079eb05dc6 100644 --- a/services/iam/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/iam/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,72 +1,107 @@ { "testCases": [ { - "documentation": "For region aws-iso-global with FIPS disabled and DualStack disabled", + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-iso-east-1", - "name": "sigv4" + "signingRegion": "us-east-1" } ] }, - "url": "https://iam.us-iso-east-1.c2s.ic.gov" + "url": "https://iam.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "aws-iso-global" + "UseDualStack": false, + "Region": "aws-global" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region aws-global with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iam-fips.us-iso-east-1.c2s.ic.gov" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://iam-fips.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, + "Region": "aws-global" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iam-fips.us-east-1.api.aws" + } + }, + "params": { "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-iso-east-1", - "name": "sigv4" + "signingRegion": "us-east-1" } ] }, - "url": "https://iam.us-iso-east-1.c2s.ic.gov" + "url": "https://iam-fips.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iam.us-east-1.api.aws" + } + }, + "params": { "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-east-1", - "name": "sigv4" + "signingRegion": "us-east-1" } ] }, @@ -74,101 +109,92 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "aws-global" + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region aws-global with FIPS enabled and DualStack disabled", + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-east-1", - "name": "sigv4" + "signingRegion": "cn-north-1" } ] }, - "url": "https://iam-fips.amazonaws.com" + "url": "https://iam.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "aws-global" + "Region": "aws-cn-global" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iam-fips.us-east-1.api.aws" + "url": "https://iam-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "signingName": "iam", - "signingRegion": "us-east-1", - "name": "sigv4" - } - ] - }, - "url": "https://iam-fips.amazonaws.com" + "url": "https://iam-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iam.us-east-1.api.aws" + "url": "https://iam.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-east-1", - "name": "sigv4" + "signingRegion": "cn-north-1" } ] }, - "url": "https://iam.amazonaws.com" + "url": "https://iam.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "cn-north-1" } }, { @@ -178,9 +204,9 @@ "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-gov-west-1", - "name": "sigv4" + "signingRegion": "us-gov-west-1" } ] }, @@ -188,8 +214,8 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "aws-us-gov-global" } }, @@ -200,9 +226,9 @@ "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-gov-west-1", - "name": "sigv4" + "signingRegion": "us-gov-west-1" } ] }, @@ -210,8 +236,8 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "aws-us-gov-global" } }, @@ -223,8 +249,8 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, + "UseDualStack": true, "Region": "us-gov-east-1" } }, @@ -235,9 +261,9 @@ "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-gov-west-1", - "name": "sigv4" + "signingRegion": "us-gov-west-1" } ] }, @@ -245,8 +271,8 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-gov-east-1" } }, @@ -258,8 +284,8 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Region": "us-gov-east-1" } }, @@ -270,9 +296,9 @@ "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-gov-west-1", - "name": "sigv4" + "signingRegion": "us-gov-west-1" } ] }, @@ -280,162 +306,149 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "us-gov-east-1" } }, { - "documentation": "For region aws-iso-b-global with FIPS disabled and DualStack disabled", + "documentation": "For region aws-iso-global with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-isob-east-1", - "name": "sigv4" + "signingRegion": "us-iso-east-1" } ] }, - "url": "https://iam.us-isob-east-1.sc2s.sgov.gov" + "url": "https://iam.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "aws-iso-b-global" + "UseDualStack": false, + "Region": "aws-iso-global" } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iam-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://iam-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "us-isob-east-1", - "name": "sigv4" + "signingRegion": "us-iso-east-1" } ] }, - "url": "https://iam.us-isob-east-1.sc2s.sgov.gov" + "url": "https://iam.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "documentation": "For region aws-iso-b-global with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { "authSchemes": [ { + "name": "sigv4", "signingName": "iam", - "signingRegion": "cn-north-1", - "name": "sigv4" + "signingRegion": "us-isob-east-1" } ] }, - "url": "https://iam.cn-north-1.amazonaws.com.cn" + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "aws-cn-global" + "UseDualStack": false, + "Region": "aws-iso-b-global" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iam-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://iam-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iam-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iam.cn-north-1.api.amazonwebservices.com.cn" + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "iam", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "properties": { - "authSchemes": [ - { - "signingName": "iam", - "signingRegion": "cn-north-1", - "name": "sigv4" - } - ] - }, - "url": "https://iam.cn-north-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -445,8 +458,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -457,8 +470,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Region": "us-east-1", "Endpoint": "https://example.com" } diff --git a/services/iam/src/main/resources/codegen-resources/service-2.json b/services/iam/src/main/resources/codegen-resources/service-2.json index 6e39b9a65844..b4228759a724 100644 --- a/services/iam/src/main/resources/codegen-resources/service-2.json +++ b/services/iam/src/main/resources/codegen-resources/service-2.json @@ -233,7 +233,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider.

If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide.

When you create the IAM OIDC provider, you specify the following:

  • The URL of the OIDC identity provider (IdP) to trust

  • A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider

  • A list of thumbprints of one or more server certificates that the IdP uses

You get all of this information from the OIDC IdP you want to use to access Amazon Web Services.

Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Google, Auth0, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation.

The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.

" + "documentation":"

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider.

If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide.

When you create the IAM OIDC provider, you specify the following:

  • The URL of the OIDC identity provider (IdP) to trust

  • A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider

  • A list of tags that are attached to the specified IAM OIDC provider

  • A list of thumbprints of one or more server certificates that the IdP uses

You get all of this information from the OIDC IdP you want to use to access Amazon Web Services.

Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Google, Auth0, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation.

The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.

" }, "CreatePolicy":{ "name":"CreatePolicy", @@ -585,7 +585,7 @@ {"shape":"UnmodifiableEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the permissions boundary for the specified IAM role.

Deleting the permissions boundary for a role might increase its permissions. For example, it might allow anyone who assumes the role to perform all the actions granted in its permissions policies.

" + "documentation":"

Deletes the permissions boundary for the specified IAM role.

You cannot set the boundary for a service-linked role.

Deleting the permissions boundary for a role might increase its permissions. For example, it might allow anyone who assumes the role to perform all the actions granted in its permissions policies.

" }, "DeleteRolePolicy":{ "name":"DeleteRolePolicy", @@ -1072,7 +1072,7 @@ "errors":[ {"shape":"NoSuchEntityException"} ], - "documentation":"

Retrieves the service last accessed data report for Organizations that was previously generated using the GenerateOrganizationsAccessReport operation. This operation retrieves the status of your report job and the report contents.

Depending on the parameters that you passed when you generated the report, the data returned could include different information. For details, see GenerateOrganizationsAccessReport.

To call this operation, you must be signed in to the management account in your organization. SCPs must be enabled for your organization root. You must have permissions to perform this operation. For more information, see Refining permissions using service last accessed data in the IAM User Guide.

For each service that principals in an account (root users, IAM users, or IAM roles) could access using SCPs, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, it returns the reason that it failed.

By default, the list is sorted by service namespace.

" + "documentation":"

Retrieves the service last accessed data report for Organizations that was previously generated using the GenerateOrganizationsAccessReport operation. This operation retrieves the status of your report job and the report contents.

Depending on the parameters that you passed when you generated the report, the data returned could include different information. For details, see GenerateOrganizationsAccessReport.

To call this operation, you must be signed in to the management account in your organization. SCPs must be enabled for your organization root. You must have permissions to perform this operation. For more information, see Refining permissions using service last accessed data in the IAM User Guide.

For each service that principals in an account (root user, IAM users, or IAM roles) could access using SCPs, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, it returns the reason that it failed.

By default, the list is sorted by service namespace.

" }, "GetPolicy":{ "name":"GetPolicy", @@ -1884,7 +1884,7 @@ {"shape":"PolicyNotAttachableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Adds or updates the policy that is specified as the IAM role's permissions boundary. You can use an Amazon Web Services managed policy or a customer managed policy to set the boundary for a role. Use the boundary to control the maximum permissions that the role can have. Setting a permissions boundary is an advanced feature that can affect the permissions for the role.

You cannot set the boundary for a service-linked role.

Policies used as permissions boundaries do not provide permissions. You must also attach a permissions policy to the role. To learn how the effective permissions for a role are evaluated, see IAM JSON policy evaluation logic in the IAM User Guide.

" + "documentation":"

Adds or updates the policy that is specified as the IAM role's permissions boundary. You can use an Amazon Web Services managed policy or a customer managed policy to set the boundary for a role. Use the boundary to control the maximum permissions that the role can have. Setting a permissions boundary is an advanced feature that can affect the permissions for the role.

You cannot set the boundary for a service-linked role.

Policies used as permissions boundaries do not provide permissions. You must also attach a permissions policy to the role. To learn how the effective permissions for a role are evaluated, see IAM JSON policy evaluation logic in the IAM User Guide.

" }, "PutRolePolicy":{ "name":"PutRolePolicy", @@ -2114,7 +2114,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Adds one or more tags to an OpenID Connect (OIDC)-compatible identity provider. For more information about these providers, see About web identity federation. If a tag with the same key name already exists, then that tag is overwritten with the new value.

A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:

  • Administrative grouping and discovery - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name Cost Center and the value 41200.

  • Access control - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an OIDC provider that has a specified tag attached. For examples of policies that show how to use tags to control access, see Control access using IAM tags in the IAM User Guide.

  • If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

  • Amazon Web Services always interprets the tag Value as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.

" + "documentation":"

Adds one or more tags to an OpenID Connect (OIDC)-compatible identity provider. For more information about these providers, see About web identity federation. If a tag with the same key name already exists, then that tag is overwritten with the new value.

A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:

  • Administrative grouping and discovery - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name Cost Center and the value 41200.

  • Access control - Include tags in IAM identity-based and resource-based policies. You can use tags to restrict access to only an OIDC provider that has a specified tag attached. For examples of policies that show how to use tags to control access, see Control access using IAM tags in the IAM User Guide.

  • If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

  • Amazon Web Services always interprets the tag Value as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.

" }, "TagPolicy":{ "name":"TagPolicy", @@ -2194,7 +2194,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Adds one or more tags to an IAM user. If a tag with the same key name already exists, then that tag is overwritten with the new value.

A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:

  • Administrative grouping and discovery - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name Cost Center and the value 41200.

  • Access control - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an IAM requesting user that has a specified tag attached. You can also restrict access to only those resources that have a certain tag attached. For examples of policies that show how to use tags to control access, see Control access using IAM tags in the IAM User Guide.

  • Cost allocation - Use tags to help track which individuals and teams are using which Amazon Web Services resources.

  • If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

  • Amazon Web Services always interprets the tag Value as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.

For more information about tagging, see Tagging IAM identities in the IAM User Guide.

" + "documentation":"

Adds one or more tags to an IAM user. If a tag with the same key name already exists, then that tag is overwritten with the new value.

A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:

  • Administrative grouping and discovery - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name Cost Center and the value 41200.

  • Access control - Include tags in IAM identity-based and resource-based policies. You can use tags to restrict access to only an IAM requesting user that has a specified tag attached. You can also restrict access to only those resources that have a certain tag attached. For examples of policies that show how to use tags to control access, see Control access using IAM tags in the IAM User Guide.

  • Cost allocation - Use tags to help track which individuals and teams are using which Amazon Web Services resources.

  • If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see Tagging IAM resources in the IAM User Guide.

  • Amazon Web Services always interprets the tag Value as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.

For more information about tagging, see Tagging IAM identities in the IAM User Guide.

" }, "UntagInstanceProfile":{ "name":"UntagInstanceProfile", @@ -2623,7 +2623,7 @@ }, "EntityPath":{ "shape":"organizationsEntityPathType", - "documentation":"

The path of the Organizations entity (root, organizational unit, or account) from which an authenticated principal last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no principals (IAM users, IAM roles, or root users) in the reported Organizations entity attempted to access the service within the tracking period.

" + "documentation":"

The path of the Organizations entity (root, organizational unit, or account) from which an authenticated principal last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no principals (IAM users, IAM roles, or root user) in the reported Organizations entity attempted to access the service within the tracking period.

" }, "LastAuthenticatedTime":{ "shape":"dateType", @@ -2631,7 +2631,7 @@ }, "TotalAuthenticatedEntities":{ "shape":"integerType", - "documentation":"

The number of accounts with authenticated principals (root users, IAM users, and IAM roles) that attempted to access the service in the tracking period.

" + "documentation":"

The number of accounts with authenticated principals (root user, IAM users, and IAM roles) that attempted to access the service in the tracking period.

" } }, "documentation":"

An object that contains details about when a principal in the reported Organizations entity last attempted to access an Amazon Web Services service. A principal can be an IAM user, an IAM role, or the Amazon Web Services account root user within the reported Organizations entity.

This data type is a response element in the GetOrganizationsAccessReport operation.

" @@ -3079,7 +3079,7 @@ }, "ThumbprintList":{ "shape":"thumbprintListType", - "documentation":"

A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only one entry. However, IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates.

The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string.

You must provide at least one thumbprint when creating an IAM OIDC provider. For example, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com.

For more information about obtaining the OIDC provider thumbprint, see Obtaining the thumbprint for an OpenID Connect provider in the IAM User Guide.

" + "documentation":"

A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only one entry. However, IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates.

The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string.

You must provide at least one thumbprint when creating an IAM OIDC provider. For example, assume that the OIDC provider is server.example.com and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com.

For more information about obtaining the OIDC provider thumbprint, see Obtaining the thumbprint for an OpenID Connect provider in the IAM user Guide.

" }, "Tags":{ "shape":"tagListType", @@ -3184,7 +3184,7 @@ }, "RoleName":{ "shape":"roleNameType", - "documentation":"

The name of the role to create.

IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both \"MyResource\" and \"myresource\".

" + "documentation":"

The name of the role to create.

IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both \"MyResource\" and \"myresource\".

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

" }, "AssumeRolePolicyDocument":{ "shape":"policyDocumentType", @@ -3349,7 +3349,7 @@ }, "VirtualMFADeviceName":{ "shape":"virtualMFADeviceName", - "documentation":"

The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device.

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

" + "documentation":"

The name of the virtual MFA device, which must be unique. Use with path to uniquely identify a virtual MFA device.

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

" }, "Tags":{ "shape":"tagListType", @@ -7079,7 +7079,7 @@ }, "RoleLastUsed":{ "shape":"RoleLastUsed", - "documentation":"

Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM User Guide.

" + "documentation":"

Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide.

" } }, "documentation":"

Contains information about an IAM role. This structure is returned as a response element in several API operations that interact with roles.

" @@ -7147,7 +7147,7 @@ "documentation":"

The name of the Amazon Web Services Region in which the role was last used.

" } }, - "documentation":"

Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM User Guide.

This data type is returned as a response element in the GetRole and GetAccountAuthorizationDetails operations.

" + "documentation":"

Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide.

This data type is returned as a response element in the GetRole and GetAccountAuthorizationDetails operations.

" }, "RoleUsageListType":{ "type":"list", @@ -7882,7 +7882,7 @@ "members":{ "message":{"shape":"unmodifiableEntityMessage"} }, - "documentation":"

The request was rejected because only the service that depends on the service-linked role can modify or delete the role on your behalf. The error message includes the name of the service that depends on this service-linked role. You must request the change through that service.

", + "documentation":"

The request was rejected because service-linked roles are protected Amazon Web Services resources. Only the service that depends on the service-linked role can modify or delete the role on your behalf. The error message includes the name of the service that depends on this service-linked role. You must request the change through that service.

", "error":{ "code":"UnmodifiableEntity", "httpStatusCode":400, diff --git a/services/identitystore/pom.xml b/services/identitystore/pom.xml index 2de97bff1f70..024480655424 100644 --- a/services/identitystore/pom.xml +++ b/services/identitystore/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT identitystore AWS Java SDK :: Services :: Identitystore diff --git a/services/identitystore/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/identitystore/src/main/resources/codegen-resources/endpoint-rule-set.json index 740981a6cf06..4c57a1482291 100644 --- a/services/identitystore/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/identitystore/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identitystore-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://identitystore-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://identitystore.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://identitystore.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://identitystore-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://identitystore-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identitystore.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://identitystore.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identitystore.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://identitystore.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/identitystore/src/main/resources/codegen-resources/endpoint-tests.json b/services/identitystore/src/main/resources/codegen-resources/endpoint-tests.json index 4ff23872f57e..128082116cc8 100644 --- a/services/identitystore/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/identitystore/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,41 +1,28 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.ap-south-1.amazonaws.com" + "url": "https://identitystore.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-south-1.api.aws" + "url": "https://identitystore.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", + "Region": "ap-northeast-2", + "UseDualStack": false, "UseFIPS": false } }, @@ -47,99 +34,34 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://identitystore.us-gov-east-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.us-gov-east-1.amazonaws.com" + "url": "https://identitystore.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "Region": "us-gov-east-1", "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.ca-central-1.amazonaws.com" + "url": "https://identitystore.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", "UseFIPS": false } }, @@ -151,47 +73,8 @@ } }, "params": { - "UseDualStack": false, "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.eu-central-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", "UseFIPS": false } }, @@ -203,99 +86,8 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.us-west-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://identitystore.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", "UseFIPS": false } }, @@ -307,47 +99,21 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-north-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.eu-west-2.amazonaws.com" + "url": "https://identitystore.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", "UseFIPS": false } }, @@ -359,206 +125,167 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-west-2", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.eu-west-1.amazonaws.com" + "url": "https://identitystore.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.eu-west-1.api.aws" + "url": "https://identitystore.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-west-1", + "Region": "us-east-2", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.eu-west-1.amazonaws.com" + "url": "https://identitystore.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "eu-west-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.ap-northeast-2.api.aws" + "url": "https://identitystore-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.ap-northeast-2.amazonaws.com" + "url": "https://identitystore-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "ap-northeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-northeast-2.api.aws" + "url": "https://identitystore.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.ap-northeast-1.api.aws" + "url": "https://identitystore-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-northeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.ap-northeast-1.amazonaws.com" + "url": "https://identitystore-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-northeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-northeast-1.api.aws" + "url": "https://identitystore.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-northeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-northeast-1.amazonaws.com" + "url": "https://identitystore.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-northeast-1", "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.us-gov-west-1.api.aws" + "url": "https://identitystore.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.us-gov-west-1.amazonaws.com" + "url": "https://identitystore.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "us-gov-west-1", "UseFIPS": true } }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, { "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { @@ -567,221 +294,162 @@ } }, "params": { - "UseDualStack": false, "Region": "us-gov-west-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.ap-southeast-1.amazonaws.com" + "url": "https://identitystore.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-southeast-1.api.aws" + "url": "https://identitystore-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-southeast-1.amazonaws.com" + "url": "https://identitystore.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", + "Region": "us-gov-east-1", + "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://identitystore-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.ap-southeast-2.amazonaws.com" + "url": "https://identitystore-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://identitystore.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.ap-southeast-2.amazonaws.com" + "url": "https://identitystore.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://identitystore-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.us-east-1.amazonaws.com" + "url": "https://identitystore-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://identitystore.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://identitystore.us-east-1.amazonaws.com" + "url": "https://identitystore.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://identitystore-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://identitystore.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://identitystore.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -789,7 +457,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -800,8 +467,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -812,11 +479,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/identitystore/src/main/resources/codegen-resources/service-2.json b/services/identitystore/src/main/resources/codegen-resources/service-2.json index b43f35f9da54..1c3748844b01 100644 --- a/services/identitystore/src/main/resources/codegen-resources/service-2.json +++ b/services/identitystore/src/main/resources/codegen-resources/service-2.json @@ -69,7 +69,7 @@ {"shape":"ValidationException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a new user within the specified identity store.

" + "documentation":"

Creates a user within the specified identity store.

" }, "DeleteGroup":{ "name":"DeleteGroup", @@ -423,7 +423,7 @@ "documentation":"

An entity attribute that's unique to a specific entity.

" } }, - "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For example, a unique GroupDisplayName.

", + "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute.

", "union":true }, "AttributeOperation":{ @@ -532,7 +532,7 @@ }, "DisplayName":{ "shape":"GroupDisplayName", - "documentation":"

A string containing the name of the group. This value is commonly displayed when the group is referenced.

" + "documentation":"

A string containing the name of the group. This value is commonly displayed when the group is referenced. \"Administrator\" and \"AWSAdministrators\" are reserved names and can't be used for users or groups.

" }, "Description":{ "shape":"SensitiveStringType", @@ -567,15 +567,15 @@ }, "UserName":{ "shape":"UserName", - "documentation":"

A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.

" + "documentation":"

A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store. \"Administrator\" and \"AWSAdministrators\" are reserved names and can't be used for users or groups.

" }, "Name":{ "shape":"Name", - "documentation":"

An object containing the user's name.

" + "documentation":"

An object containing the name of the user.

" }, "DisplayName":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's name. This value is typically formatted for display when the user is referenced. For example, \"John Doe.\"

" + "documentation":"

A string containing the name of the user. This value is typically formatted for display when the user is referenced. For example, \"John Doe.\"

" }, "NickName":{ "shape":"SensitiveStringType", @@ -583,7 +583,7 @@ }, "ProfileUrl":{ "shape":"SensitiveStringType", - "documentation":"

A string containing a URL that may be associated with the user.

" + "documentation":"

A string containing a URL that might be associated with the user.

" }, "Emails":{ "shape":"Emails", @@ -599,11 +599,11 @@ }, "UserType":{ "shape":"SensitiveStringType", - "documentation":"

A string indicating the user's type. Possible values depend on each customer's specific needs, so they are left unspecified.

" + "documentation":"

A string indicating the type of user. Possible values are left unspecified. The value can vary based on your specific use case.

" }, "Title":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's title. Possible values are left unspecified given that they depend on each customer's specific needs.

" + "documentation":"

A string containing the title of the user. Possible values are left unspecified. The value can vary based on your specific use case.

" }, "PreferredLanguage":{ "shape":"SensitiveStringType", @@ -611,11 +611,11 @@ }, "Locale":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's geographical region or location.

" + "documentation":"

A string containing the geographical region or location of the user.

" }, "Timezone":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's time zone.

" + "documentation":"

A string containing the time zone of the user.

" } } }, @@ -831,7 +831,7 @@ }, "DisplayName":{ "shape":"SensitiveStringType", - "documentation":"

The user's name value for display.

" + "documentation":"

The display name of the user.

" }, "NickName":{ "shape":"SensitiveStringType", @@ -843,11 +843,11 @@ }, "Emails":{ "shape":"Emails", - "documentation":"

The user's email value.

" + "documentation":"

The email address of the user.

" }, "Addresses":{ "shape":"Addresses", - "documentation":"

The user's physical address.

" + "documentation":"

The physical address of the user.

" }, "PhoneNumbers":{ "shape":"PhoneNumbers", @@ -855,11 +855,11 @@ }, "UserType":{ "shape":"SensitiveStringType", - "documentation":"

A string indicating the user's type.

" + "documentation":"

A string indicating the type of user.

" }, "Title":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's title.

" + "documentation":"

A string containing the title of the user.

" }, "PreferredLanguage":{ "shape":"SensitiveStringType", @@ -867,7 +867,7 @@ }, "Locale":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's geographical region or location.

" + "documentation":"

A string containing the geographical region or location of the user.

" }, "Timezone":{ "shape":"SensitiveStringType", @@ -979,7 +979,7 @@ }, "AlternateIdentifier":{ "shape":"AlternateIdentifier", - "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For example, a unique GroupDisplayName.

" + "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For the unique attribute, the only valid path is displayName.

" } } }, @@ -1052,7 +1052,7 @@ }, "AlternateIdentifier":{ "shape":"AlternateIdentifier", - "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For example, a unique UserDisplayName.

" + "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For the unique attribute, the only valid paths are userName and emails.value.

" } } }, @@ -1086,7 +1086,7 @@ }, "DisplayName":{ "shape":"GroupDisplayName", - "documentation":"

The group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time the group is created and stored as an attribute of the group object in the identity store.

" + "documentation":"

The display name value for the group. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time the group is created and stored as an attribute of the group object in the identity store.

" }, "ExternalIds":{ "shape":"ExternalIds", @@ -1101,7 +1101,7 @@ "documentation":"

The globally unique identifier for the identity store.

" } }, - "documentation":"

A group object that contains a specified group’s metadata and attributes.

" + "documentation":"

A group object that contains the metadata and attributes for a specified group.

" }, "GroupDisplayName":{ "type":"string", @@ -1185,7 +1185,7 @@ }, "RetryAfterSeconds":{ "shape":"RetryAfterSeconds", - "documentation":"

The number of seconds that you would like to wait before retrying the next request.

" + "documentation":"

The number of seconds to wait before retrying the next request.

" } }, "documentation":"

The request processing has failed because of an unknown error, exception or failure with an internal server.

", @@ -1531,7 +1531,7 @@ }, "RetryAfterSeconds":{ "shape":"RetryAfterSeconds", - "documentation":"

The number of seconds that you would like to wait before retrying the next request.

" + "documentation":"

The number of seconds to wait before retrying the next request.

" } }, "documentation":"

Indicates that the principal has crossed the throttling limits of the API operations.

", @@ -1631,11 +1631,11 @@ }, "Name":{ "shape":"Name", - "documentation":"

An object containing the user's name.

" + "documentation":"

An object containing the name of the user.

" }, "DisplayName":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's name that's formatted for display when the user is referenced. For example, \"John Doe.\"

" + "documentation":"

A string containing the name of the user that is formatted for display when the user is referenced. For example, \"John Doe.\"

" }, "NickName":{ "shape":"SensitiveStringType", @@ -1643,7 +1643,7 @@ }, "ProfileUrl":{ "shape":"SensitiveStringType", - "documentation":"

A string containing a URL that may be associated with the user.

" + "documentation":"

A string containing a URL that might be associated with the user.

" }, "Emails":{ "shape":"Emails", @@ -1659,11 +1659,11 @@ }, "UserType":{ "shape":"SensitiveStringType", - "documentation":"

A string indicating the user's type. Possible values depend on each customer's specific needs, so they are left unspecified.

" + "documentation":"

A string indicating the type of user. Possible values are left unspecified. The value can vary based on your specific use case.

" }, "Title":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's title. Possible values depend on each customer's specific needs, so they are left unspecified.

" + "documentation":"

A string containing the title of the user. Possible values are left unspecified. The value can vary based on your specific use case.

" }, "PreferredLanguage":{ "shape":"SensitiveStringType", @@ -1671,18 +1671,18 @@ }, "Locale":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's geographical region or location.

" + "documentation":"

A string containing the geographical region or location of the user.

" }, "Timezone":{ "shape":"SensitiveStringType", - "documentation":"

A string containing the user's time zone.

" + "documentation":"

A string containing the time zone of the user.

" }, "IdentityStoreId":{ "shape":"IdentityStoreId", "documentation":"

The globally unique identifier for the identity store.

" } }, - "documentation":"

A user object that contains a specified user’s metadata and attributes.

" + "documentation":"

A user object that contains the metadata and attributes for a specified user.

" }, "UserName":{ "type":"string", @@ -1708,5 +1708,5 @@ "exception":true } }, - "documentation":"

The Identity Store service used by AWS IAM Identity Center (successor to AWS Single Sign-On) provides a single place to retrieve all of your identities (users and groups). For more information, see the IAM Identity Center User Guide.

 <note> <p>Although AWS Single Sign-On was renamed, the <code>sso</code> and <code>identitystore</code> API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed">IAM Identity Center rename</a>.</p> </note> <p>This reference guide describes the identity store operations that you can call programatically and includes detailed information on data types and errors.</p> 
" + "documentation":"

The Identity Store service used by AWS IAM Identity Center (successor to AWS Single Sign-On) provides a single place to retrieve all of your identities (users and groups). For more information, see the IAM Identity Center User Guide.

 <note> <p>Although AWS Single Sign-On was renamed, the <code>sso</code> and <code>identitystore</code> API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed">IAM Identity Center rename</a>.</p> </note> <p>This reference guide describes the identity store operations that you can call programatically and includes detailed information about data types and errors.</p> 
" } diff --git a/services/imagebuilder/pom.xml b/services/imagebuilder/pom.xml index 4f2b05b57d32..88c1aef3ba95 100644 --- a/services/imagebuilder/pom.xml +++ b/services/imagebuilder/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT imagebuilder AWS Java SDK :: Services :: Imagebuilder diff --git a/services/imagebuilder/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/imagebuilder/src/main/resources/codegen-resources/endpoint-rule-set.json index 0cd223e066ff..abebd000844d 100644 --- a/services/imagebuilder/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/imagebuilder/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://imagebuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://imagebuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://imagebuilder.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://imagebuilder.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://imagebuilder-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://imagebuilder-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://imagebuilder.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://imagebuilder.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://imagebuilder.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,28 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://imagebuilder.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/imagebuilder/src/main/resources/codegen-resources/endpoint-tests.json b/services/imagebuilder/src/main/resources/codegen-resources/endpoint-tests.json index 2c6ebb7965df..ed29f944ecff 100644 --- a/services/imagebuilder/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/imagebuilder/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,107 +1,107 @@ { "testCases": [ { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://imagebuilder-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://imagebuilder-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "UseDualStack": true, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder.us-iso-east-1.c2s.ic.gov" + "url": "https://imagebuilder-fips.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://imagebuilder-fips.us-east-1.api.aws" + "url": "https://imagebuilder.us-east-1.api.aws" } }, "params": { "UseDualStack": true, - "UseFIPS": true, + "UseFIPS": false, "Region": "us-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder-fips.us-east-1.amazonaws.com" + "url": "https://imagebuilder.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "UseFIPS": true, + "UseFIPS": false, "Region": "us-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://imagebuilder.us-east-1.api.aws" + "url": "https://imagebuilder-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder.us-east-1.amazonaws.com" + "url": "https://imagebuilder-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://imagebuilder.us-gov-west-1.amazonaws.com" + "url": "https://imagebuilder.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, + "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder.us-gov-west-1.amazonaws.com" + "url": "https://imagebuilder.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -130,6 +130,32 @@ "Region": "us-gov-east-1" } }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://imagebuilder.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://imagebuilder.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, { "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { @@ -157,85 +183,103 @@ } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://imagebuilder-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder.us-isob-east-1.sc2s.sgov.gov" + "url": "https://imagebuilder.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://imagebuilder-fips.cn-north-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseDualStack": true, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder-fips.cn-north-1.amazonaws.com.cn" + "url": "https://imagebuilder-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://imagebuilder.cn-north-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://imagebuilder.cn-north-1.amazonaws.com.cn" + "url": "https://imagebuilder.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -248,6 +292,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { @@ -271,6 +328,12 @@ "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/imagebuilder/src/main/resources/codegen-resources/paginators-1.json b/services/imagebuilder/src/main/resources/codegen-resources/paginators-1.json index 448bc9a13399..8053cf4f7616 100644 --- a/services/imagebuilder/src/main/resources/codegen-resources/paginators-1.json +++ b/services/imagebuilder/src/main/resources/codegen-resources/paginators-1.json @@ -54,6 +54,17 @@ "limit_key": "maxResults", "result_key": "imageRecipeSummaryList" }, + "ListImageScanFindingAggregations": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "responses" + }, + "ListImageScanFindings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findings" + }, "ListImages": { "input_token": "nextToken", "output_token": "nextToken", @@ -65,6 +76,18 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "infrastructureConfigurationSummaryList" + }, + "ListWorkflowExecutions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "workflowExecutions" + }, + "ListWorkflowStepExecutions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "steps" } } } diff --git a/services/imagebuilder/src/main/resources/codegen-resources/service-2.json b/services/imagebuilder/src/main/resources/codegen-resources/service-2.json index b6ad3f04ad21..dee0502afd3c 100644 --- a/services/imagebuilder/src/main/resources/codegen-resources/service-2.json +++ b/services/imagebuilder/src/main/resources/codegen-resources/service-2.json @@ -121,7 +121,7 @@ {"shape":"ResourceInUseException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a new image. This request will create a new image along with all of the configured output resources defined in the distribution configuration. You must specify exactly one recipe for your image, using either a ContainerRecipeArn or an ImageRecipeArn.

" + "documentation":"

Creates a new image. This request will create a new image along with all of the configured output resources defined in the distribution configuration. You must specify exactly one recipe for your image, using either a ContainerRecipeArn or an ImageRecipeArn.

" }, "CreateImagePipeline":{ "name":"CreateImagePipeline", @@ -143,7 +143,7 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a new image pipeline. Image pipelines enable you to automate the creation and distribution of images.

" + "documentation":"

Creates a new image pipeline. Image pipelines enable you to automate the creation and distribution of images.

" }, "CreateImageRecipe":{ "name":"CreateImageRecipe", @@ -166,7 +166,7 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a new image recipe. Image recipes define how images are configured, tested, and assessed.

" + "documentation":"

Creates a new image recipe. Image recipes define how images are configured, tested, and assessed.

" }, "CreateInfrastructureConfiguration":{ "name":"CreateInfrastructureConfiguration", @@ -188,7 +188,7 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

" + "documentation":"

Creates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

" }, "DeleteComponent":{ "name":"DeleteComponent", @@ -207,7 +207,7 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceDependencyException"} ], - "documentation":"

Deletes a component build version.

" + "documentation":"

Deletes a component build version.

" }, "DeleteContainerRecipe":{ "name":"DeleteContainerRecipe", @@ -245,7 +245,7 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceDependencyException"} ], - "documentation":"

Deletes a distribution configuration.

" + "documentation":"

Deletes a distribution configuration.

" }, "DeleteImage":{ "name":"DeleteImage", @@ -283,7 +283,7 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceDependencyException"} ], - "documentation":"

Deletes an image pipeline.

" + "documentation":"

Deletes an image pipeline.

" }, "DeleteImageRecipe":{ "name":"DeleteImageRecipe", @@ -302,7 +302,7 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceDependencyException"} ], - "documentation":"

Deletes an image recipe.

" + "documentation":"

Deletes an image recipe.

" }, "DeleteInfrastructureConfiguration":{ "name":"DeleteInfrastructureConfiguration", @@ -321,7 +321,7 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceDependencyException"} ], - "documentation":"

Deletes an infrastructure configuration.

" + "documentation":"

Deletes an infrastructure configuration.

" }, "GetComponent":{ "name":"GetComponent", @@ -339,7 +339,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets a component object.

" + "documentation":"

Gets a component object.

" }, "GetComponentPolicy":{ "name":"GetComponentPolicy", @@ -357,7 +357,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets a component policy.

" + "documentation":"

Gets a component policy.

" }, "GetContainerRecipe":{ "name":"GetContainerRecipe", @@ -411,7 +411,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets a distribution configuration.

" + "documentation":"

Gets a distribution configuration.

" }, "GetImage":{ "name":"GetImage", @@ -429,7 +429,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets an image.

" + "documentation":"

Gets an image.

" }, "GetImagePipeline":{ "name":"GetImagePipeline", @@ -447,7 +447,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets an image pipeline.

" + "documentation":"

Gets an image pipeline.

" }, "GetImagePolicy":{ "name":"GetImagePolicy", @@ -465,7 +465,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets an image policy.

" + "documentation":"

Gets an image policy.

" }, "GetImageRecipe":{ "name":"GetImageRecipe", @@ -483,7 +483,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets an image recipe.

" + "documentation":"

Gets an image recipe.

" }, "GetImageRecipePolicy":{ "name":"GetImageRecipePolicy", @@ -501,7 +501,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets an image recipe policy.

" + "documentation":"

Gets an image recipe policy.

" }, "GetInfrastructureConfiguration":{ "name":"GetInfrastructureConfiguration", @@ -519,7 +519,43 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Gets an infrastructure configuration.

" + "documentation":"

Gets an infrastructure configuration.

" + }, + "GetWorkflowExecution":{ + "name":"GetWorkflowExecution", + "http":{ + "method":"GET", + "requestUri":"/GetWorkflowExecution" + }, + "input":{"shape":"GetWorkflowExecutionRequest"}, + "output":{"shape":"GetWorkflowExecutionResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ], + "documentation":"

Get the runtime information that was logged for a specific runtime instance of the workflow.

" + }, + "GetWorkflowStepExecution":{ + "name":"GetWorkflowStepExecution", + "http":{ + "method":"GET", + "requestUri":"/GetWorkflowStepExecution" + }, + "input":{"shape":"GetWorkflowStepExecutionRequest"}, + "output":{"shape":"GetWorkflowStepExecutionResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ], + "documentation":"

Get the runtime information that was logged for a specific runtime instance of the workflow step.

" }, "ImportComponent":{ "name":"ImportComponent", @@ -575,7 +611,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Returns the list of component build versions for the specified semantic version.

The semantic version has four nodes: <major>.<minor>.<patch>/<build>. You can assign values for the first three, and can filter on all of them.

Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards.

" + "documentation":"

Returns the list of component build versions for the specified semantic version.

The semantic version has four nodes: <major>.<minor>.<patch>/<build>. You can assign values for the first three, and can filter on all of them.

Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards.

" }, "ListComponents":{ "name":"ListComponents", @@ -651,7 +687,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Returns a list of image build versions.

" + "documentation":"

Returns a list of image build versions.

" }, "ListImagePackages":{ "name":"ListImagePackages", @@ -729,7 +765,45 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Returns a list of image recipes.

" + "documentation":"

Returns a list of image recipes.

" + }, + "ListImageScanFindingAggregations":{ + "name":"ListImageScanFindingAggregations", + "http":{ + "method":"POST", + "requestUri":"/ListImageScanFindingAggregations" + }, + "input":{"shape":"ListImageScanFindingAggregationsRequest"}, + "output":{"shape":"ListImageScanFindingAggregationsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ], + "documentation":"

Returns a list of image scan aggregations for your account. You can filter by the type of key that Image Builder uses to group results. For example, if you want to get a list of findings by severity level for one of your pipelines, you might specify your pipeline with the imagePipelineArn filter. If you don't specify a filter, Image Builder returns an aggregation for your account.

To streamline results, you can use the following filters in your request:

  • accountId

  • imageBuildVersionArn

  • imagePipelineArn

  • vulnerabilityId

" + }, + "ListImageScanFindings":{ + "name":"ListImageScanFindings", + "http":{ + "method":"POST", + "requestUri":"/ListImageScanFindings" + }, + "input":{"shape":"ListImageScanFindingsRequest"}, + "output":{"shape":"ListImageScanFindingsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ], + "documentation":"

Returns a list of image scan findings for your account.

" }, "ListImages":{ "name":"ListImages", @@ -767,7 +841,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Returns a list of infrastructure configurations.

" + "documentation":"

Returns a list of infrastructure configurations.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -782,7 +856,45 @@ {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Returns the list of tags for the specified resource.

" + "documentation":"

Returns the list of tags for the specified resource.

" + }, + "ListWorkflowExecutions":{ + "name":"ListWorkflowExecutions", + "http":{ + "method":"POST", + "requestUri":"/ListWorkflowExecutions" + }, + "input":{"shape":"ListWorkflowExecutionsRequest"}, + "output":{"shape":"ListWorkflowExecutionsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ], + "documentation":"

Returns a list of workflow runtime instance metadata objects for a specific image build version.

" + }, + "ListWorkflowStepExecutions":{ + "name":"ListWorkflowStepExecutions", + "http":{ + "method":"POST", + "requestUri":"/ListWorkflowStepExecutions" + }, + "input":{"shape":"ListWorkflowStepExecutionsRequest"}, + "output":{"shape":"ListWorkflowStepExecutionsResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ForbiddenException"}, + {"shape":"CallRateLimitExceededException"} + ], + "documentation":"

Shows runtime data for each step in a runtime instance of the workflow that you specify in the request.

" }, "PutComponentPolicy":{ "name":"PutComponentPolicy", @@ -802,7 +914,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Applies a policy to a component. We recommend that you call the RAM API CreateResourceShare to share resources. If you call the Image Builder API PutComponentPolicy, you must also call the RAM API PromoteResourceShareCreatedFromPolicy in order for the resource to be visible to all principals with whom the resource is shared.

" + "documentation":"

Applies a policy to a component. We recommend that you call the RAM API CreateResourceShare to share resources. If you call the Image Builder API PutComponentPolicy, you must also call the RAM API PromoteResourceShareCreatedFromPolicy in order for the resource to be visible to all principals with whom the resource is shared.

" }, "PutContainerRecipePolicy":{ "name":"PutContainerRecipePolicy", @@ -862,7 +974,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Applies a policy to an image recipe. We recommend that you call the RAM API CreateResourceShare to share resources. If you call the Image Builder API PutImageRecipePolicy, you must also call the RAM API PromoteResourceShareCreatedFromPolicy in order for the resource to be visible to all principals with whom the resource is shared.

" + "documentation":"

Applies a policy to an image recipe. We recommend that you call the RAM API CreateResourceShare to share resources. If you call the Image Builder API PutImageRecipePolicy, you must also call the RAM API PromoteResourceShareCreatedFromPolicy in order for the resource to be visible to all principals with whom the resource is shared.

" }, "StartImagePipelineExecution":{ "name":"StartImagePipelineExecution", @@ -883,7 +995,7 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Manually triggers a pipeline to create an image.

" + "documentation":"

Manually triggers a pipeline to create an image.

" }, "TagResource":{ "name":"TagResource", @@ -898,7 +1010,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Adds a tag to a resource.

" + "documentation":"

Adds a tag to a resource.

" }, "UntagResource":{ "name":"UntagResource", @@ -913,7 +1025,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Removes a tag from a resource.

" + "documentation":"

Removes a tag from a resource.

" }, "UpdateDistributionConfiguration":{ "name":"UpdateDistributionConfiguration", @@ -934,7 +1046,7 @@ {"shape":"ResourceInUseException"}, {"shape":"InvalidParameterCombinationException"} ], - "documentation":"

Updates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.

" + "documentation":"

Updates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.

" }, "UpdateImagePipeline":{ "name":"UpdateImagePipeline", @@ -954,7 +1066,7 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Updates an image pipeline. Image pipelines enable you to automate the creation and distribution of images.

UpdateImagePipeline does not support selective updates for the pipeline. You must specify all of the required properties in the update request, not just the properties that have changed.

" + "documentation":"

Updates an image pipeline. Image pipelines enable you to automate the creation and distribution of images.

UpdateImagePipeline does not support selective updates for the pipeline. You must specify all of the required properties in the update request, not just the properties that have changed.

" }, "UpdateInfrastructureConfiguration":{ "name":"UpdateInfrastructureConfiguration", @@ -974,10 +1086,24 @@ {"shape":"CallRateLimitExceededException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Updates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

" + "documentation":"

Updates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

" } }, "shapes":{ + "AccountAggregation":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"NonEmptyString", + "documentation":"

Identifies the account that owns the aggregated resource findings.

" + }, + "severityCounts":{ + "shape":"SeverityCounts", + "documentation":"

Counts by severity level for medium severity and higher level findings, plus a total for all of the findings.

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

Contains counts of vulnerability findings from image scans that run when you create new Image Builder images, or build new versions of existing images. The vulnerability counts are grouped by severity level. The counts are aggregated across resources to create the final tally for the account that owns them.

" + }, "AccountId":{ "type":"string", "pattern":"^[0-9]{12}$" @@ -1027,7 +1153,7 @@ "documentation":"

The account ID of the owner of the AMI.

" } }, - "documentation":"

Details of an Amazon EC2 AMI.

" + "documentation":"

Details of an Amazon EC2 AMI.

" }, "AmiDistributionConfiguration":{ "type":"structure", @@ -1054,10 +1180,10 @@ }, "launchPermission":{ "shape":"LaunchPermissionConfiguration", - "documentation":"

Launch permissions can be used to configure which Amazon Web Services accounts can use the AMI to launch instances.

" + "documentation":"

Launch permissions can be used to configure which Amazon Web Services accounts can use the AMI to launch instances.

" } }, - "documentation":"

Define and configure the output AMIs of the pipeline.

" + "documentation":"

Define and configure the output AMIs of the pipeline.

" }, "AmiList":{ "type":"list", @@ -1097,7 +1223,7 @@ "members":{ "imageBuildVersionArn":{ "shape":"ImageBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the image whose creation you want to cancel.

" + "documentation":"

The Amazon Resource Name (ARN) of the image that you want to cancel creation for.

" }, "clientToken":{ "shape":"ClientToken", @@ -1119,7 +1245,7 @@ }, "imageBuildVersionArn":{ "shape":"ImageBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the image whose creation has been cancelled.

" + "documentation":"

The ARN of the image whose creation this request canceled.

" } } }, @@ -1232,7 +1358,7 @@ "documentation":"

A group of parameter settings that Image Builder uses to configure the component for a specific recipe.

" } }, - "documentation":"

Configuration details of the component.

" + "documentation":"

Configuration details of the component.

" }, "ComponentConfigurationList":{ "type":"list", @@ -1665,7 +1791,7 @@ }, "supportedOsVersions":{ "shape":"OsVersionList", - "documentation":"

The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation.

" + "documentation":"

The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation.

" }, "data":{ "shape":"InlineComponentData", @@ -1703,7 +1829,7 @@ }, "componentBuildVersionArn":{ "shape":"ComponentBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the component that was created by this request.

" + "documentation":"

The Amazon Resource Name (ARN) of the component that this request created.

" } } }, @@ -1813,23 +1939,23 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the distribution configuration.

" + "documentation":"

The name of the distribution configuration.

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

The description of the distribution configuration.

" + "documentation":"

The description of the distribution configuration.

" }, "distributions":{ "shape":"DistributionList", - "documentation":"

The distributions of the distribution configuration.

" + "documentation":"

The distributions of the distribution configuration.

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

The tags of the distribution configuration.

" + "documentation":"

The tags of the distribution configuration.

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

The idempotency token of the distribution configuration.

", + "documentation":"

The idempotency token of the distribution configuration.

", "idempotencyToken":true } } @@ -1839,15 +1965,15 @@ "members":{ "requestId":{ "shape":"NonEmptyString", - "documentation":"

The request ID that uniquely identifies this request.

" + "documentation":"

The request ID that uniquely identifies this request.

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

The idempotency token used to make this request idempotent.

" + "documentation":"

The idempotency token used to make this request idempotent.

" }, "distributionConfigurationArn":{ "shape":"DistributionConfigurationArn", - "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that was created by this request.

" + "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that was created by this request.

" } } }, @@ -1861,15 +1987,15 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the image pipeline.

" + "documentation":"

The name of the image pipeline.

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

The description of the image pipeline.

" + "documentation":"

The description of the image pipeline.

" }, "imageRecipeArn":{ "shape":"ImageRecipeArn", - "documentation":"

The Amazon Resource Name (ARN) of the image recipe that will be used to configure images created by this image pipeline.

" + "documentation":"

The Amazon Resource Name (ARN) of the image recipe that will be used to configure images created by this image pipeline.

" }, "containerRecipeArn":{ "shape":"ContainerRecipeArn", @@ -1877,36 +2003,40 @@ }, "infrastructureConfigurationArn":{ "shape":"InfrastructureConfigurationArn", - "documentation":"

The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images created by this image pipeline.

" + "documentation":"

The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images created by this image pipeline.

" }, "distributionConfigurationArn":{ "shape":"DistributionConfigurationArn", - "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images created by this image pipeline.

" + "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images created by this image pipeline.

" }, "imageTestsConfiguration":{ "shape":"ImageTestsConfiguration", - "documentation":"

The image test configuration of the image pipeline.

" + "documentation":"

The image test configuration of the image pipeline.

" }, "enhancedImageMetadataEnabled":{ "shape":"NullableBoolean", - "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

" + "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

" }, "schedule":{ "shape":"Schedule", - "documentation":"

The schedule of the image pipeline.

" + "documentation":"

The schedule of the image pipeline.

" }, "status":{ "shape":"PipelineStatus", - "documentation":"

The status of the image pipeline.

" + "documentation":"

The status of the image pipeline.

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

The tags of the image pipeline.

" + "documentation":"

The tags of the image pipeline.

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

The idempotency token used to make this request idempotent.

", + "documentation":"

The idempotency token used to make this request idempotent.

", "idempotencyToken":true + }, + "imageScanningConfiguration":{ + "shape":"ImageScanningConfiguration", + "documentation":"

Contains settings for vulnerability scans.

" } } }, @@ -1915,15 +2045,15 @@ "members":{ "requestId":{ "shape":"NonEmptyString", - "documentation":"

The request ID that uniquely identifies this request.

" + "documentation":"

The request ID that uniquely identifies this request.

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

The idempotency token used to make this request idempotent.

" + "documentation":"

The idempotency token used to make this request idempotent.

" }, "imagePipelineArn":{ "shape":"ImagePipelineArn", - "documentation":"

The Amazon Resource Name (ARN) of the image pipeline that was created by this request.

" + "documentation":"

The Amazon Resource Name (ARN) of the image pipeline that was created by this request.

" } } }, @@ -1939,11 +2069,11 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the image recipe.

" + "documentation":"

The name of the image recipe.

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

The description of the image recipe.

" + "documentation":"

The description of the image recipe.

" }, "semanticVersion":{ "shape":"VersionNumber", @@ -1963,7 +2093,7 @@ }, "tags":{ "shape":"TagMap", - "documentation":"

The tags of the image recipe.

" + "documentation":"

The tags of the image recipe.

" }, "workingDirectory":{ "shape":"NonEmptyString", @@ -2006,7 +2136,7 @@ "members":{ "imageRecipeArn":{ "shape":"ImageRecipeArn", - "documentation":"

The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.

" + "documentation":"

The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.

" }, "containerRecipeArn":{ "shape":"ContainerRecipeArn", @@ -2014,28 +2144,32 @@ }, "distributionConfigurationArn":{ "shape":"DistributionConfigurationArn", - "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.

" + "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.

" }, "infrastructureConfigurationArn":{ "shape":"InfrastructureConfigurationArn", - "documentation":"

The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.

" + "documentation":"

The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.

" }, "imageTestsConfiguration":{ "shape":"ImageTestsConfiguration", - "documentation":"

The image tests configuration of the image.

" + "documentation":"

The image tests configuration of the image.

" }, "enhancedImageMetadataEnabled":{ "shape":"NullableBoolean", - "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

" + "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

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

The tags of the image.

" + "documentation":"

The tags of the image.

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

The idempotency token used to make this request idempotent.

", + "documentation":"

The idempotency token used to make this request idempotent.

", "idempotencyToken":true + }, + "imageScanningConfiguration":{ + "shape":"ImageScanningConfiguration", + "documentation":"

Contains settings for vulnerability scans.

" } } }, @@ -2044,15 +2178,15 @@ "members":{ "requestId":{ "shape":"NonEmptyString", - "documentation":"

The request ID that uniquely identifies this request.

" + "documentation":"

The request ID that uniquely identifies this request.

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

The idempotency token used to make this request idempotent.

" + "documentation":"

The idempotency token used to make this request idempotent.

" }, "imageBuildVersionArn":{ "shape":"ImageBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the image that was created by this request.

" + "documentation":"

The Amazon Resource Name (ARN) of the image that this request created.

" } } }, @@ -2140,7 +2274,82 @@ } } }, + "CvssScore":{ + "type":"structure", + "members":{ + "baseScore":{ + "shape":"NonNegativeDouble", + "documentation":"

The CVSS base score.

" + }, + "scoringVector":{ + "shape":"NonEmptyString", + "documentation":"

The vector string of the CVSS score.

" + }, + "version":{ + "shape":"NonEmptyString", + "documentation":"

The CVSS version that generated the score.

" + }, + "source":{ + "shape":"NonEmptyString", + "documentation":"

The source of the CVSS score.

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

Amazon Inspector generates a risk score for each finding. This score helps you to prioritize findings, to focus on the most critical findings and the most vulnerable resources. The score uses the Common Vulnerability Scoring System (CVSS) format. This format is a modification of the base CVSS score that the National Vulnerability Database (NVD) provides. For more information about severity levels, see Severity levels for Amazon Inspector findings in the Amazon Inspector User Guide.

" + }, + "CvssScoreAdjustment":{ + "type":"structure", + "members":{ + "metric":{ + "shape":"NonEmptyString", + "documentation":"

The metric that Amazon Inspector used to adjust the CVSS score.

" + }, + "reason":{ + "shape":"NonEmptyString", + "documentation":"

The reason for the CVSS score adjustment.

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

Details about an adjustment that Amazon Inspector made to the CVSS score for a finding.

" + }, + "CvssScoreAdjustmentList":{ + "type":"list", + "member":{"shape":"CvssScoreAdjustment"} + }, + "CvssScoreDetails":{ + "type":"structure", + "members":{ + "scoreSource":{ + "shape":"NonEmptyString", + "documentation":"

The source for the CVSS score.

" + }, + "cvssSource":{ + "shape":"NonEmptyString", + "documentation":"

The source of the finding.

" + }, + "version":{ + "shape":"NonEmptyString", + "documentation":"

The CVSS version that generated the score.

" + }, + "score":{ + "shape":"NonNegativeDouble", + "documentation":"

The CVSS score.

" + }, + "scoringVector":{ + "shape":"NonEmptyString", + "documentation":"

A vector that measures the severity of the vulnerability.

" + }, + "adjustments":{ + "shape":"CvssScoreAdjustmentList", + "documentation":"

An object that contains details about an adjustment that Amazon Inspector made to the CVSS score for the finding.

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

Details about the source of the score, and the factors that determined the adjustments to create the final score.

" + }, + "CvssScoreList":{ + "type":"list", + "member":{"shape":"CvssScore"} + }, "DateTime":{"type":"string"}, + "DateTimeTimestamp":{"type":"timestamp"}, "DeleteComponentRequest":{ "type":"structure", "required":["componentBuildVersionArn"], @@ -2162,7 +2371,7 @@ }, "componentBuildVersionArn":{ "shape":"ComponentBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the component build version that was deleted.

" + "documentation":"

The ARN of the component build version that this request deleted.

" } } }, @@ -2287,7 +2496,7 @@ }, "imageBuildVersionArn":{ "shape":"ImageBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the Image Builder image resource that was deleted.

" + "documentation":"

The ARN of the Image Builder image resource that this request deleted.

" } } }, @@ -2357,7 +2566,7 @@ "documentation":"

The Windows faster-launching configurations to use for AMI distribution.

" } }, - "documentation":"

Defines the settings for a specific Region.

" + "documentation":"

Defines the settings for a specific Region.

" }, "DistributionConfiguration":{ "type":"structure", @@ -2483,7 +2692,7 @@ }, "throughput":{ "shape":"EbsVolumeThroughput", - "documentation":"

For GP3 volumes only – The throughput in MiB/s that the volume supports.

" + "documentation":"

For GP3 volumes only – The throughput in MiB/s that the volume supports.

" } }, "documentation":"

Amazon EBS-specific block device mapping specifications.

" @@ -2515,6 +2724,20 @@ "st1" ] }, + "EcrConfiguration":{ + "type":"structure", + "members":{ + "repositoryName":{ + "shape":"NonEmptyString", + "documentation":"

The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository for vulnerability scans of your output container images.

" + }, + "containerTags":{ + "shape":"StringList", + "documentation":"

Tags for Image Builder to apply to the output container image that &INS; scans. Tags can help you identify and manage your scanned images.

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

Settings that Image Builder uses to configure the ECR repository and the output container images that Amazon Inspector scans.

" + }, "EmptyString":{ "type":"string", "max":0, @@ -2656,7 +2879,7 @@ "members":{ "componentBuildVersionArn":{ "shape":"ComponentVersionArnOrBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the component that you want to retrieve. Regex requires \"/\\d+$\" suffix.

", + "documentation":"

The Amazon Resource Name (ARN) of the component that you want to get. Regex requires the suffix /\\d+$.

", "location":"querystring", "locationName":"componentBuildVersionArn" } @@ -2856,7 +3079,7 @@ "members":{ "imageBuildVersionArn":{ "shape":"ImageVersionArnOrBuildVersionArn", - "documentation":"

The Amazon Resource Name (ARN) of the image that you want to retrieve.

", + "documentation":"

The Amazon Resource Name (ARN) of the image that you want to get.

", "location":"querystring", "locationName":"imageBuildVersionArn" } @@ -2886,7 +3109,7 @@ "locationName":"infrastructureConfigurationArn" } }, - "documentation":"

GetInfrastructureConfiguration request object.

" + "documentation":"

GetInfrastructureConfiguration request object.

" }, "GetInfrastructureConfigurationResponse":{ "type":"structure", @@ -2902,6 +3125,160 @@ }, "documentation":"

GetInfrastructureConfiguration response object.

" }, + "GetWorkflowExecutionRequest":{ + "type":"structure", + "required":["workflowExecutionId"], + "members":{ + "workflowExecutionId":{ + "shape":"WorkflowExecutionId", + "documentation":"

Use the unique identifier for a runtime instance of the workflow to get runtime details.

", + "location":"querystring", + "locationName":"workflowExecutionId" + } + } + }, + "GetWorkflowExecutionResponse":{ + "type":"structure", + "members":{ + "requestId":{ + "shape":"NonEmptyString", + "documentation":"

The request ID that uniquely identifies this request.

" + }, + "workflowBuildVersionArn":{ + "shape":"WorkflowBuildVersionArn", + "documentation":"

The Amazon Resource Name (ARN) of the build version for the Image Builder workflow resource that defines the specified runtime instance of the workflow.

" + }, + "workflowExecutionId":{ + "shape":"WorkflowExecutionId", + "documentation":"

The unique identifier that Image Builder assigned to keep track of runtime details when it ran the workflow.

" + }, + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "documentation":"

The Amazon Resource Name (ARN) of the image resource build version that the specified runtime instance of the workflow created.

" + }, + "type":{ + "shape":"WorkflowType", + "documentation":"

The type of workflow that Image Builder ran for the specified runtime instance of the workflow.

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

The current runtime status for the specified runtime instance of the workflow.

" + }, + "message":{ + "shape":"WorkflowExecutionMessage", + "documentation":"

The output message from the specified runtime instance of the workflow, if applicable.

" + }, + "totalStepCount":{ + "shape":"WorkflowStepCount", + "documentation":"

The total number of steps in the specified runtime instance of the workflow that ran. This number should equal the sum of the step counts for steps that succeeded, were skipped, and failed.

" + }, + "totalStepsSucceeded":{ + "shape":"WorkflowStepCount", + "documentation":"

A runtime count for the number of steps that ran successfully in the specified runtime instance of the workflow.

" + }, + "totalStepsFailed":{ + "shape":"WorkflowStepCount", + "documentation":"

A runtime count for the number of steps that failed in the specified runtime instance of the workflow.

" + }, + "totalStepsSkipped":{ + "shape":"WorkflowStepCount", + "documentation":"

A runtime count for the number of steps that were skipped in the specified runtime instance of the workflow.

" + }, + "startTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the specified runtime instance of the workflow started.

" + }, + "endTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the specified runtime instance of the workflow finished.

" + } + } + }, + "GetWorkflowStepExecutionRequest":{ + "type":"structure", + "required":["stepExecutionId"], + "members":{ + "stepExecutionId":{ + "shape":"WorkflowStepExecutionId", + "documentation":"

Use the unique identifier for a specific runtime instance of the workflow step to get runtime details for that step.

", + "location":"querystring", + "locationName":"stepExecutionId" + } + } + }, + "GetWorkflowStepExecutionResponse":{ + "type":"structure", + "members":{ + "requestId":{ + "shape":"NonEmptyString", + "documentation":"

The request ID that uniquely identifies this request.

" + }, + "stepExecutionId":{ + "shape":"WorkflowStepExecutionId", + "documentation":"

The unique identifier for the runtime version of the workflow step that you specified in the request.

" + }, + "workflowBuildVersionArn":{ + "shape":"WorkflowBuildVersionArn", + "documentation":"

The Amazon Resource Name (ARN) of the build version for the Image Builder workflow resource that defines this workflow step.

" + }, + "workflowExecutionId":{ + "shape":"WorkflowExecutionId", + "documentation":"

The unique identifier that Image Builder assigned to keep track of runtime details when it ran the workflow.

" + }, + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "documentation":"

The Amazon Resource Name (ARN) of the image resource build version that the specified runtime instance of the workflow step creates.

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

The name of the specified runtime instance of the workflow step.

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

Describes the specified workflow step.

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

The name of the action that the specified step performs.

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

The current status for the specified runtime version of the workflow step.

" + }, + "rollbackStatus":{ + "shape":"WorkflowStepExecutionRollbackStatus", + "documentation":"

Reports on the rollback status of the specified runtime version of the workflow step, if applicable.

" + }, + "message":{ + "shape":"WorkflowStepMessage", + "documentation":"

The output message from the specified runtime instance of the workflow step, if applicable.

" + }, + "inputs":{ + "shape":"WorkflowStepInputs", + "documentation":"

Input parameters that Image Builder provided for the specified runtime instance of the workflow step.

" + }, + "outputs":{ + "shape":"WorkflowStepOutputs", + "documentation":"

The file names that the specified runtime version of the workflow step created as output.

" + }, + "startTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the specified runtime version of the workflow step started.

" + }, + "endTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the specified runtime instance of the workflow step finished.

" + }, + "onFailure":{ + "shape":"NonEmptyString", + "documentation":"

The action to perform if the workflow step fails.

" + }, + "timeoutSeconds":{ + "shape":"WorkflowStepTimeoutSecondsInteger", + "documentation":"

The maximum duration in seconds for this step to complete its action.

" + } + } + }, "HttpPutResponseHopLimit":{ "type":"integer", "max":64, @@ -3002,17 +3379,44 @@ "imageSource":{ "shape":"ImageSource", "documentation":"

The origin of the base image that Image Builder used to build this image.

" + }, + "scanState":{ + "shape":"ImageScanState", + "documentation":"

Contains information about the current state of scans for this image.

" + }, + "imageScanningConfiguration":{ + "shape":"ImageScanningConfiguration", + "documentation":"

Contains settings for vulnerability scans.

" } }, "documentation":"

An Image Builder image. You must specify exactly one recipe for the image – either a container recipe (containerRecipe), which creates a container image, or an image recipe (imageRecipe), which creates an AMI.

" }, + "ImageAggregation":{ + "type":"structure", + "members":{ + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies the image for this aggregation.

" + }, + "severityCounts":{ + "shape":"SeverityCounts", + "documentation":"

Counts by severity level for medium severity and higher level findings, plus a total for all of the findings for the specified image.

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

Contains vulnerability counts for a specific image.

" + }, + "ImageBuildMessage":{ + "type":"string", + "max":500, + "min":0 + }, "ImageBuildVersionArn":{ "type":"string", "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):image/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" }, "ImageBuilderArn":{ "type":"string", - "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$" + "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline|workflow\\/(?:build|test|distribution))/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$" }, "ImagePackage":{ "type":"structure", @@ -3053,7 +3457,7 @@ }, "enhancedImageMetadataEnabled":{ "shape":"NullableBoolean", - "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

" + "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

" }, "imageRecipeArn":{ "shape":"Arn", @@ -3102,10 +3506,28 @@ "tags":{ "shape":"TagMap", "documentation":"

The tags of this image pipeline.

" + }, + "imageScanningConfiguration":{ + "shape":"ImageScanningConfiguration", + "documentation":"

Contains settings for vulnerability scans.

" } }, "documentation":"

Details of an image pipeline.

" }, + "ImagePipelineAggregation":{ + "type":"structure", + "members":{ + "imagePipelineArn":{ + "shape":"ImagePipelineArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies the image pipeline for this aggregation.

" + }, + "severityCounts":{ + "shape":"SeverityCounts", + "documentation":"

Counts by severity level for medium severity and higher level findings, plus a total for all of the findings for the specified image pipeline.

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

Contains vulnerability counts for a specific image pipeline.

" + }, "ImagePipelineArn":{ "type":"string", "pattern":"^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):image-pipeline/[a-z0-9-_]+$" @@ -3218,13 +3640,172 @@ "type":"list", "member":{"shape":"ImageRecipeSummary"} }, - "ImageSource":{ - "type":"string", - "enum":[ - "AMAZON_MANAGED", - "AWS_MARKETPLACE", - "IMPORTED", - "CUSTOM" + "ImageScanFinding":{ + "type":"structure", + "members":{ + "awsAccountId":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Web Services account ID that's associated with the finding.

" + }, + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "documentation":"

The Amazon Resource Name (ARN) of the image build version that's associated with the finding.

" + }, + "imagePipelineArn":{ + "shape":"ImagePipelineArn", + "documentation":"

The Amazon Resource Name (ARN) of the image pipeline that's associated with the finding.

" + }, + "type":{ + "shape":"NonEmptyString", + "documentation":"

The type of the finding. Image Builder looks for findings of the type PACKAGE_VULNERABILITY that apply to output images, and excludes other types.

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

The description of the finding.

" + }, + "title":{ + "shape":"NonEmptyString", + "documentation":"

The title of the finding.

" + }, + "remediation":{ + "shape":"Remediation", + "documentation":"

An object that contains the details about how to remediate the finding.

" + }, + "severity":{ + "shape":"NonEmptyString", + "documentation":"

The severity of the finding.

" + }, + "firstObservedAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

The date and time when the finding was first observed.

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

The timestamp when the finding was last updated.

" + }, + "inspectorScore":{ + "shape":"NonNegativeDouble", + "documentation":"

The score that Amazon Inspector assigned for the finding.

" + }, + "inspectorScoreDetails":{ + "shape":"InspectorScoreDetails", + "documentation":"

An object that contains details of the Amazon Inspector score.

" + }, + "packageVulnerabilityDetails":{ + "shape":"PackageVulnerabilityDetails", + "documentation":"

An object that contains the details of a package vulnerability finding.

" + }, + "fixAvailable":{ + "shape":"NonEmptyString", + "documentation":"

Details about whether a fix is available for any of the packages that are identified in the finding through a version update.

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

Contains details about a vulnerability scan finding.

" + }, + "ImageScanFindingAggregation":{ + "type":"structure", + "members":{ + "accountAggregation":{ + "shape":"AccountAggregation", + "documentation":"

Returns an object that contains severity counts based on an account ID.

" + }, + "imageAggregation":{ + "shape":"ImageAggregation", + "documentation":"

Returns an object that contains severity counts based on the Amazon Resource Name (ARN) for a specific image.

" + }, + "imagePipelineAggregation":{ + "shape":"ImagePipelineAggregation", + "documentation":"

Returns an object that contains severity counts based on an image pipeline ARN.

" + }, + "vulnerabilityIdAggregation":{ + "shape":"VulnerabilityIdAggregation", + "documentation":"

Returns an object that contains severity counts based on vulnerability ID.

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

This returns exactly one type of aggregation, based on the filter that Image Builder applies in its API action.

" + }, + "ImageScanFindingAggregationsList":{ + "type":"list", + "member":{"shape":"ImageScanFindingAggregation"} + }, + "ImageScanFindingsFilter":{ + "type":"structure", + "members":{ + "name":{ + "shape":"FilterName", + "documentation":"

The name of the image scan finding filter. Filter names are case-sensitive.

" + }, + "values":{ + "shape":"ImageScanFindingsFilterValues", + "documentation":"

The filter values. Filter values are case-sensitive.

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

A name value pair that Image Builder applies to streamline results from the vulnerability scan findings list action.

" + }, + "ImageScanFindingsFilterList":{ + "type":"list", + "member":{"shape":"ImageScanFindingsFilter"}, + "max":1, + "min":1 + }, + "ImageScanFindingsFilterValues":{ + "type":"list", + "member":{"shape":"FilterValue"}, + "max":1, + "min":1 + }, + "ImageScanFindingsList":{ + "type":"list", + "member":{"shape":"ImageScanFinding"}, + "max":25 + }, + "ImageScanState":{ + "type":"structure", + "members":{ + "status":{ + "shape":"ImageScanStatus", + "documentation":"

The current state of vulnerability scans for the image.

" + }, + "reason":{ + "shape":"NonEmptyString", + "documentation":"

The reason for the scan status for the image.

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

Shows the vulnerability scan status for a specific image, and the reason for that status.

" + }, + "ImageScanStatus":{ + "type":"string", + "enum":[ + "PENDING", + "SCANNING", + "COLLECTING", + "COMPLETED", + "ABANDONED", + "FAILED", + "TIMED_OUT" + ] + }, + "ImageScanningConfiguration":{ + "type":"structure", + "members":{ + "imageScanningEnabled":{ + "shape":"NullableBoolean", + "documentation":"

A setting that indicates whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.

" + }, + "ecrConfiguration":{ + "shape":"EcrConfiguration", + "documentation":"

Contains Amazon ECR settings for vulnerability scans.

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

Contains settings for Image Builder image resource and container image scans.

" + }, + "ImageSource":{ + "type":"string", + "enum":[ + "AMAZON_MANAGED", + "AWS_MARKETPLACE", + "IMPORTED", + "CUSTOM" ] }, "ImageState":{ @@ -3236,10 +3817,10 @@ }, "reason":{ "shape":"NonEmptyString", - "documentation":"

The reason for the image's status.

" + "documentation":"

The reason for the status of the image.

" } }, - "documentation":"

Image state shows the image status and the reason for that status.

" + "documentation":"

Image status and the reason for that status.

" }, "ImageStatus":{ "type":"string", @@ -3416,7 +3997,7 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the component.

" + "documentation":"

The name of the component.

" }, "semanticVersion":{ "shape":"VersionNumber", @@ -3428,7 +4009,7 @@ }, "changeDescription":{ "shape":"NonEmptyString", - "documentation":"

The change description of the component. Describes what change has been made in this version, or what makes this version different from other versions of this component.

" + "documentation":"

The change description of the component. This description indicates the change that has been made in this version, or what makes this version different from other versions of this component.

" }, "type":{ "shape":"ComponentType", @@ -3676,6 +4257,16 @@ "min":1, "pattern":"[^\\x00]+" }, + "InspectorScoreDetails":{ + "type":"structure", + "members":{ + "adjustedCvss":{ + "shape":"CvssScoreDetails", + "documentation":"

An object that contains details about an adjustment that Amazon Inspector made to the CVSS score for the finding.

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

Information about the factors that influenced the score that Amazon Inspector assigned for a finding.

" + }, "InstanceBlockDeviceMapping":{ "type":"structure", "members":{ @@ -3782,7 +4373,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

You have made a request for an action that is not supported by the service.

", + "documentation":"

You have requested an action that that the service doesn't support.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -3888,7 +4479,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -3931,7 +4522,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -3948,12 +4539,12 @@ }, "maxResults":{ "shape":"RestrictedInteger", - "documentation":"

The maximum number of results to return in the list.

", + "documentation":"

The maximum items to return in a request.

", "box":true }, "nextToken":{ "shape":"NonEmptyString", - "documentation":"

Provides a token for pagination, which determines where to begin the next set of results when the current set reaches the maximum for one request.

" + "documentation":"

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" } } }, @@ -3970,7 +4561,7 @@ }, "nextToken":{ "shape":"NonEmptyString", - "documentation":"

The next token field is used for paginated responses. When this is not empty, there are additional container recipes that the service has not included in this response. Use this token with the next request to retrieve additional list items.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4005,7 +4596,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4045,7 +4636,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4059,7 +4650,7 @@ }, "maxResults":{ "shape":"RestrictedInteger", - "documentation":"

The maxiumum number of results to return from the ListImagePackages request.

", + "documentation":"

The maximum items to return in a request.

", "box":true }, "nextToken":{ @@ -4081,7 +4672,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4121,7 +4712,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4156,7 +4747,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4195,7 +4786,73 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" + } + } + }, + "ListImageScanFindingAggregationsRequest":{ + "type":"structure", + "members":{ + "filter":{"shape":"Filter"}, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" + } + } + }, + "ListImageScanFindingAggregationsResponse":{ + "type":"structure", + "members":{ + "requestId":{ + "shape":"NonEmptyString", + "documentation":"

The request ID that uniquely identifies this request.

" + }, + "aggregationType":{ + "shape":"NonEmptyString", + "documentation":"

The aggregation type specifies what type of key is used to group the image scan findings. Image Builder returns results based on the request filter. If you didn't specify a filter in the request, the type defaults to accountId.

Aggregation types

  • accountId

  • imageBuildVersionArn

  • imagePipelineArn

  • vulnerabilityId

Each aggregation includes counts by severity level for medium severity and higher level findings, plus a total for all of the findings for each key value.

" + }, + "responses":{ + "shape":"ImageScanFindingAggregationsList", + "documentation":"

An array of image scan finding aggregations that match the filter criteria.

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

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" + } + } + }, + "ListImageScanFindingsRequest":{ + "type":"structure", + "members":{ + "filters":{ + "shape":"ImageScanFindingsFilterList", + "documentation":"

An array of name value pairs that you can use to filter your results. You can use the following filters to streamline results:

  • imageBuildVersionArn

  • imagePipelineArn

  • vulnerabilityId

  • severity

If you don't request a filter, then all findings in your account are listed.

" + }, + "maxResults":{ + "shape":"RestrictedInteger", + "documentation":"

The maximum items to return in a request.

", + "box":true + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" + } + } + }, + "ListImageScanFindingsResponse":{ + "type":"structure", + "members":{ + "requestId":{ + "shape":"NonEmptyString", + "documentation":"

The request ID that uniquely identifies this request.

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

The image scan findings for your account that meet your request filter criteria.

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

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4242,7 +4899,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4277,7 +4934,7 @@ }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.

" + "documentation":"

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" } } }, @@ -4302,6 +4959,102 @@ } } }, + "ListWorkflowExecutionsRequest":{ + "type":"structure", + "required":["imageBuildVersionArn"], + "members":{ + "maxResults":{ + "shape":"RestrictedInteger", + "documentation":"

The maximum items to return in a request.

", + "box":true + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" + }, + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "documentation":"

List all workflow runtime instances for the specified image build version resource ARN.

" + } + } + }, + "ListWorkflowExecutionsResponse":{ + "type":"structure", + "members":{ + "requestId":{ + "shape":"NonEmptyString", + "documentation":"

The request ID that uniquely identifies this request.

" + }, + "workflowExecutions":{ + "shape":"WorkflowExecutionsList", + "documentation":"

Contains an array of runtime details that represents each time a workflow ran for the requested image build version.

" + }, + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "documentation":"

The resource ARN of the image build version for which you requested a list of workflow runtime details.

" + }, + "message":{ + "shape":"ImageBuildMessage", + "documentation":"

The output message from the list action, if applicable.

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

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" + } + } + }, + "ListWorkflowStepExecutionsRequest":{ + "type":"structure", + "required":["workflowExecutionId"], + "members":{ + "maxResults":{ + "shape":"RestrictedInteger", + "documentation":"

The maximum items to return in a request.

", + "box":true + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" + }, + "workflowExecutionId":{ + "shape":"WorkflowExecutionId", + "documentation":"

The unique identifier that Image Builder assigned to keep track of runtime details when it ran the workflow.

" + } + } + }, + "ListWorkflowStepExecutionsResponse":{ + "type":"structure", + "members":{ + "requestId":{ + "shape":"NonEmptyString", + "documentation":"

The request ID that uniquely identifies this request.

" + }, + "steps":{ + "shape":"WorkflowStepExecutionsList", + "documentation":"

Contains an array of runtime details that represents each step in this runtime instance of the workflow.

" + }, + "workflowBuildVersionArn":{ + "shape":"WorkflowBuildVersionArn", + "documentation":"

The build version ARN for the Image Builder workflow resource that defines the steps for this runtime instance of the workflow.

" + }, + "workflowExecutionId":{ + "shape":"WorkflowExecutionId", + "documentation":"

The unique identifier that Image Builder assigned to keep track of runtime details when it ran the workflow.

" + }, + "imageBuildVersionArn":{ + "shape":"ImageBuildVersionArn", + "documentation":"

The image build version resource ARN that's associated with the specified runtime instance of the workflow.

" + }, + "message":{ + "shape":"ImageBuildMessage", + "documentation":"

The output message from the list action, if applicable.

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

The next token used for paginated responses. When this field isn't empty, there are additional elements that the service has'ot included in this request. Use this token with the next request to retrieve additional objects.

" + } + } + }, "Logging":{ "type":"structure", "members":{ @@ -4322,6 +5075,15 @@ "max":1024, "min":1 }, + "NonEmptyStringList":{ + "type":"list", + "member":{"shape":"NonEmptyString"}, + "min":1 + }, + "NonNegativeDouble":{ + "type":"double", + "min":0 + }, "NullableBoolean":{"type":"boolean"}, "OrganizationArn":{ "type":"string", @@ -4376,6 +5138,55 @@ "ThirdParty" ] }, + "PackageArchitecture":{"type":"string"}, + "PackageEpoch":{"type":"integer"}, + "PackageVulnerabilityDetails":{ + "type":"structure", + "required":["vulnerabilityId"], + "members":{ + "vulnerabilityId":{ + "shape":"VulnerabilityId", + "documentation":"

A unique identifier for this vulnerability.

" + }, + "vulnerablePackages":{ + "shape":"VulnerablePackageList", + "documentation":"

The packages that this vulnerability impacts.

" + }, + "source":{ + "shape":"NonEmptyString", + "documentation":"

The source of the vulnerability information.

" + }, + "cvss":{ + "shape":"CvssScoreList", + "documentation":"

CVSS scores for one or more vulnerabilities that Amazon Inspector identified for a package.

" + }, + "relatedVulnerabilities":{ + "shape":"VulnerabilityIdList", + "documentation":"

Vulnerabilities that are often related to the findings for the package.

" + }, + "sourceUrl":{ + "shape":"NonEmptyString", + "documentation":"

A link to the source of the vulnerability information.

" + }, + "vendorSeverity":{ + "shape":"NonEmptyString", + "documentation":"

The severity that the vendor assigned to this vulnerability type.

" + }, + "vendorCreatedAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

The date and time when this vulnerability was first added to the vendor's database.

" + }, + "vendorUpdatedAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

The date and time when the vendor last updated this vulnerability in their database.

" + }, + "referenceUrls":{ + "shape":"NonEmptyStringList", + "documentation":"

Links to web pages that contain details about the vulnerabilities that Amazon Inspector identified for the package.

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

Information about package vulnerability findings.

" + }, "PaginationToken":{ "type":"string", "max":65535, @@ -4526,6 +5337,30 @@ "type":"list", "member":{"shape":"NonEmptyString"} }, + "Remediation":{ + "type":"structure", + "members":{ + "recommendation":{ + "shape":"RemediationRecommendation", + "documentation":"

An object that contains information about the recommended course of action to remediate the finding.

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

Information about how to remediate a finding.

" + }, + "RemediationRecommendation":{ + "type":"structure", + "members":{ + "text":{ + "shape":"NonEmptyString", + "documentation":"

The recommended course of action to remediate the finding.

" + }, + "url":{ + "shape":"NonEmptyString", + "documentation":"

A link to more information about the recommended remediation for this vulnerability.

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

Details about the recommended course of action to remediate the finding.

" + }, "ResourceAlreadyExistsException":{ "type":"structure", "members":{ @@ -4673,10 +5508,34 @@ "error":{"httpStatusCode":503}, "exception":true }, + "SeverityCountNumber":{"type":"long"}, + "SeverityCounts":{ + "type":"structure", + "members":{ + "all":{ + "shape":"SeverityCountNumber", + "documentation":"

The total number of findings across all severity levels for the specified filter.

" + }, + "critical":{ + "shape":"SeverityCountNumber", + "documentation":"

The number of critical severity findings for the specified filter.

" + }, + "high":{ + "shape":"SeverityCountNumber", + "documentation":"

The number of high severity findings for the specified filter.

" + }, + "medium":{ + "shape":"SeverityCountNumber", + "documentation":"

The number of medium severity findings for the specified filter.

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

Includes counts by severity level for medium severity and higher level findings, plus a total for all of the findings for the specified filter.

" + }, "SnsTopicArn":{ "type":"string", "pattern":"^arn:aws[^:]*:sns:[^:]+:[0-9]{12}:[a-zA-Z0-9-_]{1,256}$" }, + "SourceLayerHash":{"type":"string"}, "StartImagePipelineExecutionRequest":{ "type":"structure", "required":[ @@ -4898,11 +5757,11 @@ }, "infrastructureConfigurationArn":{ "shape":"InfrastructureConfigurationArn", - "documentation":"

The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images updated by this image pipeline.

" + "documentation":"

The Amazon Resource Name (ARN) of the infrastructure configuration that Image Builder uses to build images that this image pipeline has updated.

" }, "distributionConfigurationArn":{ "shape":"DistributionConfigurationArn", - "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images updated by this image pipeline.

" + "documentation":"

The Amazon Resource Name (ARN) of the distribution configuration that Image Builder uses to configure and distribute images that this image pipeline has updated.

" }, "imageTestsConfiguration":{ "shape":"ImageTestsConfiguration", @@ -4910,7 +5769,7 @@ }, "enhancedImageMetadataEnabled":{ "shape":"NullableBoolean", - "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

" + "documentation":"

Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.

" }, "schedule":{ "shape":"Schedule", @@ -4924,6 +5783,10 @@ "shape":"ClientToken", "documentation":"

The idempotency token used to make this request idempotent.

", "idempotencyToken":true + }, + "imageScanningConfiguration":{ + "shape":"ImageScanningConfiguration", + "documentation":"

Contains settings for vulnerability scans.

" } } }, @@ -5034,6 +5897,266 @@ "VersionNumber":{ "type":"string", "pattern":"^[0-9]+\\.[0-9]+\\.[0-9]+$" + }, + "VulnerabilityId":{"type":"string"}, + "VulnerabilityIdAggregation":{ + "type":"structure", + "members":{ + "vulnerabilityId":{ + "shape":"NonEmptyString", + "documentation":"

The vulnerability Id for this set of counts.

" + }, + "severityCounts":{ + "shape":"SeverityCounts", + "documentation":"

Counts by severity level for medium severity and higher level findings, plus a total for all of the findings for the specified vulnerability.

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

Includes counts of image and pipeline resource findings by vulnerability.

" + }, + "VulnerabilityIdList":{ + "type":"list", + "member":{"shape":"VulnerabilityId"} + }, + "VulnerablePackage":{ + "type":"structure", + "members":{ + "name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the vulnerable package.

" + }, + "version":{ + "shape":"NonEmptyString", + "documentation":"

The version of the vulnerable package.

" + }, + "sourceLayerHash":{ + "shape":"SourceLayerHash", + "documentation":"

The source layer hash of the vulnerable package.

" + }, + "epoch":{ + "shape":"PackageEpoch", + "documentation":"

The epoch of the vulnerable package.

" + }, + "release":{ + "shape":"NonEmptyString", + "documentation":"

The release of the vulnerable package.

" + }, + "arch":{ + "shape":"PackageArchitecture", + "documentation":"

The architecture of the vulnerable package.

" + }, + "packageManager":{ + "shape":"NonEmptyString", + "documentation":"

The package manager of the vulnerable package.

" + }, + "filePath":{ + "shape":"NonEmptyString", + "documentation":"

The file path of the vulnerable package.

" + }, + "fixedInVersion":{ + "shape":"NonEmptyString", + "documentation":"

The version of the package that contains the vulnerability fix.

" + }, + "remediation":{ + "shape":"NonEmptyString", + "documentation":"

The code to run in your environment to update packages with a fix available.

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

Information about a vulnerable package that Amazon Inspector identifies in a finding.

" + }, + "VulnerablePackageList":{ + "type":"list", + "member":{"shape":"VulnerablePackage"} + }, + "WorkflowBuildVersionArn":{ + "type":"string", + "max":1024, + "pattern":"^arn:aws(?:-[a-z]+)*:imagebuilder:[a-z]{2,}(?:-[a-z]+)+-[0-9]+:(?:[0-9]{12}|aws):workflow/(build|test|distribution)/[a-z0-9-_]+/[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+$" + }, + "WorkflowExecutionId":{ + "type":"string", + "pattern":"^wf-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + }, + "WorkflowExecutionMessage":{ + "type":"string", + "max":500, + "min":0 + }, + "WorkflowExecutionMetadata":{ + "type":"structure", + "members":{ + "workflowBuildVersionArn":{ + "shape":"WorkflowBuildVersionArn", + "documentation":"

The Amazon Resource Name (ARN) of the workflow resource build version that ran.

" + }, + "workflowExecutionId":{ + "shape":"WorkflowExecutionId", + "documentation":"

Unique identifier that Image Builder assigns to keep track of runtime resources each time it runs a workflow.

" + }, + "type":{ + "shape":"WorkflowType", + "documentation":"

Indicates what type of workflow that Image Builder ran for this runtime instance of the workflow.

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

The current runtime status for this workflow.

" + }, + "message":{ + "shape":"WorkflowExecutionMessage", + "documentation":"

The runtime output message from the workflow, if applicable.

" + }, + "totalStepCount":{ + "shape":"WorkflowStepCount", + "documentation":"

The total number of steps in the workflow. This should equal the sum of the step counts for steps that succeeded, were skipped, and failed.

" + }, + "totalStepsSucceeded":{ + "shape":"WorkflowStepCount", + "documentation":"

A runtime count for the number of steps in the workflow that ran successfully.

" + }, + "totalStepsFailed":{ + "shape":"WorkflowStepCount", + "documentation":"

A runtime count for the number of steps in the workflow that failed.

" + }, + "totalStepsSkipped":{ + "shape":"WorkflowStepCount", + "documentation":"

A runtime count for the number of steps in the workflow that were skipped.

" + }, + "startTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the runtime instance of this workflow started.

" + }, + "endTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when this runtime instance of the workflow finished.

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

Metadata that includes details and status from this runtime instance of the workflow.

" + }, + "WorkflowExecutionStatus":{ + "type":"string", + "enum":[ + "PENDING", + "SKIPPED", + "RUNNING", + "COMPLETED", + "FAILED", + "ROLLBACK_IN_PROGRESS", + "ROLLBACK_COMPLETED" + ] + }, + "WorkflowExecutionsList":{ + "type":"list", + "member":{"shape":"WorkflowExecutionMetadata"} + }, + "WorkflowStepAction":{ + "type":"string", + "pattern":"^[A-Za-z][A-Za-z0-9-_]{1,99}$" + }, + "WorkflowStepCount":{"type":"integer"}, + "WorkflowStepDescription":{ + "type":"string", + "max":500, + "min":0 + }, + "WorkflowStepExecutionId":{ + "type":"string", + "pattern":"^step-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + }, + "WorkflowStepExecutionRollbackStatus":{ + "type":"string", + "enum":[ + "RUNNING", + "COMPLETED", + "SKIPPED", + "FAILED" + ] + }, + "WorkflowStepExecutionStatus":{ + "type":"string", + "enum":[ + "PENDING", + "SKIPPED", + "RUNNING", + "COMPLETED", + "FAILED" + ] + }, + "WorkflowStepExecutionsList":{ + "type":"list", + "member":{"shape":"WorkflowStepMetadata"} + }, + "WorkflowStepInputs":{"type":"string"}, + "WorkflowStepMessage":{ + "type":"string", + "max":500, + "min":0 + }, + "WorkflowStepMetadata":{ + "type":"structure", + "members":{ + "stepExecutionId":{ + "shape":"WorkflowStepExecutionId", + "documentation":"

A unique identifier for the workflow step, assigned at runtime.

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

The name of the workflow step.

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

Description of the workflow step.

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

The step action name.

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

Runtime status for the workflow step.

" + }, + "rollbackStatus":{ + "shape":"WorkflowStepExecutionRollbackStatus", + "documentation":"

Reports on the rollback status of the step, if applicable.

" + }, + "message":{ + "shape":"WorkflowStepMessage", + "documentation":"

Detailed output message that the workflow step provides at runtime.

" + }, + "inputs":{ + "shape":"WorkflowStepInputs", + "documentation":"

Input parameters that Image Builder provides for the workflow step.

" + }, + "outputs":{ + "shape":"WorkflowStepOutputs", + "documentation":"

The file names that the workflow step created as output for this runtime instance of the workflow.

" + }, + "startTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the workflow step started.

" + }, + "endTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the workflow step finished.

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

Runtime details and status for the workflow step.

" + }, + "WorkflowStepName":{ + "type":"string", + "pattern":"^[A-Za-z][A-Za-z0-9-_]{1,99}$" + }, + "WorkflowStepOutputs":{"type":"string"}, + "WorkflowStepTimeoutSecondsInteger":{ + "type":"integer", + "max":43200, + "min":0 + }, + "WorkflowType":{ + "type":"string", + "enum":[ + "BUILD", + "TEST", + "DISTRIBUTION" + ] } }, "documentation":"

EC2 Image Builder is a fully managed Amazon Web Services service that makes it easier to automate the creation, management, and deployment of customized, secure, and up-to-date \"golden\" server images that are pre-installed and pre-configured with software and settings to meet specific IT standards.

" diff --git a/services/inspector/pom.xml b/services/inspector/pom.xml index 1458ee58fbbd..529af2b0f6cd 100644 --- a/services/inspector/pom.xml +++ b/services/inspector/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT inspector AWS Java SDK :: Services :: Amazon Inspector Service diff --git a/services/inspector2/pom.xml b/services/inspector2/pom.xml index fcd86ccedce0..29f57e82e987 100644 --- a/services/inspector2/pom.xml +++ b/services/inspector2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT inspector2 AWS Java SDK :: Services :: Inspector2 diff --git a/services/internetmonitor/pom.xml b/services/internetmonitor/pom.xml new file mode 100644 index 000000000000..3c2036b9aa4e --- /dev/null +++ b/services/internetmonitor/pom.xml @@ -0,0 +1,60 @@ + + + + + 4.0.0 + + software.amazon.awssdk + services + 2.20.47-SNAPSHOT + + internetmonitor + AWS Java SDK :: Services :: Internet Monitor + The AWS Java SDK for Internet Monitor module holds the client classes that are used for + communicating with Internet Monitor. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.internetmonitor + + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + diff --git a/services/internetmonitor/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/internetmonitor/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..25b3af24f3aa --- /dev/null +++ b/services/internetmonitor/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,277 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://internetmonitor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://internetmonitor.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://internetmonitor-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://internetmonitor.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/services/internetmonitor/src/main/resources/codegen-resources/endpoint-tests.json b/services/internetmonitor/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..9bc42f051905 --- /dev/null +++ b/services/internetmonitor/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,119 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://internetmonitor-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://internetmonitor.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://internetmonitor-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://internetmonitor.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://internetmonitor-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://internetmonitor.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/internetmonitor/src/main/resources/codegen-resources/paginators-1.json b/services/internetmonitor/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..467ebeee8ea4 --- /dev/null +++ b/services/internetmonitor/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,16 @@ +{ + "pagination": { + "ListHealthEvents": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "HealthEvents" + }, + "ListMonitors": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Monitors" + } + } +} diff --git a/services/internetmonitor/src/main/resources/codegen-resources/service-2.json b/services/internetmonitor/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..4656dc9b90c2 --- /dev/null +++ b/services/internetmonitor/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,1197 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-06-03", + "endpointPrefix":"internetmonitor", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon CloudWatch Internet Monitor", + "serviceId":"InternetMonitor", + "signatureVersion":"v4", + "signingName":"internetmonitor", + "uid":"internetmonitor-2021-06-03" + }, + "operations":{ + "CreateMonitor":{ + "name":"CreateMonitor", + "http":{ + "method":"POST", + "requestUri":"/v20210603/Monitors", + "responseCode":200 + }, + "input":{"shape":"CreateMonitorInput"}, + "output":{"shape":"CreateMonitorOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a monitor in Amazon CloudWatch Internet Monitor. A monitor is built based on information from the application resources that you add: Amazon Virtual Private Clouds (VPCs), Amazon CloudFront distributions, and WorkSpaces directories. Internet Monitor then publishes internet measurements from Amazon Web Services that are specific to the city-networks, that is, the locations and ASNs (typically internet service providers or ISPs), where clients access your application. For more information, see Using Amazon CloudWatch Internet Monitor in the Amazon CloudWatch User Guide.

When you create a monitor, you set a maximum limit for the number of city-networks where client traffic is monitored. The city-network maximum that you choose is the limit, but you only pay for the number of city-networks that are actually monitored. You can change the maximum at any time by updating your monitor. For more information, see Choosing a city-network maximum value in the Amazon CloudWatch User Guide.

", + "idempotent":true + }, + "DeleteMonitor":{ + "name":"DeleteMonitor", + "http":{ + "method":"DELETE", + "requestUri":"/v20210603/Monitors/{MonitorName}", + "responseCode":200 + }, + "input":{"shape":"DeleteMonitorInput"}, + "output":{"shape":"DeleteMonitorOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a monitor in Amazon CloudWatch Internet Monitor.

", + "idempotent":true + }, + "GetHealthEvent":{ + "name":"GetHealthEvent", + "http":{ + "method":"GET", + "requestUri":"/v20210603/Monitors/{MonitorName}/HealthEvents/{EventId}", + "responseCode":200 + }, + "input":{"shape":"GetHealthEventInput"}, + "output":{"shape":"GetHealthEventOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets information the Amazon CloudWatch Internet Monitor has created and stored about a health event for a specified monitor. This information includes the impacted locations, and all of the information related to the event by location.

The information returned includes the performance, availability, and round-trip time impact, information about the network providers, the event type, and so on.

Information rolled up at the global traffic level is also returned, including the impact type and total traffic impact.

" + }, + "GetMonitor":{ + "name":"GetMonitor", + "http":{ + "method":"GET", + "requestUri":"/v20210603/Monitors/{MonitorName}", + "responseCode":200 + }, + "input":{"shape":"GetMonitorInput"}, + "output":{"shape":"GetMonitorOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets information about a monitor in Amazon CloudWatch Internet Monitor based on a monitor name. The information returned includes the Amazon Resource Name (ARN), create time, modified time, resources included in the monitor, and status information.

" + }, + "ListHealthEvents":{ + "name":"ListHealthEvents", + "http":{ + "method":"GET", + "requestUri":"/v20210603/Monitors/{MonitorName}/HealthEvents", + "responseCode":200 + }, + "input":{"shape":"ListHealthEventsInput"}, + "output":{"shape":"ListHealthEventsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns all information for health events including the client location information the network cause and status, event start and end time, percentage of total traffic impacted, and status.

Health events that have start times during the time frame that is requested are not included in the list of health events.

" + }, + "ListMonitors":{ + "name":"ListMonitors", + "http":{ + "method":"GET", + "requestUri":"/v20210603/Monitors", + "responseCode":200 + }, + "input":{"shape":"ListMonitorsInput"}, + "output":{"shape":"ListMonitorsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all of your monitors for Amazon CloudWatch Internet Monitor and their statuses, along with the Amazon Resource Name (ARN) and name of each monitor.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Lists the tags for a resource. Tags are supported only for monitors in Amazon CloudWatch Internet Monitor.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Adds a tag to a resource. Tags are supported only for monitors in Amazon CloudWatch Internet Monitor. You can add a maximum of 50 tags in Internet Monitor.

A minimum of one tag is required for this call. It returns an error if you use the TagResource request with 0 tags.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Removes a tag from a resource.

", + "idempotent":true + }, + "UpdateMonitor":{ + "name":"UpdateMonitor", + "http":{ + "method":"PATCH", + "requestUri":"/v20210603/Monitors/{MonitorName}", + "responseCode":200 + }, + "input":{"shape":"UpdateMonitorInput"}, + "output":{"shape":"UpdateMonitorOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates a monitor. You can update a monitor to change the maximum number of city-networks (locations and ASNs or internet service providers), to add or remove resources, or to change the status of the monitor. Note that you can't change the name of a monitor.

The city-network maximum that you choose is the limit, but you only pay for the number of city-networks that are actually monitored. For more information, see Choosing a city-network maximum value in the Amazon CloudWatch User Guide.

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You don't have sufficient permission to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Arn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:.*" + }, + "AvailabilityMeasurement":{ + "type":"structure", + "members":{ + "ExperienceScore":{ + "shape":"Double", + "documentation":"

Experience scores, or health scores are calculated for different geographic and network provider combinations (that is, different granularities) and also summed into global scores. If you view performance or availability scores without filtering for any specific geography or service provider, Amazon CloudWatch Internet Monitor provides global health scores.

The Amazon CloudWatch Internet Monitor chapter in the CloudWatch User Guide includes detailed information about how Internet Monitor calculates health scores, including performance and availability scores, and when it creates and resolves health events. For more information, see How Amazon Web Services calculates performance and availability scores in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

" + }, + "PercentOfTotalTrafficImpacted":{ + "shape":"Double", + "documentation":"

The percentage of impact caused by a health event for total traffic globally.

For information about how Internet Monitor calculates impact, see Inside Internet Monitor in the Amazon CloudWatch Internet Monitor section of the Amazon CloudWatch User Guide.

" + }, + "PercentOfClientLocationImpacted":{ + "shape":"Double", + "documentation":"

The percentage of impact caused by a health event for client location traffic globally.

For information about how Internet Monitor calculates impact, see Inside Internet Monitor in the Amazon CloudWatch Internet Monitor section of the Amazon CloudWatch User Guide.

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

Measurements about the availability for your application on the internet, calculated by Amazon CloudWatch Internet Monitor. Amazon Web Services has substantial historical data about internet performance and availability between Amazon Web Services services and different network providers and geographies. By applying statistical analysis to the data, Internet Monitor can detect when the performance and availability for your application has dropped, compared to an estimated baseline that's already calculated. To make it easier to see those drops, we report that information to you in the form of health scores: a performance score and an availability score.

Availability in Internet Monitor represents the estimated percentage of traffic that is not seeing an availability drop. For example, an availability score of 99% for an end user and service location pair is equivalent to 1% of the traffic experiencing an availability drop for that pair.

For more information, see How Internet Monitor calculates performance and availability scores in the Amazon CloudWatch Internet Monitor section of the Amazon CloudWatch User Guide.

" + }, + "BadRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

A bad request was received.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The requested resource is in use.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateMonitorInput":{ + "type":"structure", + "required":[ + "MonitorName", + "MaxCityNetworksToMonitor" + ], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor.

" + }, + "Resources":{ + "shape":"SetOfARNs", + "documentation":"

The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs).

You can add a combination of Amazon Virtual Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon WorkSpaces directories. You can't add all three types of resources.

If you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity.

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

A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. Don't reuse the same client token for other API requests.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The tags for a monitor. You can add a maximum of 50 tags in Internet Monitor.

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

The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs.

To learn more, see Choosing a city-network maximum value in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

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

Publish internet measurements for Internet Monitor to another location, such as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch Logs.

" + } + } + }, + "CreateMonitorOutput":{ + "type":"structure", + "required":[ + "Arn", + "Status" + ], + "members":{ + "Arn":{ + "shape":"MonitorArn", + "documentation":"

The Amazon Resource Name (ARN) of the monitor.

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

The status of a monitor.

" + } + } + }, + "DeleteMonitorInput":{ + "type":"structure", + "required":["MonitorName"], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor to delete.

", + "location":"uri", + "locationName":"MonitorName" + } + } + }, + "DeleteMonitorOutput":{ + "type":"structure", + "members":{ + } + }, + "Double":{ + "type":"double", + "box":true + }, + "GetHealthEventInput":{ + "type":"structure", + "required":[ + "MonitorName", + "EventId" + ], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor.

", + "location":"uri", + "locationName":"MonitorName" + }, + "EventId":{ + "shape":"HealthEventName", + "documentation":"

The internally generated identifier of a health event. Because EventID contains the forward slash (“/”) character, you must URL-encode the EventID field in the request URL.

", + "location":"uri", + "locationName":"EventId" + } + } + }, + "GetHealthEventOutput":{ + "type":"structure", + "required":[ + "EventArn", + "EventId", + "StartedAt", + "LastUpdatedAt", + "ImpactedLocations", + "Status", + "ImpactType" + ], + "members":{ + "EventArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the event.

" + }, + "EventId":{ + "shape":"HealthEventName", + "documentation":"

The internally generated identifier of a health event.

" + }, + "StartedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when a health event started.

" + }, + "EndedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when a health event was resolved. If the health event is still active, the end time is not set.

" + }, + "CreatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when a health event was created.

" + }, + "LastUpdatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when a health event was last updated or recalculated.

" + }, + "ImpactedLocations":{ + "shape":"ImpactedLocationsList", + "documentation":"

The locations affected by a health event.

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

The status of a health event.

" + }, + "PercentOfTotalTrafficImpacted":{ + "shape":"Double", + "documentation":"

The impact on total traffic that a health event has.

" + }, + "ImpactType":{ + "shape":"HealthEventImpactType", + "documentation":"

The type of impairment of a specific health event.

" + } + } + }, + "GetMonitorInput":{ + "type":"structure", + "required":["MonitorName"], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor.

", + "location":"uri", + "locationName":"MonitorName" + } + } + }, + "GetMonitorOutput":{ + "type":"structure", + "required":[ + "MonitorName", + "MonitorArn", + "Resources", + "Status", + "CreatedAt", + "ModifiedAt", + "MaxCityNetworksToMonitor" + ], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor.

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

The Amazon Resource Name (ARN) of the monitor.

" + }, + "Resources":{ + "shape":"SetOfARNs", + "documentation":"

The resources that have been added for the monitor. Resources are listed by their Amazon Resource Names (ARNs).

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

The status of the monitor.

" + }, + "CreatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when the monitor was created.

" + }, + "ModifiedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The last time that the monitor was modified.

" + }, + "ProcessingStatus":{ + "shape":"MonitorProcessingStatusCode", + "documentation":"

The health of the data processing for the monitor.

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

Additional information about the health of the data processing for the monitor.

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

The tags that have been added to monitor.

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

The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs.

To learn more, see Choosing a city-network maximum value in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

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

Publish internet measurements for Internet Monitor to another location, such as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch Logs.

" + } + } + }, + "HealthEvent":{ + "type":"structure", + "required":[ + "EventArn", + "EventId", + "StartedAt", + "LastUpdatedAt", + "ImpactedLocations", + "Status", + "ImpactType" + ], + "members":{ + "EventArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the event.

" + }, + "EventId":{ + "shape":"HealthEventName", + "documentation":"

The internally generated identifier of a specific network traffic impairment health event.

" + }, + "StartedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When a health event started.

" + }, + "EndedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when a health event ended. If the health event is still active, then the end time is not set.

" + }, + "CreatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the health event was created.

" + }, + "LastUpdatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the health event was last updated.

" + }, + "ImpactedLocations":{ + "shape":"ImpactedLocationsList", + "documentation":"

The locations impacted by the health event.

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

Health event list member.

" + }, + "PercentOfTotalTrafficImpacted":{ + "shape":"Double", + "documentation":"

The impact on global traffic monitored by this monitor for this health event.

" + }, + "ImpactType":{ + "shape":"HealthEventImpactType", + "documentation":"

The type of impairment for a health event.

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

Information about a health event created in a monitor in Amazon CloudWatch Internet Monitor.

" + }, + "HealthEventImpactType":{ + "type":"string", + "enum":[ + "AVAILABILITY", + "PERFORMANCE" + ] + }, + "HealthEventList":{ + "type":"list", + "member":{"shape":"HealthEvent"} + }, + "HealthEventName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9/_.-]+" + }, + "HealthEventStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "RESOLVED" + ] + }, + "ImpactedLocation":{ + "type":"structure", + "required":[ + "ASName", + "ASNumber", + "Country", + "Status" + ], + "members":{ + "ASName":{ + "shape":"String", + "documentation":"

The name of the network at an impacted location.

" + }, + "ASNumber":{ + "shape":"Long", + "documentation":"

The Autonomous System Number (ASN) of the network at an impacted location.

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

The name of the country where the health event is located.

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

The subdivision location where the health event is located. The subdivision usually maps to states in most countries (including the United States). For United Kingdom, it maps to a country (England, Scotland, Wales) or province (Northern Ireland).

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

The metro area where the health event is located.

Metro indicates a metropolitan region in the United States, such as the region around New York City. In non-US countries, this is a second-level subdivision. For example, in the United Kingdom, it could be a county, a London borough, a unitary authority, council area, and so on.

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

The name of the city where the health event is located.

" + }, + "Latitude":{ + "shape":"Double", + "documentation":"

The latitude where the health event is located.

" + }, + "Longitude":{ + "shape":"Double", + "documentation":"

The longitude where the health event is located.

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

The country code where the health event is located. The ISO 3166-2 codes for the country is provided, when available.

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

The subdivision code where the health event is located. The ISO 3166-2 codes for country subdivisions is provided, when available.

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

The service location where the health event is located.

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

The status of the health event at an impacted location.

" + }, + "CausedBy":{ + "shape":"NetworkImpairment", + "documentation":"

The cause of the impairment. There are two types of network impairments: Amazon Web Services network issues or internet issues. Internet issues are typically a problem with a network provider, like an internet service provider (ISP).

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

The calculated health at a specific location.

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

Information about a location impacted by a health event in Amazon CloudWatch Internet Monitor.

Geographic regions are hierarchically categorized into country, subdivision, metro and city geographic granularities. The geographic region is identified based on the IP address used at the client locations.

" + }, + "ImpactedLocationsList":{ + "type":"list", + "member":{"shape":"ImpactedLocation"} + }, + "InternalServerErrorException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

There was an internal server error.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

An internal error occurred.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "InternetHealth":{ + "type":"structure", + "members":{ + "Availability":{ + "shape":"AvailabilityMeasurement", + "documentation":"

Availability in Internet Monitor represents the estimated percentage of traffic that is not seeing an availability drop. For example, an availability score of 99% for an end user and service location pair is equivalent to 1% of the traffic experiencing an availability drop for that pair.

For more information, see How Internet Monitor calculates performance and availability scores in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

" + }, + "Performance":{ + "shape":"PerformanceMeasurement", + "documentation":"

Performance in Internet Monitor represents the estimated percentage of traffic that is not seeing a performance drop. For example, a performance score of 99% for an end user and service location pair is equivalent to 1% of the traffic experiencing a performance drop for that pair.

For more information, see How Internet Monitor calculates performance and availability scores in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

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

Internet health includes measurements calculated by Amazon CloudWatch Internet Monitor about the performance and availability for your application on the internet. Amazon Web Services has substantial historical data about internet performance and availability between Amazon Web Services services and different network providers and geographies. By applying statistical analysis to the data, Internet Monitor can detect when the performance and availability for your application has dropped, compared to an estimated baseline that's already calculated. To make it easier to see those drops, we report that information to you in the form of health scores: a performance score and an availability score.

" + }, + "InternetMeasurementsLogDelivery":{ + "type":"structure", + "members":{ + "S3Config":{ + "shape":"S3Config", + "documentation":"

The configuration information for publishing Internet Monitor internet measurements to Amazon S3. The configuration includes the bucket name and (optionally) prefix for the S3 bucket to store the measurements, and the delivery status. The delivery status is ENABLED or DISABLED, depending on whether you choose to deliver internet measurements to S3 logs.

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

Configuration information for other locations that you choose to publish Amazon CloudWatch Internet Monitor internet measurements to, such as Amazon S3. The measurements are also published to Amazon CloudWatch Logs.

" + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request exceeded a service quota.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ListHealthEventsInput":{ + "type":"structure", + "required":["MonitorName"], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor.

", + "location":"uri", + "locationName":"MonitorName" + }, + "StartTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when a health event started.

", + "location":"querystring", + "locationName":"StartTime" + }, + "EndTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when a health event ended. If the health event is still ongoing, then the end time is not set.

", + "location":"querystring", + "locationName":"EndTime" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results. You receive this token from a previous call.

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

The number of health event objects that you want to return with this call.

", + "location":"querystring", + "locationName":"MaxResults" + }, + "EventStatus":{ + "shape":"HealthEventStatus", + "documentation":"

The status of a health event.

", + "location":"querystring", + "locationName":"EventStatus" + } + } + }, + "ListHealthEventsOutput":{ + "type":"structure", + "required":["HealthEvents"], + "members":{ + "HealthEvents":{ + "shape":"HealthEventList", + "documentation":"

A list of health events.

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

The token for the next set of results. You receive this token from a previous call.

" + } + } + }, + "ListMonitorsInput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results. You receive this token from a previous call.

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

The number of monitor objects that you want to return with this call.

", + "location":"querystring", + "locationName":"MaxResults" + }, + "MonitorStatus":{ + "shape":"String", + "documentation":"

The status of a monitor. This includes the status of the data processing for the monitor and the status of the monitor itself.

For information about the statuses for a monitor, see Monitor.

", + "location":"querystring", + "locationName":"MonitorStatus" + } + } + }, + "ListMonitorsOutput":{ + "type":"structure", + "required":["Monitors"], + "members":{ + "Monitors":{ + "shape":"MonitorList", + "documentation":"

A list of monitors.

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

The token for the next set of results. You receive this token from a previous call.

" + } + } + }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"MonitorArn", + "documentation":"

The Amazon Resource Name (ARN) for a resource.

", + "location":"uri", + "locationName":"ResourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagMap", + "documentation":"

Tags for a resource.

" + } + } + }, + "LogDeliveryStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "Long":{ + "type":"long", + "box":true + }, + "MaxCityNetworksToMonitor":{ + "type":"integer", + "max":500000, + "min":1 + }, + "MaxResults":{ + "type":"integer", + "max":25, + "min":1 + }, + "Monitor":{ + "type":"structure", + "required":[ + "MonitorName", + "MonitorArn", + "Status" + ], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor.

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

The Amazon Resource Name (ARN) of the monitor.

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

The status of a monitor.

" + }, + "ProcessingStatus":{ + "shape":"MonitorProcessingStatusCode", + "documentation":"

The health of data processing for the monitor.

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

The description of and information about a monitor in Amazon CloudWatch Internet Monitor.

" + }, + "MonitorArn":{ + "type":"string", + "max":512, + "min":20, + "pattern":"arn:.*" + }, + "MonitorConfigState":{ + "type":"string", + "enum":[ + "PENDING", + "ACTIVE", + "INACTIVE", + "ERROR" + ] + }, + "MonitorList":{ + "type":"list", + "member":{"shape":"Monitor"} + }, + "MonitorProcessingStatusCode":{ + "type":"string", + "enum":[ + "OK", + "INACTIVE", + "COLLECTING_DATA", + "INSUFFICIENT_DATA", + "FAULT_SERVICE", + "FAULT_ACCESS_CLOUDWATCH" + ] + }, + "Network":{ + "type":"structure", + "required":[ + "ASName", + "ASNumber" + ], + "members":{ + "ASName":{ + "shape":"String", + "documentation":"

The internet provider name or network name.

" + }, + "ASNumber":{ + "shape":"Long", + "documentation":"

The Autonomous System Number (ASN) of the internet provider or network.

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

An internet service provider (ISP) or network in Amazon CloudWatch Internet Monitor.

" + }, + "NetworkImpairment":{ + "type":"structure", + "required":[ + "Networks", + "AsPath", + "NetworkEventType" + ], + "members":{ + "Networks":{ + "shape":"NetworkList", + "documentation":"

The networks that could be impacted by a network impairment event.

" + }, + "AsPath":{ + "shape":"NetworkList", + "documentation":"

The combination of the Autonomous System Number (ASN) of the network and the name of the network.

" + }, + "NetworkEventType":{ + "shape":"TriangulationEventType", + "documentation":"

Type of network impairment.

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

Information about the network impairment for a specific network measured by Amazon CloudWatch Internet Monitor.

" + }, + "NetworkList":{ + "type":"list", + "member":{"shape":"Network"} + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request specifies something that doesn't exist.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "PerformanceMeasurement":{ + "type":"structure", + "members":{ + "ExperienceScore":{ + "shape":"Double", + "documentation":"

Experience scores, or health scores, are calculated for different geographic and network provider combinations (that is, different granularities) and also totaled into global scores. If you view performance or availability scores without filtering for any specific geography or service provider, Amazon CloudWatch Internet Monitor provides global health scores.

The Amazon CloudWatch Internet Monitor chapter in the CloudWatch User Guide includes detailed information about how Internet Monitor calculates health scores, including performance and availability scores, and when it creates and resolves health events. For more information, see How Amazon Web Services calculates performance and availability scores in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

" + }, + "PercentOfTotalTrafficImpacted":{ + "shape":"Double", + "documentation":"

How much performance impact was caused by a health event for total traffic globally. For performance, this is the percentage of how much latency increased during the event compared to typical performance for your application traffic globally.

For more information, see When Amazon Web Services creates and resolves health events in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

" + }, + "PercentOfClientLocationImpacted":{ + "shape":"Double", + "documentation":"

How much performance impact was caused by a health event at a client location. For performance, this is the percentage of how much latency increased during the event compared to typical performance for traffic, from this client location to an Amazon Web Services location, using a specific client network.

For more information, see When Amazon Web Services creates and resolves health events in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

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

This is the percentage of how much round-trip time increased during the event compared to typical round-trip time for your application for traffic.

For more information, see When Amazon Web Services creates and resolves health events in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

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

Measurements about the performance for your application on the internet calculated by Amazon CloudWatch Internet Monitor. Amazon Web Services has substantial historical data about internet performance and availability between Amazon Web Services services and different network providers and geographies. By applying statistical analysis to the data, Internet Monitor can detect when the performance and availability for your application has dropped, compared to an estimated baseline that's already calculated. To make it easier to see those drops, we report that information to you in the form of health scores: a performance score and an availability score.

Performance in Internet Monitor represents the estimated percentage of traffic that is not seeing a performance drop. For example, a performance score of 99% for an end user and service location pair is equivalent to 1% of the traffic experiencing a performance drop for that pair.

For more information, see How Internet Monitor calculates performance and availability scores in the Amazon CloudWatch Internet Monitor section of the CloudWatch User Guide.

" + }, + "ResourceName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request specifies a resource that doesn't exist.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RoundTripTime":{ + "type":"structure", + "members":{ + "P50":{ + "shape":"Double", + "documentation":"

RTT at the 50th percentile (p50).

" + }, + "P90":{ + "shape":"Double", + "documentation":"

RTT at the 90th percentile (p90).

" + }, + "P95":{ + "shape":"Double", + "documentation":"

RTT at the 95th percentile (p95).

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

Round-trip time (RTT) is how long it takes for a request from the user to return a response to the user. Amazon CloudWatch Internet Monitor calculates RTT at different percentiles: p50, p90, and p95.

" + }, + "S3Config":{ + "type":"structure", + "members":{ + "BucketName":{ + "shape":"S3ConfigBucketNameString", + "documentation":"

The Amazon S3 bucket name.

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

The Amazon S3 bucket prefix.

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

The status of publishing Internet Monitor internet measurements to an Amazon S3 bucket.

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

The configuration for publishing Amazon CloudWatch Internet Monitor internet measurements to Amazon S3. The configuration includes the bucket name and (optionally) prefix for the S3 bucket to store the measurements, and the delivery status. The delivery status is ENABLED or DISABLED, depending on whether you choose to deliver internet measurements to S3 logs.

" + }, + "S3ConfigBucketNameString":{ + "type":"string", + "min":3 + }, + "SetOfARNs":{ + "type":"list", + "member":{"shape":"Arn"} + }, + "String":{"type":"string"}, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"MonitorArn", + "documentation":"

The Amazon Resource Name (ARN) for a tag that you add to a resource. Tags are supported only for monitors in Amazon CloudWatch Internet Monitor.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

Tags that you add to a resource. You can add a maximum of 50 tags in Internet Monitor.

" + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

There were too many requests.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "TriangulationEventType":{ + "type":"string", + "enum":[ + "AWS", + "Internet" + ] + }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"MonitorArn", + "documentation":"

The Amazon Resource Name (ARN) for a tag you remove a resource from.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "TagKeys":{ + "shape":"TagKeys", + "documentation":"

Tag keys that you remove from a resource.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateMonitorInput":{ + "type":"structure", + "required":["MonitorName"], + "members":{ + "MonitorName":{ + "shape":"ResourceName", + "documentation":"

The name of the monitor.

", + "location":"uri", + "locationName":"MonitorName" + }, + "ResourcesToAdd":{ + "shape":"SetOfARNs", + "documentation":"

The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs).

You can add a combination of Amazon Virtual Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon WorkSpaces directories. You can't add all three types of resources.

If you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity.

" + }, + "ResourcesToRemove":{ + "shape":"SetOfARNs", + "documentation":"

The resources to remove from a monitor, which you provide as a set of Amazon Resource Names (ARNs).

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

The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: ACTIVE and INACTIVE. The following values are not accepted: PENDING, and ERROR.

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

A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. You should not reuse the same client token for other API requests.

", + "idempotencyToken":true + }, + "MaxCityNetworksToMonitor":{ + "shape":"MaxCityNetworksToMonitor", + "documentation":"

The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider, that clients access the resources through.

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

Publish internet measurements for Internet Monitor to another location, such as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch Logs.

" + } + } + }, + "UpdateMonitorOutput":{ + "type":"structure", + "required":[ + "MonitorArn", + "Status" + ], + "members":{ + "MonitorArn":{ + "shape":"MonitorArn", + "documentation":"

The Amazon Resource Name (ARN) of the monitor.

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

The status of a monitor.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Invalid request.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

Amazon CloudWatch Internet Monitor provides visibility into how internet issues impact the performance and availability between your applications hosted on Amazon Web Services and your end users. It reduces the time it takes for you to diagnose internet issues from days to minutes. Internet Monitor uses the connectivity data that Amazon Web Services captures from its global networking footprint to calculate a baseline of performance and availability for internet traffic. This is the same data that Amazon Web Services uses to monitor internet uptime and availability. With those measurements as a baseline, Internet Monitor raises awareness for you when there are significant problems for your end users in the different geographic locations where your application runs.

Internet Monitor publishes internet measurements to CloudWatch Logs and CloudWatch Metrics, to easily support using CloudWatch tools with health information for geographies and networks specific to your application. Internet Monitor sends health events to Amazon EventBridge so that you can set up notifications. If an issue is caused by the Amazon Web Services network, you also automatically receive an Amazon Web Services Health Dashboard notification with the steps that Amazon Web Services is taking to mitigate the problem.

To use Internet Monitor, you create a monitor and associate your application's resources with it, VPCs, CloudFront distributions, or WorkSpaces directories, to enable Internet Monitor to know where your application's internet traffic is. Internet Monitor then provides internet measurements from Amazon Web Services that are specific to the locations and networks that communicate with your application.

For more information, see Using Amazon CloudWatch Internet Monitor in the Amazon CloudWatch User Guide.

" +} diff --git a/services/internetmonitor/src/main/resources/codegen-resources/waiters-2.json b/services/internetmonitor/src/main/resources/codegen-resources/waiters-2.json new file mode 100644 index 000000000000..13f60ee66be6 --- /dev/null +++ b/services/internetmonitor/src/main/resources/codegen-resources/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/services/iot/pom.xml b/services/iot/pom.xml index 669813ad5c79..bc590cfad2a3 100644 --- a/services/iot/pom.xml +++ b/services/iot/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iot AWS Java SDK :: Services :: AWS IoT diff --git a/services/iot/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/iot/src/main/resources/codegen-resources/endpoint-rule-set.json index cc821ce0b35c..6190c5d138b0 100644 --- a/services/iot/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/iot/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,174 +111,313 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", "rules": [ { - "conditions": [], + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], "endpoint": { - "url": "https://iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://iot.{Region}.amazonaws.com", "properties": {}, "headers": {} }, "type": "endpoint" - } - ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", - "argv": [ + "conditions": [ { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "fn": "stringEquals", + "argv": [ + "aws-cn", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://iot.{Region}.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://iot.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iot.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://iot.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/iot/src/main/resources/codegen-resources/endpoint-tests.json b/services/iot/src/main/resources/codegen-resources/endpoint-tests.json index b5f4878992f2..6b80a4dea42b 100644 --- a/services/iot/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/iot/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,42 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.ap-south-1.api.aws" + "url": "https://iot.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.ap-south-1.amazonaws.com" + "url": "https://iot.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.ap-south-1.api.aws" + "url": "https://iot.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -47,1201 +47,473 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.us-gov-east-1.api.aws" + "url": "https://iot.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.us-gov-east-1.amazonaws.com" + "url": "https://iot.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.us-gov-east-1.api.aws" + "url": "https://iot.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.us-gov-east-1.amazonaws.com" + "url": "https://iot-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.me-central-1.api.aws" + "url": "https://iot.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.me-central-1.amazonaws.com" + "url": "https://iot.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": true + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.me-central-1.api.aws" + "url": "https://iot.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": false + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.me-central-1.amazonaws.com" + "url": "https://iot.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.ca-central-1.api.aws" + "url": "https://iot.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.ca-central-1.amazonaws.com" + "url": "https://iot.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.ca-central-1.api.aws" + "url": "https://iot.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.ca-central-1.amazonaws.com" + "url": "https://iot.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.eu-central-1.api.aws" + "url": "https://iot-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.eu-central-1.amazonaws.com" + "url": "https://iot.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.eu-central-1.api.aws" + "url": "https://iot-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.eu-central-1.amazonaws.com" + "url": "https://iot.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.us-west-1.api.aws" + "url": "https://iot-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "us-west-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.us-west-1.amazonaws.com" + "url": "https://iot.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.us-west-1.api.aws" + "url": "https://iot-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iot.us-west-1.amazonaws.com" + "url": "https://iot-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iot-fips.us-west-2.api.aws" + "url": "https://iot.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.us-west-2.amazonaws.com" + "url": "https://iot.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.us-west-2.api.aws" + "url": "https://iot.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iot.us-west-2.amazonaws.com" + "url": "https://iot-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.eu-north-1.api.aws" + "url": "https://iot-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iot-fips.eu-north-1.amazonaws.com" + "url": "https://iot.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.eu-north-1.api.aws" + "url": "https://iot.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot.eu-north-1.amazonaws.com" + "url": "https://iot-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.eu-west-3.api.aws" + "url": "https://iot.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.eu-west-3.amazonaws.com" + "url": "https://iot-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iot.eu-west-3.api.aws" + "url": "https://iot-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iot.eu-west-3.amazonaws.com" + "url": "https://iot.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://iot-fips.eu-west-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iot-fips.eu-west-2.amazonaws.com" + "url": "https://iot-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://iot.eu-west-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "url": "https://iot.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "Region": "us-iso-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot-fips.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iot.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iot.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -1250,9 +522,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -1263,9 +535,9 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -1274,9 +546,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -1287,22 +559,35 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1312,9 +597,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1324,11 +609,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/iot/src/main/resources/codegen-resources/service-2.json b/services/iot/src/main/resources/codegen-resources/service-2.json index 2e2ed17c2113..0c52188b8cbf 100644 --- a/services/iot/src/main/resources/codegen-resources/service-2.json +++ b/services/iot/src/main/resources/codegen-resources/service-2.json @@ -353,7 +353,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Creates an X.509 certificate using the specified certificate signing request.

Note: The CSR must include a public key that is either an RSA key with a length of at least 2048 bits or an ECC key from NIST P-256, NIST P-384, or NIST P-512 curves. For supported certificates, consult Certificate signing algorithms supported by IoT.

Note: Reusing the same certificate signing request (CSR) results in a distinct certificate.

Requires permission to access the CreateCertificateFromCsr action.

You can create multiple certificates in a batch by creating a directory, copying multiple .csr files into that directory, and then specifying that directory on the command line. The following commands show how to create a batch of certificates given a batch of CSRs.

Assuming a set of CSRs are located inside of the directory my-csr-directory:

On Linux and OS X, the command is:

$ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

This command lists all of the CSRs in my-csr-directory and pipes each CSR file name to the aws iot create-certificate-from-csr Amazon Web Services CLI command to create a certificate for the corresponding CSR.

The aws iot create-certificate-from-csr part of the command can also be run in parallel to speed up the certificate creation process:

$ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

On Windows PowerShell, the command to create certificates for all CSRs in my-csr-directory is:

> ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_}

On a Windows command prompt, the command to create certificates for all CSRs in my-csr-directory is:

> forfiles /p my-csr-directory /c \"cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path\"

" + "documentation":"

Creates an X.509 certificate using the specified certificate signing request.

Requires permission to access the CreateCertificateFromCsr action.

The CSR must include a public key that is either an RSA key with a length of at least 2048 bits or an ECC key from NIST P-25 or NIST P-384 curves. For supported certificates, consult Certificate signing algorithms supported by IoT.

Reusing the same certificate signing request (CSR) results in a distinct certificate.

You can create multiple certificates in a batch by creating a directory, copying multiple .csr files into that directory, and then specifying that directory on the command line. The following commands show how to create a batch of certificates given a batch of CSRs. In the following commands, we assume that a set of CSRs are located inside of the directory my-csr-directory:

On Linux and OS X, the command is:

$ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

This command lists all of the CSRs in my-csr-directory and pipes each CSR file name to the aws iot create-certificate-from-csr Amazon Web Services CLI command to create a certificate for the corresponding CSR.

You can also run the aws iot create-certificate-from-csr part of the command in parallel to speed up the certificate creation process:

$ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}

On Windows PowerShell, the command to create certificates for all CSRs in my-csr-directory is:

> ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_}

On a Windows command prompt, the command to create certificates for all CSRs in my-csr-directory is:

> forfiles /p my-csr-directory /c \"cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path\"

" }, "CreateCustomMetric":{ "name":"CreateCustomMetric", @@ -6730,7 +6730,7 @@ }, "unit":{ "shape":"FleetMetricUnit", - "documentation":"

Used to support unit transformation such as milliseconds to seconds. The unit must be supported by CW metric. Default to null.

" + "documentation":"

Used to support unit transformation such as milliseconds to seconds. The unit must be supported by CW metric. Default to null.

" }, "tags":{ "shape":"TagList", @@ -6883,6 +6883,10 @@ "jobExecutionsRetryConfig":{ "shape":"JobExecutionsRetryConfig", "documentation":"

Allows you to create the criteria to retry a job.

" + }, + "maintenanceWindows":{ + "shape":"MaintenanceWindows", + "documentation":"

Allows you to configure an optional maintenance window for the rollout of a job document to all devices in the target group for a job.

" } } }, @@ -7661,6 +7665,11 @@ "max":43200, "min":900 }, + "CronExpression":{ + "type":"string", + "max":256, + "min":1 + }, "CustomCodeSigning":{ "type":"structure", "members":{ @@ -8925,7 +8934,7 @@ }, "unit":{ "shape":"FleetMetricUnit", - "documentation":"

Used to support unit transformation such as milliseconds to seconds. The unit must be supported by CW metric.

" + "documentation":"

Used to support unit transformation such as milliseconds to seconds. The unit must be supported by CW metric.

" }, "version":{ "shape":"Version", @@ -9073,6 +9082,10 @@ "jobExecutionsRetryConfig":{ "shape":"JobExecutionsRetryConfig", "documentation":"

The configuration that determines how many retries are allowed for each failure type for a job.

" + }, + "maintenanceWindows":{ + "shape":"MaintenanceWindows", + "documentation":"

Allows you to configure an optional maintenance window for the rollout of a job document to all devices in the target group for a job.

" } } }, @@ -10056,6 +10069,11 @@ "CUSTOMER_MANAGED" ] }, + "DurationInMinutes":{ + "type":"integer", + "max":1430, + "min":30 + }, "DurationSeconds":{"type":"integer"}, "DynamicGroupStatus":{ "type":"string", @@ -11494,6 +11512,10 @@ "schedulingConfig":{ "shape":"SchedulingConfig", "documentation":"

The configuration that allows you to schedule a job for a future date and time in addition to specifying the end behavior for each job execution.

" + }, + "scheduledJobRollouts":{ + "shape":"ScheduledJobRolloutList", + "documentation":"

Displays the next seven maintenance window occurrences and their start times.

" } }, "documentation":"

The Job object contains details about a job.

" @@ -14474,6 +14496,28 @@ }, "documentation":"

The configuration of an ML Detect Security Profile.

" }, + "MaintenanceWindow":{ + "type":"structure", + "required":[ + "startTime", + "durationInMinutes" + ], + "members":{ + "startTime":{ + "shape":"CronExpression", + "documentation":"

Displays the start time of the next maintenance window.

" + }, + "durationInMinutes":{ + "shape":"DurationInMinutes", + "documentation":"

Displays the duration of the next maintenance window.

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

An optional configuration within the SchedulingConfig to setup a recurring maintenance window with a predetermined start time and duration for the rollout of a job document to all devices in a target group for a job.

" + }, + "MaintenanceWindows":{ + "type":"list", + "member":{"shape":"MaintenanceWindow"} + }, "MalformedPolicyException":{ "type":"structure", "members":{ @@ -16310,20 +16354,38 @@ "min":1, "pattern":"[a-zA-Z0-9_-]+" }, + "ScheduledJobRollout":{ + "type":"structure", + "members":{ + "startTime":{ + "shape":"StringDateTime", + "documentation":"

Displays the start times of the next seven maintenance window occurrences.

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

Displays the next seven maintenance window occurrences and their start times.

" + }, + "ScheduledJobRolloutList":{ + "type":"list", + "member":{"shape":"ScheduledJobRollout"} + }, "SchedulingConfig":{ "type":"structure", "members":{ "startTime":{ "shape":"StringDateTime", - "documentation":"

The time a job will begin rollout of the job document to all devices in the target group for a job. The startTime can be scheduled up to a year in advance and must be scheduled a minimum of thirty minutes from the current time.

" + "documentation":"

The time a job will begin rollout of the job document to all devices in the target group for a job. The startTime can be scheduled up to a year in advance and must be scheduled a minimum of thirty minutes from the current time. The date and time format for the startTime is YYYY-MM-DD for the date and HH:MM for the time.

" }, "endTime":{ "shape":"StringDateTime", - "documentation":"

The time a job will stop rollout of the job document to all devices in the target group for a job. The endTime must take place no later than two years from the current time and be scheduled a minimum of thirty minutes from the current time. The minimum duration between startTime and endTime is thirty minutes. The maximum duration between startTime and endTime is two years.

" + "documentation":"

The time a job will stop rollout of the job document to all devices in the target group for a job. The endTime must take place no later than two years from the current time and be scheduled a minimum of thirty minutes from the current time. The minimum duration between startTime and endTime is thirty minutes. The maximum duration between startTime and endTime is two years. The date and time format for the endTime is YYYY-MM-DD for the date and HH:MM for the time.

" }, "endBehavior":{ "shape":"JobEndBehavior", "documentation":"

Specifies the end behavior for all job executions after a job reaches the selected endTime. If endTime is not selected when creating the job, then endBehavior does not apply.

" + }, + "maintenanceWindows":{ + "shape":"MaintenanceWindows", + "documentation":"

An optional configuration within the SchedulingConfig to setup a recurring maintenance window with a predetermined start time and duration for the rollout of a job document to all devices in a target group for a job.

" } }, "documentation":"

Specifies the date and time that a job will begin the rollout of the job document to all devices in the target group. Additionally, you can specify the end behavior for each job execution when it reaches the scheduled end time.

" diff --git a/services/iot1clickdevices/pom.xml b/services/iot1clickdevices/pom.xml index 33136bd360d1..784fb0c32bcf 100644 --- a/services/iot1clickdevices/pom.xml +++ b/services/iot1clickdevices/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iot1clickdevices AWS Java SDK :: Services :: IoT 1Click Devices Service diff --git a/services/iot1clickprojects/pom.xml b/services/iot1clickprojects/pom.xml index d79cc3c817c6..d045852dcf06 100644 --- a/services/iot1clickprojects/pom.xml +++ b/services/iot1clickprojects/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iot1clickprojects AWS Java SDK :: Services :: IoT 1Click Projects diff --git a/services/iotanalytics/pom.xml b/services/iotanalytics/pom.xml index bd15b3ab9fed..6eed845685d4 100644 --- a/services/iotanalytics/pom.xml +++ b/services/iotanalytics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotanalytics AWS Java SDK :: Services :: IoTAnalytics diff --git a/services/iotdataplane/pom.xml b/services/iotdataplane/pom.xml index a66eca270f0d..b179a98e557f 100644 --- a/services/iotdataplane/pom.xml +++ b/services/iotdataplane/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotdataplane AWS Java SDK :: Services :: AWS IoT Data Plane diff --git a/services/iotdataplane/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/iotdataplane/src/main/resources/codegen-resources/endpoint-rule-set.json index 637371bc2e91..89de6446a566 100644 --- a/services/iotdataplane/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/iotdataplane/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,151 +111,352 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data-ats.iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://data-ats.iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "us-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://data.iot-fips.us-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "us-east-2" + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-2" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-west-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-west-2" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://data-ats.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://data.iot-fips.us-east-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "ca-central-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://data.iot-fips.ca-central-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data-ats.iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { @@ -293,12 +465,12 @@ { "ref": "Region" }, - "us-west-1" + "cn-north-1" ] } ], "endpoint": { - "url": "https://data.iot-fips.us-west-1.amazonaws.com", + "url": "https://data.ats.iot.cn-north-1.amazonaws.com.cn", "properties": {}, "headers": {} }, @@ -309,15 +481,21 @@ { "fn": "stringEquals", "argv": [ + "aws", { - "ref": "Region" - }, - "us-west-2" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } ] } ], "endpoint": { - "url": "https://data.iot-fips.us-west-2.amazonaws.com", + "url": "https://data-ats.iot.{Region}.amazonaws.com", "properties": {}, "headers": {} }, @@ -328,15 +506,21 @@ { "fn": "stringEquals", "argv": [ + "aws-cn", { - "ref": "Region" - }, - "us-gov-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } ] } ], "endpoint": { - "url": "https://data.iot-fips.us-gov-west-1.amazonaws.com", + "url": "https://data-ats.iot.{Region}.amazonaws.com.cn", "properties": {}, "headers": {} }, @@ -347,15 +531,21 @@ { "fn": "stringEquals", "argv": [ + "aws-us-gov", { - "ref": "Region" - }, - "us-gov-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } ] } ], "endpoint": { - "url": "https://data.iot-fips.us-gov-east-1.amazonaws.com", + "url": "https://data-ats.iot.{Region}.amazonaws.com", "properties": {}, "headers": {} }, @@ -364,7 +554,7 @@ { "conditions": [], "endpoint": { - "url": "https://data-ats.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://data-ats.iot.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -373,74 +563,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://data-ats.iot.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://data-ats.iot.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/iotdataplane/src/main/resources/codegen-resources/endpoint-tests.json b/services/iotdataplane/src/main/resources/codegen-resources/endpoint-tests.json index ff50cb00a83b..6797f07ac82a 100644 --- a/services/iotdataplane/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/iotdataplane/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,42 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.ap-south-1.api.aws" + "url": "https://data-ats.iot.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.ap-south-1.amazonaws.com" + "url": "https://data-ats.iot.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.ap-south-1.api.aws" + "url": "https://data-ats.iot.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -47,1201 +47,473 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-south-1", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.us-gov-east-1.api.aws" + "url": "https://data-ats.iot.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data.iot-fips.us-gov-east-1.amazonaws.com" + "url": "https://data-ats.iot.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.us-gov-east-1.api.aws" + "url": "https://data-ats.iot.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.us-gov-east-1.amazonaws.com" + "url": "https://data.iot-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.me-central-1.api.aws" + "url": "https://data-ats.iot.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": true + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.me-central-1.amazonaws.com" + "url": "https://data-ats.iot.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": false + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.me-central-1.api.aws" + "url": "https://data-ats.iot.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": true + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.me-central-1.amazonaws.com" + "url": "https://data-ats.iot.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": false + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.ca-central-1.api.aws" + "url": "https://data-ats.iot.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data.iot-fips.ca-central-1.amazonaws.com" + "url": "https://data-ats.iot.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.ca-central-1.api.aws" + "url": "https://data-ats.iot.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.ca-central-1.amazonaws.com" + "url": "https://data-ats.iot.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.eu-central-1.api.aws" + "url": "https://data.iot-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.eu-central-1.amazonaws.com" + "url": "https://data-ats.iot.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.eu-central-1.api.aws" + "url": "https://data.iot-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.eu-central-1.amazonaws.com" + "url": "https://data-ats.iot.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.us-west-1.api.aws" + "url": "https://data.iot-fips.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "Region": "us-west-1", - "UseDualStack": true + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data.iot-fips.us-west-1.amazonaws.com" + "url": "https://data-ats.iot.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.us-west-1.api.aws" + "url": "https://data.iot-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.us-west-1.amazonaws.com" + "url": "https://data-ats.iot-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.us-west-2.api.aws" + "url": "https://data-ats.iot.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data.iot-fips.us-west-2.amazonaws.com" + "url": "https://data.ats.iot.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.us-west-2.api.aws" + "url": "https://data-ats.iot.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.us-west-2.amazonaws.com" + "url": "https://data-ats.iot-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.eu-north-1.api.aws" + "url": "https://data-ats.iot-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.eu-north-1.amazonaws.com" + "url": "https://data-ats.iot.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.eu-north-1.api.aws" + "url": "https://data-ats.iot.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.eu-north-1.amazonaws.com" + "url": "https://data.iot-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.eu-west-3.api.aws" + "url": "https://data-ats.iot.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.eu-west-3.amazonaws.com" + "url": "https://data.iot-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.eu-west-3.api.aws" + "url": "https://data-ats.iot-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://data-ats.iot.eu-west-3.amazonaws.com" + "url": "https://data-ats.iot.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.eu-west-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://data-ats.iot-fips.eu-west-2.amazonaws.com" + "url": "https://data-ats.iot-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://data-ats.iot.eu-west-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data.iot-fips.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-southeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "url": "https://data-ats.iot.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, "Region": "us-iso-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data.iot-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data.iot-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.us-east-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot-fips.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": false - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://data-ats.iot.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false } }, { @@ -1250,9 +522,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", - "UseDualStack": true + "UseDualStack": true, + "UseFIPS": true } }, { @@ -1263,9 +535,9 @@ } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": true } }, { @@ -1274,9 +546,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", - "UseDualStack": true + "UseDualStack": true, + "UseFIPS": false } }, { @@ -1287,22 +559,35 @@ } }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -1312,9 +597,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1324,11 +609,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", "UseDualStack": true, + "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/iotdataplane/src/main/resources/codegen-resources/service-2.json b/services/iotdataplane/src/main/resources/codegen-resources/service-2.json index 595039c300be..1caa60198f80 100644 --- a/services/iotdataplane/src/main/resources/codegen-resources/service-2.json +++ b/services/iotdataplane/src/main/resources/codegen-resources/service-2.json @@ -48,7 +48,7 @@ {"shape":"InternalFailureException"}, {"shape":"MethodNotAllowedException"} ], - "documentation":"

Gets the details of a single retained message for the specified topic.

This action returns the message payload of the retained message, which can incur messaging costs. To list only the topic names of the retained messages, call ListRetainedMessages.

Requires permission to access the GetRetainedMessage action.

For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.

" + "documentation":"

Gets the details of a single retained message for the specified topic.

This action returns the message payload of the retained message, which can incur messaging costs. To list only the topic names of the retained messages, call ListRetainedMessages.

Requires permission to access the GetRetainedMessage action.

For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.

" }, "GetThingShadow":{ "name":"GetThingShadow", @@ -105,7 +105,7 @@ {"shape":"InternalFailureException"}, {"shape":"MethodNotAllowedException"} ], - "documentation":"

Lists summary information about the retained messages stored for the account.

This action returns only the topic names of the retained messages. It doesn't return any message payloads. Although this action doesn't return a message payload, it can still incur messaging costs.

To get the message payload of a retained message, call GetRetainedMessage with the topic name of the retained message.

Requires permission to access the ListRetainedMessages action.

For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.

" + "documentation":"

Lists summary information about the retained messages stored for the account.

This action returns only the topic names of the retained messages. It doesn't return any message payloads. Although this action doesn't return a message payload, it can still incur messaging costs.

To get the message payload of a retained message, call GetRetainedMessage with the topic name of the retained message.

Requires permission to access the ListRetainedMessages action.

For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.

" }, "Publish":{ "name":"Publish", @@ -222,6 +222,10 @@ "lastModifiedTime":{ "shape":"Timestamp", "documentation":"

The Epoch date and time, in milliseconds, when the retained message was stored by IoT.

" + }, + "userProperties":{ + "shape":"UserPropertiesBlob", + "documentation":"

A base64-encoded JSON string that includes an array of JSON objects, or null if the retained message doesn't include any user properties.

The following example userProperties parameter is a JSON string that represents two user properties. Note that it will be base64-encoded:

[{\"deviceName\": \"alpha\"}, {\"deviceCnt\": \"45\"}]

" } }, "documentation":"

The output from the GetRetainedMessage operation.

" @@ -616,6 +620,7 @@ "payload":"payload" }, "UserProperties":{"type":"string"}, + "UserPropertiesBlob":{"type":"blob"}, "errorMessage":{"type":"string"} }, "documentation":"IoT data

IoT data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete shadows. A shadow is a persistent representation of your things and their state in the Amazon Web Services cloud.

Find the endpoint address for actions in IoT data by running this CLI command:

aws iot describe-endpoint --endpoint-type iot:Data-ATS

The service name used by Amazon Web ServicesSignature Version 4 to sign requests is: iotdevicegateway.

" diff --git a/services/iotdeviceadvisor/pom.xml b/services/iotdeviceadvisor/pom.xml index eb67e617605e..122eeaa1df6b 100644 --- a/services/iotdeviceadvisor/pom.xml +++ b/services/iotdeviceadvisor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotdeviceadvisor AWS Java SDK :: Services :: Iot Device Advisor diff --git a/services/iotevents/pom.xml b/services/iotevents/pom.xml index e5f9d078663d..e8fe3512580d 100644 --- a/services/iotevents/pom.xml +++ b/services/iotevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotevents AWS Java SDK :: Services :: IoT Events diff --git a/services/ioteventsdata/pom.xml b/services/ioteventsdata/pom.xml index 58ce55a91937..3050154515d1 100644 --- a/services/ioteventsdata/pom.xml +++ b/services/ioteventsdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ioteventsdata AWS Java SDK :: Services :: IoT Events Data diff --git a/services/iotfleethub/pom.xml b/services/iotfleethub/pom.xml index 6a2023aaca81..aca7f624b009 100644 --- a/services/iotfleethub/pom.xml +++ b/services/iotfleethub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotfleethub AWS Java SDK :: Services :: Io T Fleet Hub diff --git a/services/iotfleetwise/pom.xml b/services/iotfleetwise/pom.xml index d94fbc62577c..c4d86adeee11 100644 --- a/services/iotfleetwise/pom.xml +++ b/services/iotfleetwise/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotfleetwise AWS Java SDK :: Services :: Io T Fleet Wise diff --git a/services/iotjobsdataplane/pom.xml b/services/iotjobsdataplane/pom.xml index 84596e2bf85a..abef4aec9206 100644 --- a/services/iotjobsdataplane/pom.xml +++ b/services/iotjobsdataplane/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotjobsdataplane AWS Java SDK :: Services :: IoT Jobs Data Plane diff --git a/services/iotroborunner/pom.xml b/services/iotroborunner/pom.xml index bd6010157de2..17627c290fb3 100644 --- a/services/iotroborunner/pom.xml +++ b/services/iotroborunner/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotroborunner AWS Java SDK :: Services :: IoT Robo Runner diff --git a/services/iotsecuretunneling/pom.xml b/services/iotsecuretunneling/pom.xml index 6590936006f1..9066ea0b1914 100644 --- a/services/iotsecuretunneling/pom.xml +++ b/services/iotsecuretunneling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotsecuretunneling AWS Java SDK :: Services :: IoTSecureTunneling diff --git a/services/iotsitewise/pom.xml b/services/iotsitewise/pom.xml index 77de9d0e1736..e7282473800b 100644 --- a/services/iotsitewise/pom.xml +++ b/services/iotsitewise/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotsitewise AWS Java SDK :: Services :: Io T Site Wise diff --git a/services/iotsitewise/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/iotsitewise/src/main/resources/codegen-resources/endpoint-rule-set.json index fb779a32e3ab..4d0aa7174fca 100644 --- a/services/iotsitewise/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/iotsitewise/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotsitewise-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotsitewise-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iotsitewise-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotsitewise.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://iotsitewise-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://iotsitewise.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iotsitewise.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://iotsitewise.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/iotsitewise/src/main/resources/codegen-resources/endpoint-tests.json b/services/iotsitewise/src/main/resources/codegen-resources/endpoint-tests.json index 44fb0f09bdd4..549d8c6d13a3 100644 --- a/services/iotsitewise/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/iotsitewise/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.ap-south-1.amazonaws.com" + "url": "https://iotsitewise.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "ap-south-1" + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-south-1.api.aws" + "url": "https://iotsitewise.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -47,100 +34,35 @@ } }, "params": { - "UseFIPS": false, + "Region": "ap-south-1", "UseDualStack": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.us-gov-east-1.amazonaws.com" + "url": "https://iotsitewise.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "ap-southeast-1", "UseDualStack": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.ca-central-1.amazonaws.com" + "url": "https://iotsitewise.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" + "UseFIPS": false } }, { @@ -151,48 +73,22 @@ } }, "params": { - "UseFIPS": false, + "Region": "ca-central-1", "UseDualStack": false, - "Region": "ca-central-1" + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.eu-central-1.amazonaws.com" + "url": "https://iotsitewise-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "ca-central-1", "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" + "UseFIPS": true } }, { @@ -203,217 +99,139 @@ } }, "params": { - "UseFIPS": false, + "Region": "eu-central-1", "UseDualStack": false, - "Region": "eu-central-1" + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.us-west-2.amazonaws.com" + "url": "https://iotsitewise.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "eu-west-1", "UseDualStack": false, - "Region": "us-west-2" + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.us-west-2.amazonaws.com" + "url": "https://iotsitewise.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-west-2" + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.eu-west-1.amazonaws.com" + "url": "https://iotsitewise-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" + "UseFIPS": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.eu-west-1.amazonaws.com" + "url": "https://iotsitewise.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-east-2", "UseDualStack": false, - "Region": "eu-west-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.ap-northeast-2.amazonaws.com" + "url": "https://iotsitewise-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "us-east-2", "UseDualStack": false, - "Region": "ap-northeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-northeast-2.api.aws" + "url": "https://iotsitewise.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-northeast-2.amazonaws.com" + "url": "https://iotsitewise-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-west-2", "UseDualStack": false, - "Region": "ap-northeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.ap-northeast-1.api.aws" + "url": "https://iotsitewise-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-northeast-1.api.aws" + "url": "https://iotsitewise.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": true, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-northeast-1.amazonaws.com" + "url": "https://iotsitewise.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { @@ -424,9 +242,9 @@ } }, "params": { - "UseFIPS": true, + "Region": "cn-north-1", "UseDualStack": true, - "Region": "cn-north-1" + "UseFIPS": true } }, { @@ -437,9 +255,9 @@ } }, "params": { - "UseFIPS": true, + "Region": "cn-north-1", "UseDualStack": false, - "Region": "cn-north-1" + "UseFIPS": true } }, { @@ -450,35 +268,22 @@ } }, "params": { - "UseFIPS": false, + "Region": "cn-north-1", "UseDualStack": true, - "Region": "cn-north-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.cn-north-1.amazonaws.com.cn" + "url": "https://iotsitewise.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-gov-west-1", "UseDualStack": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { @@ -489,256 +294,139 @@ } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, + "Region": "us-gov-west-1", "UseDualStack": false, - "Region": "us-gov-west-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.ap-southeast-1.api.aws" + "url": "https://iotsitewise-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.ap-southeast-1.amazonaws.com" + "url": "https://iotsitewise-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-southeast-1.api.aws" + "url": "https://iotsitewise.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-southeast-1.amazonaws.com" + "url": "https://iotsitewise.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.ap-southeast-2.amazonaws.com" + "url": "https://iotsitewise-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.ap-southeast-2.amazonaws.com" + "url": "https://iotsitewise.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.us-east-1.api.aws" + "url": "https://iotsitewise-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise.us-east-1.api.aws" + "url": "https://iotsitewise.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://iotsitewise-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise-fips.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { - "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://iotsitewise.us-east-2.amazonaws.com" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-2" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -748,9 +436,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -760,9 +448,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/iotsitewise/src/main/resources/codegen-resources/service-2.json b/services/iotsitewise/src/main/resources/codegen-resources/service-2.json index e90ff8ff4ace..22db44ff335f 100644 --- a/services/iotsitewise/src/main/resources/codegen-resources/service-2.json +++ b/services/iotsitewise/src/main/resources/codegen-resources/service-2.json @@ -2778,7 +2778,7 @@ "members":{ "entries":{ "shape":"BatchGetAssetPropertyValueEntries", - "documentation":"

The list of asset property value entries for the batch get request. You can specify up to 16 entries per request.

" + "documentation":"

The list of asset property value entries for the batch get request. You can specify up to 128 entries per request.

" }, "nextToken":{ "shape":"NextToken", @@ -4514,7 +4514,8 @@ "timeSeriesId", "dataType", "timeSeriesCreationDate", - "timeSeriesLastUpdateDate" + "timeSeriesLastUpdateDate", + "timeSeriesArn" ], "members":{ "assetId":{ @@ -4548,6 +4549,10 @@ "timeSeriesLastUpdateDate":{ "shape":"Timestamp", "documentation":"

The date that the time series was last updated, in Unix epoch time.

" + }, + "timeSeriesArn":{ + "shape":"ARN", + "documentation":"

The ARN of the time series, which has the following format.

arn:${Partition}:iotsitewise:${Region}:${Account}:time-series/${TimeSeriesId}

" } } }, @@ -6854,7 +6859,8 @@ "timeSeriesId", "dataType", "timeSeriesCreationDate", - "timeSeriesLastUpdateDate" + "timeSeriesLastUpdateDate", + "timeSeriesArn" ], "members":{ "assetId":{ @@ -6888,6 +6894,10 @@ "timeSeriesLastUpdateDate":{ "shape":"Timestamp", "documentation":"

The date that the time series was last updated, in Unix epoch time.

" + }, + "timeSeriesArn":{ + "shape":"ARN", + "documentation":"

The ARN of the time series, which has the following format.

arn:${Partition}:iotsitewise:${Region}:${Account}:time-series/${TimeSeriesId}

" } }, "documentation":"

Contains a summary of a time series (data stream).

" diff --git a/services/iotthingsgraph/pom.xml b/services/iotthingsgraph/pom.xml index a8571c4f3fbc..5835367e4597 100644 --- a/services/iotthingsgraph/pom.xml +++ b/services/iotthingsgraph/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotthingsgraph AWS Java SDK :: Services :: IoTThingsGraph diff --git a/services/iottwinmaker/pom.xml b/services/iottwinmaker/pom.xml index 54e0035b7f7d..06be0e951c6e 100644 --- a/services/iottwinmaker/pom.xml +++ b/services/iottwinmaker/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iottwinmaker AWS Java SDK :: Services :: Io T Twin Maker diff --git a/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-rule-set.json index 2d98fd222316..6e442dec4e50 100644 --- a/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iottwinmaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iottwinmaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iottwinmaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iottwinmaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://iottwinmaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://iottwinmaker.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://iottwinmaker.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://iottwinmaker.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-tests.json b/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-tests.json index e3f5c81fa834..09beb79957d7 100644 --- a/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/iottwinmaker/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,319 +1,324 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.eu-central-1.api.aws" + "url": "https://iottwinmaker.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.eu-central-1.amazonaws.com" + "url": "https://iottwinmaker.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1" + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.eu-central-1.api.aws" + "url": "https://iottwinmaker.eu-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, + "UseDualStack": false, "Region": "eu-central-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.eu-central-1.amazonaws.com" + "url": "https://iottwinmaker.eu-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1" + "Region": "eu-west-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.us-west-2.api.aws" + "url": "https://iottwinmaker.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.us-west-2.amazonaws.com" + "url": "https://iottwinmaker.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, "Region": "us-west-2" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.us-west-2.api.aws" + "url": "https://iottwinmaker-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": true, - "Region": "us-west-2" + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.us-west-2.amazonaws.com" + "url": "https://iottwinmaker-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "us-west-2" + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.eu-west-1.api.aws" + "url": "https://iottwinmaker.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, "UseDualStack": true, - "Region": "eu-west-1" + "Region": "cn-north-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.eu-west-1.amazonaws.com" + "url": "https://iottwinmaker-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "eu-west-1" + "Region": "cn-north-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.eu-west-1.api.aws" + "url": "https://iottwinmaker.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "eu-west-1" + "Region": "cn-north-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.eu-west-1.amazonaws.com" + "url": "https://iottwinmaker.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.ap-southeast-1.api.aws" + "url": "https://iottwinmaker-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.ap-southeast-1.amazonaws.com" + "url": "https://iottwinmaker-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.ap-southeast-1.api.aws" + "url": "https://iottwinmaker.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.ap-southeast-1.amazonaws.com" + "url": "https://iottwinmaker.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://iottwinmaker-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.ap-southeast-2.amazonaws.com" + "url": "https://iottwinmaker-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://iottwinmaker.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.ap-southeast-2.amazonaws.com" + "url": "https://iottwinmaker.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://iottwinmaker-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker-fips.us-east-1.amazonaws.com" + "url": "https://iottwinmaker-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://iottwinmaker.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://iottwinmaker.us-east-1.amazonaws.com" + "url": "https://iottwinmaker.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -326,6 +331,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { @@ -349,6 +367,12 @@ "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/iottwinmaker/src/main/resources/codegen-resources/service-2.json b/services/iottwinmaker/src/main/resources/codegen-resources/service-2.json index a3b9fe080697..6d856f6338e4 100644 --- a/services/iottwinmaker/src/main/resources/codegen-resources/service-2.json +++ b/services/iottwinmaker/src/main/resources/codegen-resources/service-2.json @@ -753,7 +753,7 @@ "documentation":"

The pricing tier.

" } }, - "documentation":"

Information about pricing bundle.

" + "documentation":"

Information about the pricing bundle.

" }, "BundleName":{ "type":"string", @@ -807,7 +807,7 @@ "documentation":"

The update type.

" } }, - "documentation":"

" + "documentation":"

The component property group request.

" }, "ComponentPropertyGroupRequests":{ "type":"map", @@ -1222,6 +1222,10 @@ "tags":{ "shape":"TagMap", "documentation":"

Metadata that you can use to manage the scene.

" + }, + "sceneMetadata":{ + "shape":"SceneMetadataMap", + "documentation":"

The request metadata.

" } } }, @@ -1252,19 +1256,19 @@ "members":{ "workspaceId":{ "shape":"Id", - "documentation":"

The workspace Id.

", + "documentation":"

The workspace ID.

", "location":"uri", "locationName":"workspaceId" }, "syncSource":{ "shape":"SyncSource", - "documentation":"

The sync source.

Currently the only supported syncSoucre is SITEWISE .

", + "documentation":"

The sync source.

Currently the only supported syncSoource is SITEWISE .

", "location":"uri", "locationName":"syncSource" }, "syncRole":{ "shape":"RoleArn", - "documentation":"

The SyncJob IAM role. This IAM role is used by the sync job to read from the syncSource, and create, update or delete the corresponding resources.

" + "documentation":"

The SyncJob IAM role. This IAM role is used by the SyncJob to read from the syncSource, and create, update, or delete the corresponding resources.

" }, "tags":{ "shape":"TagMap", @@ -1542,13 +1546,13 @@ "members":{ "workspaceId":{ "shape":"Id", - "documentation":"

The workspace Id.

", + "documentation":"

The workspace ID.

", "location":"uri", "locationName":"workspaceId" }, "syncSource":{ "shape":"SyncSource", - "documentation":"

The sync source.

Currently the only supported syncSoucre is SITEWISE .

", + "documentation":"

The sync source.

Currently the only supported syncSource is SITEWISE .

", "location":"uri", "locationName":"syncSource" } @@ -1835,6 +1839,13 @@ "key":{"shape":"Name"}, "value":{"shape":"FunctionResponse"} }, + "GeneratedSceneMetadataMap":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"SceneMetadataValue"}, + "max":50, + "min":0 + }, "GetComponentTypeRequest":{ "type":"structure", "required":[ @@ -1924,7 +1935,7 @@ }, "syncSource":{ "shape":"SyncSource", - "documentation":"

The syncSource of the sync job, if this entity was created by a sync job.

" + "documentation":"

The syncSource of the SyncJob, if this entity was created by a SyncJob.

" }, "componentTypeName":{ "shape":"ComponentTypeName", @@ -2248,6 +2259,14 @@ "capabilities":{ "shape":"SceneCapabilities", "documentation":"

A list of capabilities that the scene uses to render.

" + }, + "sceneMetadata":{ + "shape":"SceneMetadataMap", + "documentation":"

The response metadata.

" + }, + "generatedSceneMetadata":{ + "shape":"GeneratedSceneMetadataMap", + "documentation":"

The generated scene metadata.

" } } }, @@ -2257,13 +2276,13 @@ "members":{ "syncSource":{ "shape":"SyncSource", - "documentation":"

The sync soucre.

Currently the only supported syncSoucre is SITEWISE .

", + "documentation":"

The sync source.

Currently the only supported syncSource is SITEWISE .

", "location":"uri", "locationName":"syncSource" }, "workspaceId":{ "shape":"Id", - "documentation":"

The workspace Id.

", + "documentation":"

The workspace ID.

", "location":"querystring", "locationName":"workspace" } @@ -2291,7 +2310,7 @@ }, "syncSource":{ "shape":"SyncSource", - "documentation":"

The sync soucre.

Currently the only supported syncSoucre is SITEWISE .

" + "documentation":"

The sync soucre.

Currently the only supported syncSource is SITEWISE .

" }, "syncRole":{ "shape":"RoleArn", @@ -2646,13 +2665,13 @@ }, "syncSource":{ "shape":"SyncSource", - "documentation":"

The sync soucre.

Currently the only supported syncSoucre is SITEWISE .

", + "documentation":"

The sync source.

Currently the only supported syncSource is SITEWISE .

", "location":"uri", "locationName":"syncSource" }, "filters":{ "shape":"SyncResourceFilters", - "documentation":"

A list of objects that filter the request.

" + "documentation":"

A list of objects that filter the request.

The following filter combinations are supported:

  • Filter with state

  • Filter with ResourceType and ResourceId

  • Filter with ResourceType and ExternalId

" }, "maxResults":{ "shape":"MaxResults", @@ -2864,7 +2883,7 @@ }, "updateReason":{ "shape":"UpdateReason", - "documentation":"

The update reason, for changing a pricing plan.

" + "documentation":"

The update reason for changing a pricing plan.

" } }, "documentation":"

The pricing plan.

" @@ -3077,7 +3096,7 @@ "members":{ "propertyReference":{ "shape":"EntityPropertyReference", - "documentation":"

An object that specifies information about a property.>

" + "documentation":"

An object that specifies information about a property.

" }, "propertyValue":{ "shape":"DataValue", @@ -3334,6 +3353,19 @@ "min":0, "pattern":".*" }, + "SceneMetadataMap":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"SceneMetadataValue"}, + "max":50, + "min":0 + }, + "SceneMetadataValue":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*" + }, "SceneSummaries":{ "type":"list", "member":{"shape":"SceneSummary"} @@ -3497,15 +3529,15 @@ }, "resourceType":{ "shape":"SyncResourceType", - "documentation":"

The sync resource filter resoucre type

" + "documentation":"

The sync resource filter resource type

" }, "resourceId":{ "shape":"Id", - "documentation":"

The sync resource filter resource Id.

" + "documentation":"

The sync resource filter resource ID.

" }, "externalId":{ "shape":"Id", - "documentation":"

The external Id.

" + "documentation":"

The external ID.

" } }, "documentation":"

The sync resource filter.

", @@ -3552,11 +3584,11 @@ }, "externalId":{ "shape":"Id", - "documentation":"

The external Id.

" + "documentation":"

The external ID.

" }, "resourceId":{ "shape":"Id", - "documentation":"

The resource Id.

" + "documentation":"

The resource ID.

" }, "status":{ "shape":"SyncResourceStatus", @@ -3769,7 +3801,7 @@ }, "propertyGroups":{ "shape":"PropertyGroupsRequest", - "documentation":"

The property groups

" + "documentation":"

The property groups.

" }, "componentTypeName":{ "shape":"ComponentTypeName", @@ -3926,6 +3958,10 @@ "capabilities":{ "shape":"SceneCapabilities", "documentation":"

A list of capabilities that the scene uses to render.

" + }, + "sceneMetadata":{ + "shape":"SceneMetadataMap", + "documentation":"

The scene metadata.

" } } }, @@ -4026,5 +4062,5 @@ "documentation":"

An object that contains information about a workspace.

" } }, - "documentation":"

IoT TwinMaker is a service that enables you to build operational digital twins of physical systems. IoT TwinMaker overlays measurements and analysis from real-world sensors, cameras, and enterprise applications so you can create data visualizations to monitor your physical factory, building, or industrial plant. You can use this real-world data to monitor operations and diagnose and repair errors.

" + "documentation":"

IoT TwinMaker is a service with which you can build operational digital twins of physical systems. IoT TwinMaker overlays measurements and analysis from real-world sensors, cameras, and enterprise applications so you can create data visualizations to monitor your physical factory, building, or industrial plant. You can use this real-world data to monitor operations and diagnose and repair errors.

" } diff --git a/services/iotwireless/pom.xml b/services/iotwireless/pom.xml index 56869d1921ae..712a2fc466bd 100644 --- a/services/iotwireless/pom.xml +++ b/services/iotwireless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT iotwireless AWS Java SDK :: Services :: IoT Wireless diff --git a/services/iotwireless/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/iotwireless/src/main/resources/codegen-resources/endpoint-rule-set.json index 6b197b9a2e2d..013293bc815f 100644 --- a/services/iotwireless/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/iotwireless/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotwireless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotwireless-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.iotwireless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotwireless.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://api.iotwireless-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://api.iotwireless.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.iotwireless.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://api.iotwireless.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/iotwireless/src/main/resources/codegen-resources/endpoint-tests.json b/services/iotwireless/src/main/resources/codegen-resources/endpoint-tests.json index 294f80d71157..a84cdd7cfdc4 100644 --- a/services/iotwireless/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/iotwireless/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,198 +1,55 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.ca-central-1.amazonaws.com" + "url": "https://api.iotwireless.ap-northeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.eu-central-1.amazonaws.com" + "url": "https://api.iotwireless.ap-southeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.eu-central-1.amazonaws.com" + "url": "https://api.iotwireless.eu-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true + "Region": "eu-west-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.us-west-2.amazonaws.com" + "url": "https://api.iotwireless.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false + "Region": "us-east-1" } }, { @@ -203,334 +60,274 @@ } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true + "Region": "us-west-2" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.eu-west-1.api.aws" + "url": "https://api.iotwireless-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.eu-west-1.amazonaws.com" + "url": "https://api.iotwireless-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.ap-northeast-1.api.aws" + "url": "https://api.iotwireless.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.ap-northeast-1.api.aws" + "url": "https://api.iotwireless-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.ap-northeast-1.amazonaws.com" + "url": "https://api.iotwireless-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.sa-east-1.api.aws" + "url": "https://api.iotwireless.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.sa-east-1.amazonaws.com" + "url": "https://api.iotwireless.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.sa-east-1.api.aws" + "url": "https://api.iotwireless-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.sa-east-1.amazonaws.com" + "url": "https://api.iotwireless-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.ap-southeast-1.api.aws" + "url": "https://api.iotwireless.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.ap-southeast-1.amazonaws.com" + "url": "https://api.iotwireless.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.iotwireless.ap-southeast-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.ap-southeast-1.amazonaws.com" + "url": "https://api.iotwireless-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.ap-southeast-2.amazonaws.com" + "url": "https://api.iotwireless.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.iotwireless.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.ap-southeast-2.amazonaws.com" + "url": "https://api.iotwireless-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://api.iotwireless-fips.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless-fips.us-east-1.amazonaws.com" + "url": "https://api.iotwireless.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://api.iotwireless.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://api.iotwireless.us-east-1.amazonaws.com" + "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -540,9 +337,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -552,11 +349,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/iotwireless/src/main/resources/codegen-resources/service-2.json b/services/iotwireless/src/main/resources/codegen-resources/service-2.json index 80d3031602a4..3108bb6f6a0b 100644 --- a/services/iotwireless/src/main/resources/codegen-resources/service-2.json +++ b/services/iotwireless/src/main/resources/codegen-resources/service-2.json @@ -497,6 +497,25 @@ ], "documentation":"

Deletes a wireless device.

" }, + "DeleteWirelessDeviceImportTask":{ + "name":"DeleteWirelessDeviceImportTask", + "http":{ + "method":"DELETE", + "requestUri":"/wireless_device_import_task/{Id}", + "responseCode":204 + }, + "input":{"shape":"DeleteWirelessDeviceImportTaskRequest"}, + "output":{"shape":"DeleteWirelessDeviceImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Delete an import task.

" + }, "DeleteWirelessGateway":{ "name":"DeleteWirelessGateway", "http":{ @@ -551,6 +570,22 @@ ], "documentation":"

Deletes a wireless gateway task definition. Deleting this task definition does not affect tasks that are currently in progress.

" }, + "DeregisterWirelessDevice":{ + "name":"DeregisterWirelessDevice", + "http":{ + "method":"PATCH", + "requestUri":"/wireless-devices/{Identifier}/deregister" + }, + "input":{"shape":"DeregisterWirelessDeviceRequest"}, + "output":{"shape":"DeregisterWirelessDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deregister a wireless device from AWS IoT Wireless.

" + }, "DisassociateAwsAccountFromPartnerAccount":{ "name":"DisassociateAwsAccountFromPartnerAccount", "http":{ @@ -937,7 +972,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get the position information for a given wireless device or a wireless gateway resource. The postion information uses the World Geodetic System (WGS84).

" + "documentation":"

Get the position information for a given wireless device or a wireless gateway resource. The position information uses the World Geodetic System (WGS84).

" }, "GetServiceEndpoint":{ "name":"GetServiceEndpoint", @@ -989,6 +1024,24 @@ ], "documentation":"

Gets information about a wireless device.

" }, + "GetWirelessDeviceImportTask":{ + "name":"GetWirelessDeviceImportTask", + "http":{ + "method":"GET", + "requestUri":"/wireless_device_import_task/{Id}" + }, + "input":{"shape":"GetWirelessDeviceImportTaskRequest"}, + "output":{"shape":"GetWirelessDeviceImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Get information about an import task and count of device onboarding summary information for the import task.

" + }, "GetWirelessDeviceStatistics":{ "name":"GetWirelessDeviceStatistics", "http":{ @@ -1142,6 +1195,24 @@ ], "documentation":"

Lists the device profiles registered to your AWS account.

" }, + "ListDevicesForWirelessDeviceImportTask":{ + "name":"ListDevicesForWirelessDeviceImportTask", + "http":{ + "method":"GET", + "requestUri":"/wireless_device_import_task" + }, + "input":{"shape":"ListDevicesForWirelessDeviceImportTaskRequest"}, + "output":{"shape":"ListDevicesForWirelessDeviceImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

List the Sidewalk devices in an import task and their onboarding status.

" + }, "ListEventConfigurations":{ "name":"ListEventConfigurations", "http":{ @@ -1308,6 +1379,24 @@ ], "documentation":"

Lists the tags (metadata) you have assigned to the resource.

" }, + "ListWirelessDeviceImportTasks":{ + "name":"ListWirelessDeviceImportTasks", + "http":{ + "method":"GET", + "requestUri":"/wireless_device_import_tasks" + }, + "input":{"shape":"ListWirelessDeviceImportTasksRequest"}, + "output":{"shape":"ListWirelessDeviceImportTasksResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

List wireless devices that have been added to an import task.

" + }, "ListWirelessDevices":{ "name":"ListWirelessDevices", "http":{ @@ -1540,6 +1629,44 @@ ], "documentation":"

Starts a multicast group session.

" }, + "StartSingleWirelessDeviceImportTask":{ + "name":"StartSingleWirelessDeviceImportTask", + "http":{ + "method":"POST", + "requestUri":"/wireless_single_device_import_task", + "responseCode":201 + }, + "input":{"shape":"StartSingleWirelessDeviceImportTaskRequest"}, + "output":{"shape":"StartSingleWirelessDeviceImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Start import task for a single wireless device.

" + }, + "StartWirelessDeviceImportTask":{ + "name":"StartWirelessDeviceImportTask", + "http":{ + "method":"POST", + "requestUri":"/wireless_device_import_task", + "responseCode":201 + }, + "input":{"shape":"StartWirelessDeviceImportTaskRequest"}, + "output":{"shape":"StartWirelessDeviceImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Start import task for provisioning Sidewalk devices in bulk using an S3 CSV file.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -1776,7 +1903,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Update the position information of a given wireless device or a wireless gateway resource. The postion coordinates are based on the World Geodetic System (WGS84).

" + "documentation":"

Update the position information of a given wireless device or a wireless gateway resource. The position coordinates are based on the World Geodetic System (WGS84).

" }, "UpdateWirelessDevice":{ "name":"UpdateWirelessDevice", @@ -1796,6 +1923,25 @@ ], "documentation":"

Updates properties of a wireless device.

" }, + "UpdateWirelessDeviceImportTask":{ + "name":"UpdateWirelessDeviceImportTask", + "http":{ + "method":"PATCH", + "requestUri":"/wireless_device_import_task/{Id}", + "responseCode":204 + }, + "input":{"shape":"UpdateWirelessDeviceImportTaskRequest"}, + "output":{"shape":"UpdateWirelessDeviceImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Update an import task to add more devices to the task.

" + }, "UpdateWirelessGateway":{ "name":"UpdateWirelessGateway", "http":{ @@ -1892,6 +2038,10 @@ "max":1011, "min":1 }, + "ApId":{ + "type":"string", + "max":256 + }, "AppEui":{ "type":"string", "pattern":"[a-fA-F0-9]{16}" @@ -1930,6 +2080,13 @@ "type":"string", "enum":["SemtechGeolocation"] }, + "ApplicationServerPublicKey":{ + "type":"string", + "max":4096, + "min":1, + "pattern":"[a-fA-F0-9]{64}", + "sensitive":true + }, "Applications":{ "type":"list", "member":{"shape":"ApplicationConfig"} @@ -2289,7 +2446,7 @@ }, "BaseLng":{ "shape":"BaseLng", - "documentation":"

CDMA base station longtitude in degrees.

" + "documentation":"

CDMA base station longitude in degrees.

" }, "CdmaNmr":{ "shape":"CdmaNmrList", @@ -2506,6 +2663,10 @@ "shape":"ClientRequestToken", "documentation":"

Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.

", "idempotencyToken":true + }, + "Sidewalk":{ + "shape":"SidewalkCreateDeviceProfile", + "documentation":"

The Sidewalk-related information for creating the Sidewalk device profile.

" } } }, @@ -2538,7 +2699,10 @@ "LoRaWAN":{"shape":"LoRaWANFuotaTask"}, "FirmwareUpdateImage":{"shape":"FirmwareUpdateImage"}, "FirmwareUpdateRole":{"shape":"FirmwareUpdateRole"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "RedundancyPercent":{"shape":"RedundancyPercent"}, + "FragmentSizeBytes":{"shape":"FragmentSizeBytes"}, + "FragmentIntervalMS":{"shape":"FragmentIntervalMS"} } }, "CreateFuotaTaskResponse":{ @@ -2679,6 +2843,10 @@ "Positioning":{ "shape":"PositioningConfigStatus", "documentation":"

FPort values for the GNSS, stream, and ClockSync functions of the positioning information.

" + }, + "Sidewalk":{ + "shape":"SidewalkCreateWirelessDevice", + "documentation":"

The device configuration information to use to create the Sidewalk device.

" } } }, @@ -2812,6 +2980,45 @@ "documentation":"

Created at timestamp for the resource.

" }, "CreationDate":{"type":"timestamp"}, + "CreationTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "DakCertificateId":{ + "type":"string", + "max":256 + }, + "DakCertificateMetadata":{ + "type":"structure", + "required":["CertificateId"], + "members":{ + "CertificateId":{ + "shape":"DakCertificateId", + "documentation":"

The certificate ID for the DAK.

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

The maximum number of signatures that the DAK can sign. A value of -1 indicates that there's no device limit.

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

Whether factory support has been enabled.

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

The advertised product ID (APID) that's used for pre-production and production applications.

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

The device type ID that's used for prototyping applications.

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

The device attestation key (DAK) information.

" + }, + "DakCertificateMetadataList":{ + "type":"list", + "member":{"shape":"DakCertificateMetadata"} + }, "DeleteDestinationRequest":{ "type":"structure", "required":["Name"], @@ -2943,6 +3150,23 @@ "members":{ } }, + "DeleteWirelessDeviceImportTaskRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The unique identifier of the import task to be deleted.

", + "location":"uri", + "locationName":"Id" + } + } + }, + "DeleteWirelessDeviceImportTaskResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteWirelessDeviceRequest":{ "type":"structure", "required":["Id"], @@ -3011,6 +3235,29 @@ "members":{ } }, + "DeregisterWirelessDeviceRequest":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"Identifier", + "documentation":"

The identifier of the wireless device to deregister from AWS IoT Wireless.

", + "location":"uri", + "locationName":"Identifier" + }, + "WirelessDeviceType":{ + "shape":"WirelessDeviceType", + "documentation":"

The type of wireless device to deregister from AWS IoT Wireless, which can be LoRaWAN or Sidewalk.

", + "location":"querystring", + "locationName":"WirelessDeviceType" + } + } + }, + "DeregisterWirelessDeviceResponse":{ + "type":"structure", + "members":{ + } + }, "Description":{ "type":"string", "documentation":"

The description of the new resource.

", @@ -3074,6 +3321,15 @@ "member":{"shape":"CertificateList"}, "documentation":"

List of device certificate chain.

" }, + "DeviceCreationFile":{ + "type":"string", + "max":1024 + }, + "DeviceCreationFileList":{ + "type":"list", + "member":{"shape":"DeviceCreationFile"} + }, + "DeviceName":{"type":"string"}, "DeviceProfile":{ "type":"structure", "members":{ @@ -3105,6 +3361,13 @@ "type":"string", "max":256 }, + "DeviceProfileType":{ + "type":"string", + "enum":[ + "Sidewalk", + "LoRaWAN" + ] + }, "DeviceRegistrationStateEventConfiguration":{ "type":"structure", "members":{ @@ -3139,6 +3402,10 @@ "RegisteredUnreachable" ] }, + "DeviceTypeId":{ + "type":"string", + "max":2048 + }, "DisassociateAwsAccountFromPartnerAccountRequest":{ "type":"structure", "required":[ @@ -3524,6 +3791,7 @@ "max":20, "min":0 }, + "FactorySupport":{"type":"boolean"}, "Fingerprint":{ "type":"string", "max":64, @@ -3543,6 +3811,16 @@ "max":2048, "min":1 }, + "FragmentIntervalMS":{ + "type":"integer", + "documentation":"

The interval of sending fragments in milliseconds. Currently the interval will be rounded to the nearest second. Note that this interval only controls the timing when the cloud sends the fragments down. The actual delay of receiving fragments at device side depends on the device's class and the communication delay with the cloud.

", + "min":1 + }, + "FragmentSizeBytes":{ + "type":"integer", + "documentation":"

The size of each fragment in bytes. Currently only supported in fuota tasks with multicast groups.

", + "min":1 + }, "FuotaDeviceStatus":{ "type":"string", "documentation":"

The status of a wireless device in a FUOTA task.

", @@ -3708,6 +3986,10 @@ "LoRaWAN":{ "shape":"LoRaWANDeviceProfile", "documentation":"

Information about the device profile.

" + }, + "Sidewalk":{ + "shape":"SidewalkGetDeviceProfile", + "documentation":"

Information about the Sidewalk parameters in the device profile.

" } } }, @@ -3763,7 +4045,10 @@ "LoRaWAN":{"shape":"LoRaWANFuotaTaskGetInfo"}, "FirmwareUpdateImage":{"shape":"FirmwareUpdateImage"}, "FirmwareUpdateRole":{"shape":"FirmwareUpdateRole"}, - "CreatedAt":{"shape":"CreatedAt"} + "CreatedAt":{"shape":"CreatedAt"}, + "RedundancyPercent":{"shape":"RedundancyPercent"}, + "FragmentSizeBytes":{"shape":"FragmentSizeBytes"}, + "FragmentIntervalMS":{"shape":"FragmentIntervalMS"} } }, "GetLogLevelsByResourceTypesRequest":{ @@ -3943,7 +4228,7 @@ }, "Timestamp":{ "shape":"CreationDate", - "documentation":"

Optional information that specifies the time when the position information will be resolved. It uses the UNIX timestamp format. If not specified, the time at which the request was received will be used.

" + "documentation":"

Optional information that specifies the time when the position information will be resolved. It uses the Unix timestamp format. If not specified, the time at which the request was received will be used.

" } } }, @@ -4098,7 +4383,7 @@ "members":{ "ResourceIdentifier":{ "shape":"PositionResourceIdentifier", - "documentation":"

The identifier of the resource for which position information is retrieved. It can be the wireless device ID or the wireless gateway ID depending on the resource type.

", + "documentation":"

The identifier of the resource for which position information is retrieved. It can be the wireless device ID or the wireless gateway ID, depending on the resource type.

", "location":"uri", "locationName":"ResourceIdentifier" }, @@ -4181,6 +4466,67 @@ } } }, + "GetWirelessDeviceImportTaskRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The identifier of the import task for which information is requested.

", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetWirelessDeviceImportTaskResponse":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The identifier of the import task for which information is retrieved.

" + }, + "Arn":{ + "shape":"ImportTaskArn", + "documentation":"

The ARN (Amazon Resource Name) of the import task.

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

The name of the destination that's assigned to the wireless devices in the import task.

" + }, + "Sidewalk":{ + "shape":"SidewalkGetStartImportInfo", + "documentation":"

The Sidewalk-related information about an import task.

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

The time at which the import task was created.

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

The import task status.

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

The reason for the provided status information, such as a validation error that causes the import task to fail.

" + }, + "InitializedImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The number of devices in the import task that are waiting for the control log to start processing.

" + }, + "PendingImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The number of devices in the import task that are waiting in the import task queue to be onboarded.

" + }, + "OnboardedImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The number of devices in the import task that have been onboarded to the import task.

" + }, + "FailedImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The number of devices in the import task that failed to onboard to the import task.

" + } + } + }, "GetWirelessDeviceRequest":{ "type":"structure", "required":[ @@ -4519,7 +4865,7 @@ }, "AssistPosition":{ "shape":"AssistPosition", - "documentation":"

Optional assistance position information, specified using latitude and longitude values in degrees. The co-ordinates are inside the WGS84 reference frame.

" + "documentation":"

Optional assistance position information, specified using latitude and longitude values in degrees. The coordinates are inside the WGS84 reference frame.

" }, "AssistAltitude":{ "shape":"Coordinate", @@ -4665,6 +5011,62 @@ "WirelessGatewayId" ] }, + "ImportTaskArn":{ + "type":"string", + "max":128 + }, + "ImportTaskId":{ + "type":"string", + "max":256 + }, + "ImportTaskStatus":{ + "type":"string", + "enum":[ + "INITIALIZING", + "INITIALIZED", + "PENDING", + "COMPLETE", + "FAILED", + "DELETING" + ] + }, + "ImportedSidewalkDevice":{ + "type":"structure", + "members":{ + "SidewalkManufacturingSn":{ + "shape":"SidewalkManufacturingSn", + "documentation":"

The Sidewalk manufacturing serial number (SMSN) of the Sidewalk device.

" + }, + "OnboardingStatus":{ + "shape":"OnboardStatus", + "documentation":"

The onboarding status of the Sidewalk device in the import task.

" + }, + "OnboardingStatusReason":{ + "shape":"OnboardStatusReason", + "documentation":"

The reason for the onboarding status information for the Sidewalk device.

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

The time at which the status information was last updated.

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

Information about a Sidewalk device that has been added to an import task.

" + }, + "ImportedWirelessDevice":{ + "type":"structure", + "members":{ + "Sidewalk":{ + "shape":"ImportedSidewalkDevice", + "documentation":"

The Sidewalk-related information about a device that has been added to an import task.

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

Information about a wireless device that has been added to an import task.

" + }, + "ImportedWirelessDeviceCount":{"type":"long"}, + "ImportedWirelessDeviceList":{ + "type":"list", + "member":{"shape":"ImportedWirelessDevice"} + }, "Integer":{"type":"integer"}, "InternalServerException":{ "type":"structure", @@ -4738,6 +5140,10 @@ "max":65535, "min":1 }, + "LastUpdateTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, "ListDestinationsRequest":{ "type":"structure", "members":{ @@ -4782,6 +5188,12 @@ "documentation":"

The maximum number of results to return in this operation.

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

A filter to list only device profiles that use this type, which can be LoRaWAN or Sidewalk.

", + "location":"querystring", + "locationName":"deviceProfileType" } } }, @@ -4798,6 +5210,52 @@ } } }, + "ListDevicesForWirelessDeviceImportTaskRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The identifier of the import task for which wireless devices are listed.

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

To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "Status":{ + "shape":"OnboardStatus", + "documentation":"

The status of the devices in the import task.

", + "location":"querystring", + "locationName":"status" + } + } + }, + "ListDevicesForWirelessDeviceImportTaskResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to get the next set of results, or null if there are no additional results.

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

The name of the Sidewalk destination that describes the IoT rule to route messages received from devices in an import task that are onboarded to AWS IoT Wireless.

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

List of wireless devices in an import task and their onboarding status.

" + } + } + }, "ListEventConfigurationsRequest":{ "type":"structure", "required":["ResourceType"], @@ -5110,6 +5568,35 @@ } } }, + "ListWirelessDeviceImportTasksRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListWirelessDeviceImportTasksResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to get the next set of results, or null if there are no additional results.

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

List of import tasks and summary information of onboarding status of devices in each import task.

" + } + } + }, "ListWirelessDevicesRequest":{ "type":"structure", "members":{ @@ -5884,6 +6371,7 @@ "type":"string", "max":64 }, + "MaxAllowedSignature":{"type":"integer"}, "MaxDutyCycle":{ "type":"integer", "max":100, @@ -6080,6 +6568,16 @@ "type":"string", "pattern":"[a-fA-F0-9]{32}" }, + "OnboardStatus":{ + "type":"string", + "enum":[ + "INITIALIZED", + "PENDING", + "ONBOARDED", + "FAILED" + ] + }, + "OnboardStatusReason":{"type":"string"}, "OtaaV1_0_x":{ "type":"structure", "members":{ @@ -6310,6 +6808,10 @@ "max":16700000, "min":1000000 }, + "PrivateKeysList":{ + "type":"list", + "member":{"shape":"CertificateList"} + }, "ProximityEventConfiguration":{ "type":"structure", "members":{ @@ -6399,6 +6901,7 @@ "members":{ } }, + "QualificationStatus":{"type":"boolean"}, "QueryString":{ "type":"string", "documentation":"

Query string used to search for wireless devices as part of the bulk associate and disassociate process.

", @@ -6425,6 +6928,12 @@ "min":-128 }, "RaAllowed":{"type":"boolean"}, + "RedundancyPercent":{ + "type":"integer", + "documentation":"

The percentage of added redundant fragments. For example, if firmware file is 100 bytes and fragment size is 10 bytes, with RedundancyPercent set to 50(%), the final number of encoded fragments is (100 / 10) + (100 / 10 * 50%) = 15.

", + "max":100, + "min":0 + }, "RegParamsRevision":{ "type":"string", "max":64 @@ -6504,6 +7013,10 @@ "documentation":"

The frequency band (RFRegion) value.

", "max":64 }, + "Role":{ + "type":"string", + "max":2048 + }, "RoleArn":{ "type":"string", "max":2048, @@ -6754,6 +7267,22 @@ "type":"list", "member":{"shape":"SidewalkAccountInfoWithFingerprint"} }, + "SidewalkCreateDeviceProfile":{ + "type":"structure", + "members":{ + }, + "documentation":"

Sidewalk object for creating a device profile.

" + }, + "SidewalkCreateWirelessDevice":{ + "type":"structure", + "members":{ + "DeviceProfileId":{ + "shape":"DeviceProfileId", + "documentation":"

The ID of the Sidewalk device profile.

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

Sidewalk object for creating a wireless device.

" + }, "SidewalkDevice":{ "type":"structure", "members":{ @@ -6769,6 +7298,22 @@ "DeviceCertificates":{ "shape":"DeviceCertificateList", "documentation":"

The sidewalk device certificates for Ed25519 and P256r1.

" + }, + "PrivateKeys":{ + "shape":"PrivateKeysList", + "documentation":"

The Sidewalk device private keys that will be used for onboarding the device.

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

The ID of the Sidewalk device profile.

" + }, + "CertificateId":{ + "shape":"DakCertificateId", + "documentation":"

The ID of the Sidewalk device profile.

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

The Sidewalk device status, such as provisioned or registered.

" } }, "documentation":"

Sidewalk device object.

" @@ -6805,6 +7350,38 @@ }, "documentation":"

SidewalkEventNotificationConfigurations object, which is the event configuration object for Sidewalk-related event topics.

" }, + "SidewalkGetDeviceProfile":{ + "type":"structure", + "members":{ + "ApplicationServerPublicKey":{ + "shape":"ApplicationServerPublicKey", + "documentation":"

The Sidewalk application server public key.

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

Gets information about the certification status of a Sidewalk device profile.

" + }, + "DakCertificateMetadata":{ + "shape":"DakCertificateMetadataList", + "documentation":"

The DAK certificate information of the Sidewalk device profile.

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

Gets information about a Sidewalk device profile.

" + }, + "SidewalkGetStartImportInfo":{ + "type":"structure", + "members":{ + "DeviceCreationFileList":{ + "shape":"DeviceCreationFileList", + "documentation":"

List of Sidewalk devices that are added to the import task.

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

The IAM role that allows AWS IoT Wireless to access the CSV file in the S3 bucket.

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

Sidewalk-related information for devices in an import task that are being onboarded.

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

The sidewalk device identification.

", @@ -6828,6 +7405,14 @@ "DeviceCertificates":{ "shape":"DeviceCertificateList", "documentation":"

The sidewalk device certificates for Ed25519 and P256r1.

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

Sidewalk object used by list functions.

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

The status of the Sidewalk devices, such as provisioned or registered.

" } }, "documentation":"

Sidewalk object used by list functions.

" @@ -6861,6 +7446,30 @@ }, "documentation":"

Information about a Sidewalk router.

" }, + "SidewalkSingleStartImportInfo":{ + "type":"structure", + "members":{ + "SidewalkManufacturingSn":{ + "shape":"SidewalkManufacturingSn", + "documentation":"

The Sidewalk manufacturing serial number (SMSN) of the device added to the import task.

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

Information about an import task created for an individual Sidewalk device.

" + }, + "SidewalkStartImportInfo":{ + "type":"structure", + "members":{ + "DeviceCreationFile":{ + "shape":"DeviceCreationFile", + "documentation":"

The CSV file contained in an S3 bucket that's used for adding devices to an import task.

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

The IAM role that allows AWS IoT Wireless to access the CSV file in the S3 bucket.

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

Information about an import task created for bulk provisioning.

" + }, "SidewalkUpdateAccount":{ "type":"structure", "members":{ @@ -6871,6 +7480,16 @@ }, "documentation":"

Sidewalk update.

" }, + "SidewalkUpdateImportInfo":{ + "type":"structure", + "members":{ + "DeviceCreationFile":{ + "shape":"DeviceCreationFile", + "documentation":"

The CSV file contained in an S3 bucket that's used for appending devices to an existing import task.

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

Sidewalk object information for updating an import task.

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

The certificate chain algorithm provided by sidewalk.

", @@ -6952,16 +7571,91 @@ "members":{ } }, + "StartSingleWirelessDeviceImportTaskRequest":{ + "type":"structure", + "required":[ + "DestinationName", + "Sidewalk" + ], + "members":{ + "DestinationName":{ + "shape":"DestinationName", + "documentation":"

The name of the Sidewalk destination that describes the IoT rule to route messages from the device in the import task that will be onboarded to AWS IoT Wireless.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "DeviceName":{ + "shape":"DeviceName", + "documentation":"

The name of the wireless device for which an import task is being started.

" + }, + "Tags":{"shape":"TagList"}, + "Sidewalk":{ + "shape":"SidewalkSingleStartImportInfo", + "documentation":"

The Sidewalk-related parameters for importing a single wireless device.

" + } + } + }, + "StartSingleWirelessDeviceImportTaskResponse":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The import task ID.

" + }, + "Arn":{ + "shape":"ImportTaskArn", + "documentation":"

The ARN (Amazon Resource Name) of the import task.

" + } + } + }, "StartTime":{ "type":"timestamp", "documentation":"

Start time of a FUOTA task.

", "timestampFormat":"iso8601" }, + "StartWirelessDeviceImportTaskRequest":{ + "type":"structure", + "required":[ + "DestinationName", + "Sidewalk" + ], + "members":{ + "DestinationName":{ + "shape":"DestinationName", + "documentation":"

The name of the Sidewalk destination that describes the IoT rule to route messages from the devices in the import task that are onboarded to AWS IoT Wireless.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "Tags":{"shape":"TagList"}, + "Sidewalk":{ + "shape":"SidewalkStartImportInfo", + "documentation":"

The Sidewalk-related parameters for importing wireless devices that need to be provisioned in bulk.

" + } + } + }, + "StartWirelessDeviceImportTaskResponse":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The import task ID.

" + }, + "Arn":{ + "shape":"ImportTaskArn", + "documentation":"

The ARN (Amazon Resource Name) of the import task.

" + } + } + }, "Station":{ "type":"string", "max":4096, "min":1 }, + "StatusReason":{"type":"string"}, "SubBand":{ "type":"integer", "documentation":"

A subset of supported frequency channels in a certain RFRegion.

", @@ -6982,7 +7676,16 @@ "EU868", "US915", "AU915", - "AS923-1" + "AS923-1", + "AS923-2", + "AS923-3", + "AS923-4", + "EU433", + "CN470", + "CN779", + "RU864", + "KR920", + "IN865" ] }, "Supports32BitFCnt":{"type":"boolean"}, @@ -7409,7 +8112,10 @@ "Description":{"shape":"Description"}, "LoRaWAN":{"shape":"LoRaWANFuotaTask"}, "FirmwareUpdateImage":{"shape":"FirmwareUpdateImage"}, - "FirmwareUpdateRole":{"shape":"FirmwareUpdateRole"} + "FirmwareUpdateRole":{"shape":"FirmwareUpdateRole"}, + "RedundancyPercent":{"shape":"RedundancyPercent"}, + "FragmentSizeBytes":{"shape":"FragmentSizeBytes"}, + "FragmentIntervalMS":{"shape":"FragmentIntervalMS"} } }, "UpdateFuotaTaskResponse":{ @@ -7610,7 +8316,7 @@ "members":{ "ResourceIdentifier":{ "shape":"PositionResourceIdentifier", - "documentation":"

The identifier of the resource for which position information is updated. It can be the wireless device ID or the wireless gateway ID depending on the resource type.

", + "documentation":"

The identifier of the resource for which position information is updated. It can be the wireless device ID or the wireless gateway ID, depending on the resource type.

", "location":"uri", "locationName":"ResourceIdentifier" }, @@ -7637,6 +8343,30 @@ "max":4096, "min":1 }, + "UpdateWirelessDeviceImportTaskRequest":{ + "type":"structure", + "required":[ + "Id", + "Sidewalk" + ], + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The identifier of the import task to be updated.

", + "location":"uri", + "locationName":"Id" + }, + "Sidewalk":{ + "shape":"SidewalkUpdateImportInfo", + "documentation":"

The Sidewalk-related parameters of the import task to be updated.

" + } + } + }, + "UpdateWirelessDeviceImportTaskResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateWirelessDeviceRequest":{ "type":"structure", "required":["Id"], @@ -7873,7 +8603,7 @@ }, "Rss":{ "shape":"RSS", - "documentation":"

Recived signal strength of the WLAN measurement data.

" + "documentation":"

Received signal strength (dBm) of the WLAN measurement data.

" } }, "documentation":"

Wi-Fi access point.

" @@ -7933,6 +8663,60 @@ "SidewalkManufacturingSn" ] }, + "WirelessDeviceImportTask":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ImportTaskId", + "documentation":"

The ID of the wireless device import task.

" + }, + "Arn":{ + "shape":"ImportTaskArn", + "documentation":"

The ARN (Amazon Resource Name) of the wireless device import task.

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

The name of the Sidewalk destination that that describes the IoT rule to route messages from the device in the import task that will be onboarded to AWS IoT Wireless

" + }, + "Sidewalk":{ + "shape":"SidewalkGetStartImportInfo", + "documentation":"

The Sidewalk-related information of the wireless device import task.

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

The time at which the import task was created.

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

The status information of the wireless device import task.

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

The reason that provides additional information about the import task status.

" + }, + "InitializedImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The summary information of count of wireless devices that are waiting for the control log to be added to an import task.

" + }, + "PendingImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The summary information of count of wireless devices in an import task that are waiting in the queue to be onboarded.

" + }, + "OnboardedImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The summary information of count of wireless devices in an import task that have been onboarded to the import task.

" + }, + "FailedImportedDeviceCount":{ + "shape":"ImportedWirelessDeviceCount", + "documentation":"

The summary information of count of wireless devices in an import task that failed to onboarded to the import task.

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

Information about an import task for wireless devices.

" + }, + "WirelessDeviceImportTaskList":{ + "type":"list", + "member":{"shape":"WirelessDeviceImportTask"} + }, "WirelessDeviceList":{ "type":"list", "member":{"shape":"WirelessDeviceId"}, @@ -7964,6 +8748,15 @@ "type":"string", "max":256 }, + "WirelessDeviceSidewalkStatus":{ + "type":"string", + "enum":[ + "PROVISIONED", + "REGISTERED", + "ACTIVATED", + "UNKNOWN" + ] + }, "WirelessDeviceStatistics":{ "type":"structure", "members":{ diff --git a/services/ivs/pom.xml b/services/ivs/pom.xml index 45ba1709f283..73ab72edc51b 100644 --- a/services/ivs/pom.xml +++ b/services/ivs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ivs AWS Java SDK :: Services :: Ivs diff --git a/services/ivs/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ivs/src/main/resources/codegen-resources/endpoint-rule-set.json index f3809c7ab7d6..ca8bf0f0e374 100644 --- a/services/ivs/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ivs/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://ivs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://ivs-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://ivs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://ivs.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ivs.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ivs/src/main/resources/codegen-resources/endpoint-tests.json b/services/ivs/src/main/resources/codegen-resources/endpoint-tests.json index b2464e358c3a..893c2009eed2 100644 --- a/services/ivs/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ivs/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,263 +1,296 @@ { "testCases": [ { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://ivs.ap-northeast-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs-fips.cn-north-1.amazonaws.com.cn" + "url": "https://ivs.ap-northeast-2.amazonaws.com" } }, "params": { - "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true + "Region": "ap-northeast-2" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://ivs.ap-south-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs.cn-north-1.amazonaws.com.cn" + "url": "https://ivs.eu-central-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "eu-central-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://ivs.eu-west-1.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true + "Region": "eu-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs.us-iso-east-1.c2s.ic.gov" + "url": "https://ivs.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs.eu-west-1.amazonaws.com" + "url": "https://ivs.us-west-2.amazonaws.com" } }, "params": { - "Region": "eu-west-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-west-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivs.eu-central-1.amazonaws.com" + "url": "https://ivs-fips.us-east-1.api.aws" } }, "params": { - "Region": "eu-central-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs.ap-northeast-1.amazonaws.com" + "url": "https://ivs-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivs.ap-south-1.amazonaws.com" + "url": "https://ivs.us-east-1.api.aws" } }, "params": { - "Region": "ap-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivs.ap-northeast-2.amazonaws.com" + "url": "https://ivs-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "ap-northeast-2", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs.us-east-1.amazonaws.com" + "url": "https://ivs-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivs.us-west-2.amazonaws.com" + "url": "https://ivs.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-west-2", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivs-fips.us-east-1.api.aws" + "url": "https://ivs-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs-fips.us-east-1.amazonaws.com" + "url": "https://ivs-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivs.us-east-1.api.aws" + "url": "https://ivs.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs-fips.us-gov-east-1.api.aws" + "url": "https://ivs.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs-fips.us-gov-east-1.amazonaws.com" + "url": "https://ivs-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://ivs.us-gov-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivs.us-gov-east-1.amazonaws.com" + "url": "https://ivs.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { @@ -268,9 +301,20 @@ } }, "params": { - "Region": "us-isob-east-1", + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": true + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { @@ -281,22 +325,35 @@ } }, "params": { - "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -306,9 +363,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -318,11 +375,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/ivs/src/main/resources/codegen-resources/service-2.json b/services/ivs/src/main/resources/codegen-resources/service-2.json index dca4c28cb7f8..0f305c5fb55d 100644 --- a/services/ivs/src/main/resources/codegen-resources/service-2.json +++ b/services/ivs/src/main/resources/codegen-resources/service-2.json @@ -105,7 +105,7 @@ {"shape":"PendingVerification"}, {"shape":"ConflictException"} ], - "documentation":"

Deletes the specified channel and its associated stream keys.

If you try to delete a live channel, you will get an error (409 ConflictException). To delete a channel that is live, call StopStream, wait for the Amazon EventBridge \"Stream End\" event (to verify that the stream's state was changed from Live to Offline), then call DeleteChannel. (See Using EventBridge with Amazon IVS.)

" + "documentation":"

Deletes the specified channel and its associated stream keys.

If you try to delete a live channel, you will get an error (409 ConflictException). To delete a channel that is live, call StopStream, wait for the Amazon EventBridge \"Stream End\" event (to verify that the stream's state is no longer Live), then call DeleteChannel. (See Using EventBridge with Amazon IVS.)

" }, "DeletePlaybackKeyPair":{ "name":"DeletePlaybackKeyPair", @@ -592,6 +592,10 @@ "shape":"IngestEndpoint", "documentation":"

Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.

" }, + "insecureIngest":{ + "shape":"InsecureIngest", + "documentation":"

Whether the channel allows insecure RTMP ingest. Default: false.

" + }, "latencyMode":{ "shape":"ChannelLatencyMode", "documentation":"

Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

" @@ -680,6 +684,10 @@ "shape":"IsAuthorized", "documentation":"

Whether the channel is private (enabled for playback authorization). Default: false.

" }, + "insecureIngest":{ + "shape":"InsecureIngest", + "documentation":"

Whether the channel allows insecure RTMP ingest. Default: false.

" + }, "latencyMode":{ "shape":"ChannelLatencyMode", "documentation":"

Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

" @@ -732,6 +740,10 @@ "shape":"Boolean", "documentation":"

Whether the channel is private (enabled for playback authorization). Default: false.

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

Whether the channel allows insecure RTMP ingest. Default: false.

" + }, "latencyMode":{ "shape":"ChannelLatencyMode", "documentation":"

Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.) Default: LOW.

" @@ -1040,6 +1052,7 @@ "documentation":"

Object specifying the ingest configuration set up by the broadcaster, usually in an encoder.

" }, "IngestEndpoint":{"type":"string"}, + "InsecureIngest":{"type":"boolean"}, "Integer":{"type":"long"}, "InternalServerException":{ "type":"structure", @@ -1578,7 +1591,7 @@ }, "state":{ "shape":"StreamState", - "documentation":"

The stream’s state.

" + "documentation":"

The stream’s state. Do not rely on the OFFLINE state, as the API may not return it; instead, a \"NotBroadcasting\" error will indicate that the stream is not live.

" }, "streamId":{ "shape":"StreamId", @@ -1800,7 +1813,7 @@ }, "state":{ "shape":"StreamState", - "documentation":"

The stream’s state.

" + "documentation":"

The stream’s state. Do not rely on the OFFLINE state, as the API may not return it; instead, a \"NotBroadcasting\" error will indicate that the stream is not live.

" }, "streamId":{ "shape":"StreamId", @@ -1878,7 +1891,7 @@ "TargetIntervalSeconds":{ "type":"long", "max":60, - "min":5 + "min":1 }, "ThrottlingException":{ "type":"structure", @@ -1951,6 +1964,10 @@ "shape":"Boolean", "documentation":"

Whether the channel is private (enabled for playback authorization).

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

Whether the channel allows insecure RTMP ingest. Default: false.

" + }, "latencyMode":{ "shape":"ChannelLatencyMode", "documentation":"

Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

" @@ -2031,5 +2048,5 @@ "errorCode":{"type":"string"}, "errorMessage":{"type":"string"} }, - "documentation":"

Introduction

The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.

The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.

All API request parameters and URLs are case sensitive.

For a summary of notable documentation changes in each release, see Document History.

Allowed Header Values

  • Accept: application/json

  • Accept-Encoding: gzip, deflate

  • Content-Type: application/json

Resources

The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):

  • Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.

  • Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.

  • Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.

  • Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.

Tagging

A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.

At most 50 tags can be applied to a resource.

Authentication versus Authorization

Note the differences between these concepts:

  • Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.

  • Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS API requests. In addition, authorization is needed to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")

Authentication

All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.

You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from an IAM user account that has the ivs:PutMetadata permission.

For more information:

Amazon Resource Names (ARNs)

ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.

Channel Endpoints

  • CreateChannel — Creates a new channel and an associated stream key to start streaming.

  • GetChannel — Gets the channel configuration for the specified channel ARN.

  • BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.

  • ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).

  • UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

  • DeleteChannel — Deletes the specified channel.

StreamKey Endpoints

  • CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.

  • GetStreamKey — Gets stream key information for the specified ARN.

  • BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.

  • ListStreamKeys — Gets summary information about stream keys for the specified channel.

  • DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.

Stream Endpoints

  • GetStream — Gets information about the active (live) stream on a specified channel.

  • GetStreamSession — Gets metadata on a specified stream.

  • ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.

  • ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.

  • StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.

  • PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.

PlaybackKeyPair Endpoints

For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

  • ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn and fingerprint. The privateKey can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).

  • GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn and fingerprint. The privateKey held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.

  • ListPlaybackKeyPairs — Gets summary information about playback key pairs.

  • DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey.

RecordingConfiguration Endpoints

Amazon Web Services Tags Endpoints

  • TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.

  • UntagResource — Removes tags from the resource with the specified ARN.

  • ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.

" + "documentation":"

Introduction

The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.

The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.

All API request parameters and URLs are case sensitive.

For a summary of notable documentation changes in each release, see Document History.

Allowed Header Values

  • Accept: application/json

  • Accept-Encoding: gzip, deflate

  • Content-Type: application/json

Resources

The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):

  • Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.

  • Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.

  • Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.

  • Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.

Tagging

A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.

At most 50 tags can be applied to a resource.

Authentication versus Authorization

Note the differences between these concepts:

  • Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.

  • Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS API requests. In addition, authorization is needed to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")

Authentication

All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.

You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from a user account that has the ivs:PutMetadata permission.

For more information:

Amazon Resource Names (ARNs)

ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.

Channel Endpoints

  • CreateChannel — Creates a new channel and an associated stream key to start streaming.

  • GetChannel — Gets the channel configuration for the specified channel ARN.

  • BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.

  • ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).

  • UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

  • DeleteChannel — Deletes the specified channel.

StreamKey Endpoints

  • CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.

  • GetStreamKey — Gets stream key information for the specified ARN.

  • BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.

  • ListStreamKeys — Gets summary information about stream keys for the specified channel.

  • DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.

Stream Endpoints

  • GetStream — Gets information about the active (live) stream on a specified channel.

  • GetStreamSession — Gets metadata on a specified stream.

  • ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.

  • ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.

  • StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.

  • PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.

PlaybackKeyPair Endpoints

For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

  • ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn and fingerprint. The privateKey can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).

  • GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn and fingerprint. The privateKey held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.

  • ListPlaybackKeyPairs — Gets summary information about playback key pairs.

  • DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey.

RecordingConfiguration Endpoints

Amazon Web Services Tags Endpoints

  • TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.

  • UntagResource — Removes tags from the resource with the specified ARN.

  • ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.

" } diff --git a/services/ivschat/pom.xml b/services/ivschat/pom.xml index df01bba0fab1..48e61ba0396e 100644 --- a/services/ivschat/pom.xml +++ b/services/ivschat/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ivschat AWS Java SDK :: Services :: Ivschat diff --git a/services/ivschat/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ivschat/src/main/resources/codegen-resources/endpoint-rule-set.json index 60c836b0ea87..e1fbab6f76bd 100644 --- a/services/ivschat/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ivschat/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivschat-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://ivschat-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivschat-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://ivschat-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivschat.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://ivschat.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://ivschat.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ivschat.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ivschat/src/main/resources/codegen-resources/endpoint-tests.json b/services/ivschat/src/main/resources/codegen-resources/endpoint-tests.json index 41dfdc2ce624..e93946c4a241 100644 --- a/services/ivschat/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ivschat/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,248 +1,261 @@ { "testCases": [ { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://ivschat.eu-west-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.cn-north-1.amazonaws.com.cn" + "url": "https://ivschat.us-east-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://ivschat.us-west-2.amazonaws.com" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": true, + "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivschat.cn-north-1.amazonaws.com.cn" + "url": "https://ivschat-fips.us-east-1.api.aws" } }, "params": { - "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://ivschat-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivschat.us-iso-east-1.c2s.ic.gov" + "url": "https://ivschat.us-east-1.api.aws" } }, "params": { - "Region": "us-iso-east-1", - "UseDualStack": false, + "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivschat.eu-west-1.amazonaws.com" + "url": "https://ivschat-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "eu-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat.us-east-1.amazonaws.com" + "url": "https://ivschat-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-east-1", "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat.us-west-2.amazonaws.com" + "url": "https://ivschat.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-west-2", "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.us-east-1.api.aws" + "url": "https://ivschat-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.us-east-1.amazonaws.com" + "url": "https://ivschat-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ivschat.us-east-1.api.aws" + "url": "https://ivschat.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.us-gov-east-1.api.aws" + "url": "https://ivschat.us-gov-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.us-gov-east-1.amazonaws.com" + "url": "https://ivschat-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat.us-gov-east-1.api.aws" + "url": "https://ivschat.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-gov-east-1", - "UseDualStack": true, + "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat.us-gov-east-1.amazonaws.com" + "url": "https://ivschat-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false + "Region": "us-isob-east-1", + "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ivschat-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://ivschat.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://ivschat.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" @@ -254,8 +267,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, "Endpoint": "https://example.com" } @@ -266,8 +279,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/ivschat/src/main/resources/codegen-resources/service-2.json b/services/ivschat/src/main/resources/codegen-resources/service-2.json index 38a1199c6d42..b4460d1f8c5b 100644 --- a/services/ivschat/src/main/resources/codegen-resources/service-2.json +++ b/services/ivschat/src/main/resources/codegen-resources/service-2.json @@ -277,6 +277,7 @@ "input":{"shape":"UpdateLoggingConfigurationRequest"}, "output":{"shape":"UpdateLoggingConfigurationResponse"}, "errors":[ + {"shape":"ConflictException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"PendingVerification"}, diff --git a/services/ivsrealtime/pom.xml b/services/ivsrealtime/pom.xml new file mode 100644 index 000000000000..75af0e544465 --- /dev/null +++ b/services/ivsrealtime/pom.xml @@ -0,0 +1,60 @@ + + + + + 4.0.0 + + software.amazon.awssdk + services + 2.20.47-SNAPSHOT + + ivsrealtime + AWS Java SDK :: Services :: IVS Real Time + The AWS Java SDK for IVS Real Time module holds the client classes that are used for + communicating with IVS Real Time. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.ivsrealtime + + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + diff --git a/services/ivsrealtime/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ivsrealtime/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..0b1cc12c9845 --- /dev/null +++ b/services/ivsrealtime/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivsrealtime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivsrealtime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivsrealtime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivsrealtime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/services/ivsrealtime/src/main/resources/codegen-resources/endpoint-tests.json b/services/ivsrealtime/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..aa2d6d179c1f --- /dev/null +++ b/services/ivsrealtime/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivsrealtime.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/ivsrealtime/src/main/resources/codegen-resources/paginators-1.json b/services/ivsrealtime/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..23f23f56b010 --- /dev/null +++ b/services/ivsrealtime/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,9 @@ +{ + "pagination": { + "ListStages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/services/ivsrealtime/src/main/resources/codegen-resources/service-2.json b/services/ivsrealtime/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..776a6e858ccf --- /dev/null +++ b/services/ivsrealtime/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,757 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2020-07-14", + "endpointPrefix":"ivsrealtime", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"ivsrealtime", + "serviceFullName":"Amazon Interactive Video Service RealTime", + "serviceId":"IVS RealTime", + "signatureVersion":"v4", + "signingName":"ivs", + "uid":"ivs-realtime-2020-07-14" + }, + "operations":{ + "CreateParticipantToken":{ + "name":"CreateParticipantToken", + "http":{ + "method":"POST", + "requestUri":"/CreateParticipantToken", + "responseCode":200 + }, + "input":{"shape":"CreateParticipantTokenRequest"}, + "output":{"shape":"CreateParticipantTokenResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"PendingVerification"} + ], + "documentation":"

Creates an additional token for a specified stage. This can be done after stage creation or when tokens expire. Tokens always are scoped to the stage for which they are created.

Encryption keys are owned by Amazon IVS and never used directly by your application.

" + }, + "CreateStage":{ + "name":"CreateStage", + "http":{ + "method":"POST", + "requestUri":"/CreateStage", + "responseCode":200 + }, + "input":{"shape":"CreateStageRequest"}, + "output":{"shape":"CreateStageResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"PendingVerification"} + ], + "documentation":"

Creates a new stage (and optionally participant tokens).

" + }, + "DeleteStage":{ + "name":"DeleteStage", + "http":{ + "method":"POST", + "requestUri":"/DeleteStage", + "responseCode":200 + }, + "input":{"shape":"DeleteStageRequest"}, + "output":{"shape":"DeleteStageResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"PendingVerification"} + ], + "documentation":"

Shuts down and deletes the specified stage (disconnecting all participants).

" + }, + "DisconnectParticipant":{ + "name":"DisconnectParticipant", + "http":{ + "method":"POST", + "requestUri":"/DisconnectParticipant", + "responseCode":200 + }, + "input":{"shape":"DisconnectParticipantRequest"}, + "output":{"shape":"DisconnectParticipantResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"PendingVerification"} + ], + "documentation":"

Disconnects a specified participant and revokes the participant permanently from a specified stage.

" + }, + "GetStage":{ + "name":"GetStage", + "http":{ + "method":"POST", + "requestUri":"/GetStage", + "responseCode":200 + }, + "input":{"shape":"GetStageRequest"}, + "output":{"shape":"GetStageResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets information for the specified stage.

" + }, + "ListStages":{ + "name":"ListStages", + "http":{ + "method":"POST", + "requestUri":"/ListStages", + "responseCode":200 + }, + "input":{"shape":"ListStagesRequest"}, + "output":{"shape":"ListStagesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Gets summary information about all stages in your account, in the AWS region where the API request is processed.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets information about AWS tags for the specified ARN.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Adds or updates tags for the AWS resource with the specified ARN.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Removes tags from the resource with the specified ARN.

", + "idempotent":true + }, + "UpdateStage":{ + "name":"UpdateStage", + "http":{ + "method":"POST", + "requestUri":"/UpdateStage", + "responseCode":200 + }, + "input":{"shape":"UpdateStageRequest"}, + "output":{"shape":"UpdateStageResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"PendingVerification"} + ], + "documentation":"

Updates a stage’s configuration.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "exceptionMessage":{ + "shape":"errorMessage", + "documentation":"

User does not have sufficient access to perform this action.

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

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ConflictException":{ + "type":"structure", + "members":{ + "exceptionMessage":{ + "shape":"errorMessage", + "documentation":"

Updating or deleting a resource can cause an inconsistent state.

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

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateParticipantTokenRequest":{ + "type":"structure", + "required":["stageArn"], + "members":{ + "attributes":{ + "shape":"ParticipantTokenAttributes", + "documentation":"

Application-provided attributes to encode into the token and attach to a stage. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB total. This field is exposed to all stage participants and should not be used for personally identifying, confidential, or sensitive information.

" + }, + "capabilities":{ + "shape":"ParticipantTokenCapabilities", + "documentation":"

Set of capabilities that the user is allowed to perform in the stage. Default: PUBLISH, SUBSCRIBE.

" + }, + "duration":{ + "shape":"ParticipantTokenDurationMinutes", + "documentation":"

Duration (in minutes), after which the token expires. Default: 60 (1 hour).

" + }, + "stageArn":{ + "shape":"StageArn", + "documentation":"

ARN of the stage to which this token is scoped.

" + }, + "userId":{ + "shape":"ParticipantTokenUserId", + "documentation":"

Name that can be specified to help identify the token. This can be any UTF-8 encoded text. This field is exposed to all stage participants and should not be used for personally identifying, confidential, or sensitive information.

" + } + } + }, + "CreateParticipantTokenResponse":{ + "type":"structure", + "members":{ + "participantToken":{ + "shape":"ParticipantToken", + "documentation":"

The participant token that was created.

" + } + } + }, + "CreateStageRequest":{ + "type":"structure", + "members":{ + "name":{ + "shape":"StageName", + "documentation":"

Optional name that can be specified for the stage being created.

" + }, + "participantTokenConfigurations":{ + "shape":"ParticipantTokenConfigurations", + "documentation":"

Array of participant token configuration objects to attach to the new stage.

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

Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no constraints on tags beyond what is documented there.

" + } + } + }, + "CreateStageResponse":{ + "type":"structure", + "members":{ + "participantTokens":{ + "shape":"ParticipantTokenList", + "documentation":"

Participant tokens attached to the stage. These correspond to the participants in the request.

" + }, + "stage":{ + "shape":"Stage", + "documentation":"

The stage that was created.

" + } + } + }, + "DeleteStageRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"StageArn", + "documentation":"

ARN of the stage to be deleted.

" + } + } + }, + "DeleteStageResponse":{ + "type":"structure", + "members":{ + } + }, + "DisconnectParticipantReason":{ + "type":"string", + "max":128, + "min":0 + }, + "DisconnectParticipantRequest":{ + "type":"structure", + "required":[ + "participantId", + "stageArn" + ], + "members":{ + "participantId":{ + "shape":"ParticipantTokenId", + "documentation":"

Identifier of the participant to be disconnected. This is returned by CreateParticipantToken.

" + }, + "reason":{ + "shape":"DisconnectParticipantReason", + "documentation":"

Description of why this participant is being disconnected.

" + }, + "stageArn":{ + "shape":"StageArn", + "documentation":"

ARN of the stage to which the participant is attached.

" + } + } + }, + "DisconnectParticipantResponse":{ + "type":"structure", + "members":{ + } + }, + "GetStageRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"StageArn", + "documentation":"

ARN of the stage for which the information is to be retrieved.

" + } + } + }, + "GetStageResponse":{ + "type":"structure", + "members":{ + "stage":{ + "shape":"Stage", + "documentation":"

" + } + } + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "exceptionMessage":{ + "shape":"errorMessage", + "documentation":"

Unexpected error during processing of request.

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

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListStagesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxStageResults", + "documentation":"

Maximum number of results to return. Default: 50.

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

The first stage to retrieve. This is used for pagination; see the nextToken response field.

" + } + } + }, + "ListStagesResponse":{ + "type":"structure", + "required":["stages"], + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

If there are more rooms than maxResults, use nextToken in the request to get the next set.

" + }, + "stages":{ + "shape":"StageSummaryList", + "documentation":"

List of the matching stages (summary information only).

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the resource to be retrieved. The ARN must be URL-encoded.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{ + "shape":"Tags", + "documentation":"

Tags attached to the resource. Array of maps, each of the form string:string (key:value).

" + } + } + }, + "MaxStageResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "PaginationToken":{ + "type":"string", + "max":1024, + "min":0, + "pattern":"^[a-zA-Z0-9+/=_-]*$" + }, + "ParticipantToken":{ + "type":"structure", + "members":{ + "attributes":{ + "shape":"ParticipantTokenAttributes", + "documentation":"

Application-provided attributes to encode into the token and attach to a stage. This field is exposed to all stage participants and should not be used for personally identifying, confidential, or sensitive information.

" + }, + "capabilities":{ + "shape":"ParticipantTokenCapabilities", + "documentation":"

Set of capabilities that the user is allowed to perform in the stage.

" + }, + "duration":{ + "shape":"ParticipantTokenDurationMinutes", + "documentation":"

Duration (in minutes), after which the participant token expires. Default: 60 (1 hour).

" + }, + "expirationTime":{ + "shape":"ParticipantTokenExpirationTime", + "documentation":"

ISO 8601 timestamp (returned as a string) for when this token expires.

" + }, + "participantId":{ + "shape":"ParticipantTokenId", + "documentation":"

Unique identifier for this participant token, assigned by IVS.

" + }, + "token":{ + "shape":"ParticipantTokenString", + "documentation":"

The issued client token, encrypted.

" + }, + "userId":{ + "shape":"ParticipantTokenUserId", + "documentation":"

Name to help identify the token. This can be any UTF-8 encoded text. This field is exposed to all stage participants and should not be used for personally identifying, confidential, or sensitive information.

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

Object specifying a participant token in a stage.

" + }, + "ParticipantTokenAttributes":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "ParticipantTokenCapabilities":{ + "type":"list", + "member":{"shape":"ParticipantTokenCapability"}, + "max":2, + "min":0 + }, + "ParticipantTokenCapability":{ + "type":"string", + "enum":[ + "PUBLISH", + "SUBSCRIBE" + ] + }, + "ParticipantTokenConfiguration":{ + "type":"structure", + "members":{ + "attributes":{ + "shape":"ParticipantTokenAttributes", + "documentation":"

Application-provided attributes to encode into the corresponding participant token and attach to a stage. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB total. This field is exposed to all stage participants and should not be used for personally identifying, confidential, or sensitive information.

" + }, + "capabilities":{ + "shape":"ParticipantTokenCapabilities", + "documentation":"

Set of capabilities that the user is allowed to perform in the stage.

" + }, + "duration":{ + "shape":"ParticipantTokenDurationMinutes", + "documentation":"

Duration (in minutes), after which the corresponding participant token expires. Default: 60 (1 hour).

" + }, + "userId":{ + "shape":"ParticipantTokenUserId", + "documentation":"

Name that can be specified to help identify the corresponding participant token. This can be any UTF-8 encoded text. This field is exposed to all stage participants and should not be used for personally identifying, confidential, or sensitive information.

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

Object specifying a participant token configuration in a stage.

" + }, + "ParticipantTokenConfigurations":{ + "type":"list", + "member":{"shape":"ParticipantTokenConfiguration"}, + "max":12, + "min":0 + }, + "ParticipantTokenDurationMinutes":{ + "type":"integer", + "max":20160, + "min":1 + }, + "ParticipantTokenExpirationTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "ParticipantTokenId":{"type":"string"}, + "ParticipantTokenList":{ + "type":"list", + "member":{"shape":"ParticipantToken"} + }, + "ParticipantTokenString":{ + "type":"string", + "sensitive":true + }, + "ParticipantTokenUserId":{ + "type":"string", + "max":128, + "min":0 + }, + "PendingVerification":{ + "type":"structure", + "members":{ + "exceptionMessage":{ + "shape":"errorMessage", + "documentation":"

Your account is pending verification.

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

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ResourceArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:[a-z-]/[a-zA-Z0-9-]+$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "exceptionMessage":{ + "shape":"errorMessage", + "documentation":"

Request references a resource which does not exist.

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

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "exceptionMessage":{ + "shape":"errorMessage", + "documentation":"

Request would cause a service quota to be exceeded.

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

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "Stage":{ + "type":"structure", + "required":["arn"], + "members":{ + "activeSessionId":{ + "shape":"StageSessionId", + "documentation":"

ID of the active session within the stage.

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

Stage ARN.

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

Stage name.

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

Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no constraints on tags beyond what is documented there.

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

Object specifying a stage.

" + }, + "StageArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stage/[a-zA-Z0-9-]+$" + }, + "StageName":{ + "type":"string", + "max":128, + "min":0, + "pattern":"^[a-zA-Z0-9-_]*$" + }, + "StageSessionId":{ + "type":"string", + "max":16, + "min":16, + "pattern":"^st-[a-zA-Z0-9]+$" + }, + "StageSummary":{ + "type":"structure", + "required":["arn"], + "members":{ + "activeSessionId":{ + "shape":"StageSessionId", + "documentation":"

ID of the active session within the stage.

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

Stage ARN.

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

Stage name.

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

Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no constraints on tags beyond what is documented there.

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

Summary information about a stage.

" + }, + "StageSummaryList":{ + "type":"list", + "member":{"shape":"StageSummary"} + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the resource to be tagged. The ARN must be URL-encoded.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"Tags", + "documentation":"

Array of tags to be added or updated. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no constraints beyond what is documented there.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "Tags":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":0 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the resource to be untagged. The ARN must be URL-encoded.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

Array of tags to be removed. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no constraints beyond what is documented there.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateStageRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"StageArn", + "documentation":"

ARN of the stage to be updated.

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

Name of the stage to be updated.

" + } + } + }, + "UpdateStageResponse":{ + "type":"structure", + "members":{ + "stage":{ + "shape":"Stage", + "documentation":"

The updated stage.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "exceptionMessage":{ + "shape":"errorMessage", + "documentation":"

The input fails to satisfy the constraints specified by an Amazon Web Services service.

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

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "errorMessage":{"type":"string"} + }, + "documentation":"

Introduction

The Amazon Interactive Video Service (IVS) stage API is REST compatible, using a standard HTTP API and an AWS EventBridge event stream for responses. JSON is used for both requests and responses, including errors.

Terminology: The IVS stage API sometimes is referred to as the IVS RealTime API.

Resources

The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):

  • Stage — A stage is a virtual space where multiple participants can exchange audio and video in real time.

Tagging

A tag is a metadata label that you assign to an AWS resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging AWS Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS stages has no service-specific constraints beyond what is documented there.

Tags can help you identify and organize your AWS resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

The Amazon IVS stage API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resource supports tagging: Stage.

At most 50 tags can be applied to a resource.

Stages Endpoints

  • CreateParticipantToken — Creates an additional token for a specified stage. This can be done after stage creation or when tokens expire.

  • CreateStage — Creates a new stage (and optionally participant tokens).

  • DeleteStage — Shuts down and deletes the specified stage (disconnecting all participants).

  • DisconnectParticipant — Disconnects a specified participant and revokes the participant permanently from a specified stage.

  • GetStage — Gets information for the specified stage.

  • ListStages — Gets summary information about all stages in your account, in the AWS region where the API request is processed.

  • UpdateStage — Updates a stage’s configuration.

Tags Endpoints

  • ListTagsForResource — Gets information about AWS tags for the specified ARN.

  • TagResource — Adds or updates tags for the AWS resource with the specified ARN.

  • UntagResource — Removes tags from the resource with the specified ARN.

" +} diff --git a/services/kafka/pom.xml b/services/kafka/pom.xml index 3fa8f8a823ed..a62c7ccab03b 100644 --- a/services/kafka/pom.xml +++ b/services/kafka/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kafka AWS Java SDK :: Services :: Kafka diff --git a/services/kafkaconnect/pom.xml b/services/kafkaconnect/pom.xml index 606ae11a5ee7..68477a389602 100644 --- a/services/kafkaconnect/pom.xml +++ b/services/kafkaconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kafkaconnect AWS Java SDK :: Services :: Kafka Connect diff --git a/services/kendra/pom.xml b/services/kendra/pom.xml index d04a14307944..73487d3626ec 100644 --- a/services/kendra/pom.xml +++ b/services/kendra/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kendra AWS Java SDK :: Services :: Kendra diff --git a/services/kendra/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/kendra/src/main/resources/codegen-resources/endpoint-rule-set.json index 96cd406c4be2..1a902c84198a 100644 --- a/services/kendra/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/kendra/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kendra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kendra-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://kendra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kendra.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://kendra-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://kendra.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://kendra.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://kendra.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/kendra/src/main/resources/codegen-resources/endpoint-tests.json b/services/kendra/src/main/resources/codegen-resources/endpoint-tests.json index 195557708934..436922209059 100644 --- a/services/kendra/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/kendra/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.ap-south-1.amazonaws.com" + "url": "https://kendra.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.ca-central-1.amazonaws.com" + "url": "https://kendra.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" + "UseFIPS": false } }, { @@ -99,308 +34,178 @@ } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.eu-central-1.amazonaws.com" + "url": "https://kendra.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.eu-central-1.amazonaws.com" + "url": "https://kendra.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.us-west-2.amazonaws.com" + "url": "https://kendra-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" + "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.us-west-2.amazonaws.com" + "url": "https://kendra.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" + "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.eu-west-2.amazonaws.com" + "url": "https://kendra-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" + "UseFIPS": true } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.eu-west-2.amazonaws.com" + "url": "https://kendra.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.eu-west-1.amazonaws.com" + "url": "https://kendra-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" + "UseFIPS": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kendra.eu-west-1.api.aws" + "url": "https://kendra-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kendra.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kendra-fips.ap-northeast-1.api.aws" + "url": "https://kendra.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kendra-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.ap-northeast-1.api.aws" + "url": "https://kendra-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.ap-northeast-1.amazonaws.com" + "url": "https://kendra-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kendra-fips.us-gov-west-1.api.aws" + "url": "https://kendra.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.us-gov-west-1.amazonaws.com" + "url": "https://kendra.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { @@ -411,221 +216,188 @@ } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.ap-southeast-1.amazonaws.com" + "url": "https://kendra-fips.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kendra.ap-southeast-1.api.aws" + "url": "https://kendra-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.ap-southeast-1.amazonaws.com" + "url": "https://kendra-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kendra-fips.ap-southeast-2.api.aws" + "url": "https://kendra.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.ap-southeast-2.amazonaws.com" + "url": "https://kendra.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://kendra.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.ap-southeast-2.amazonaws.com" + "url": "https://kendra-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://kendra-fips.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.us-east-1.amazonaws.com" + "url": "https://kendra.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://kendra.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra.us-east-1.amazonaws.com" + "url": "https://kendra-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://kendra-fips.us-east-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kendra-fips.us-east-2.amazonaws.com" + "url": "https://kendra.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kendra.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://kendra.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -634,7 +406,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -644,9 +415,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -656,11 +427,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/kendra/src/main/resources/codegen-resources/service-2.json b/services/kendra/src/main/resources/codegen-resources/service-2.json index 51d31888f583..3b472a3fe859 100644 --- a/services/kendra/src/main/resources/codegen-resources/service-2.json +++ b/services/kendra/src/main/resources/codegen-resources/service-2.json @@ -68,6 +68,23 @@ ], "documentation":"

Removes one or more documents from an index. The documents must have been added with the BatchPutDocument API.

The documents are deleted asynchronously. You can see the progress of the deletion by using Amazon Web Services CloudWatch. Any error messages related to the processing of the batch are sent to you CloudWatch log.

" }, + "BatchDeleteFeaturedResultsSet":{ + "name":"BatchDeleteFeaturedResultsSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDeleteFeaturedResultsSetRequest"}, + "output":{"shape":"BatchDeleteFeaturedResultsSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Removes one or more sets of featured results. Features results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

" + }, "BatchGetDocumentStatus":{ "name":"BatchGetDocumentStatus", "http":{ @@ -159,7 +176,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a data source connector that you want to use with an Amazon Kendra index.

You specify a name, data source connector type and description for your data source. You also specify configuration information for the data source connector.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

Amazon S3 and custom data sources are the only supported data sources in the Amazon Web Services GovCloud (US-West) region.

For an example of creating an index and data source using the Python SDK, see Getting started with Python SDK. For an example of creating an index and data source using the Java SDK, see Getting started with Java SDK.

" + "documentation":"

Creates a data source connector that you want to use with an Amazon Kendra index.

You specify a name, data source connector type and description for your data source. You also specify configuration information for the data source connector.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

For an example of creating an index and data source using the Python SDK, see Getting started with Python SDK. For an example of creating an index and data source using the Java SDK, see Getting started with Java SDK.

" }, "CreateExperience":{ "name":"CreateExperience", @@ -197,7 +214,26 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates an new set of frequently asked question (FAQ) questions and answers.

Adding FAQs to an index is an asynchronous operation.

For an example of adding an FAQ to an index using Python and Java SDKs, see Using your FAQ file.

" + "documentation":"

Creates a set of frequently ask questions (FAQs) using a specified FAQ file stored in an Amazon S3 bucket.

Adding FAQs to an index is an asynchronous operation.

For an example of adding an FAQ to an index using Python and Java SDKs, see Using your FAQ file.

" + }, + "CreateFeaturedResultsSet":{ + "name":"CreateFeaturedResultsSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFeaturedResultsSetRequest"}, + "output":{"shape":"CreateFeaturedResultsSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"FeaturedResultsConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a set of featured results to display at the top of the search results page. Featured results are placed above all other results for certain queries. You map specific queries to specific documents for featuring in the results. If a query contains an exact match, then one or more specific documents are featured in the search results.

You can create up to 50 sets of featured results per index. You can request to increase this limit by contacting Support.

" }, "CreateIndex":{ "name":"CreateIndex", @@ -462,6 +498,23 @@ ], "documentation":"

Gets information about an FAQ list.

" }, + "DescribeFeaturedResultsSet":{ + "name":"DescribeFeaturedResultsSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFeaturedResultsSetRequest"}, + "output":{"shape":"DescribeFeaturedResultsSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets information about a set of featured results. Features results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

" + }, "DescribeIndex":{ "name":"DescribeIndex", "http":{ @@ -736,6 +789,23 @@ ], "documentation":"

Gets a list of FAQ lists associated with an index.

" }, + "ListFeaturedResultsSets":{ + "name":"ListFeaturedResultsSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFeaturedResultsSetsRequest"}, + "output":{"shape":"ListFeaturedResultsSetsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all your sets of featured results for a given index. Features results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

" + }, "ListGroupsOlderThanOrderingId":{ "name":"ListGroupsOlderThanOrderingId", "http":{ @@ -837,7 +907,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], - "documentation":"

Maps users to their groups so that you only need to provide the user ID when you issue the query.

You can also map sub groups to groups. For example, the group \"Company Intellectual Property Teams\" includes sub groups \"Research\" and \"Engineering\". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their search results.

This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. For more information, see Filtering on user context.

If more than five PUT actions for a group are currently processing, a validation exception is thrown.

PutPrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" + "documentation":"

Maps users to their groups so that you only need to provide the user ID when you issue the query.

You can also map sub groups to groups. For example, the group \"Company Intellectual Property Teams\" includes sub groups \"Research\" and \"Engineering\". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their search results.

This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. For more information, see Filtering on user context.

If more than five PUT actions for a group are currently processing, a validation exception is thrown.

" }, "Query":{ "name":"Query", @@ -997,6 +1067,24 @@ ], "documentation":"

Updates your Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, + "UpdateFeaturedResultsSet":{ + "name":"UpdateFeaturedResultsSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateFeaturedResultsSetRequest"}, + "output":{"shape":"UpdateFeaturedResultsSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"FeaturedResultsConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates a set of featured results. Features results are placed above all other results for certain queries. You map specific queries to specific documents for featuring in the results. If a query contains an exact match of a query, then one or more specific documents are featured in the search results.

" + }, "UpdateIndex":{ "name":"UpdateIndex", "http":{ @@ -1454,6 +1542,60 @@ "type":"list", "member":{"shape":"BatchDeleteDocumentResponseFailedDocument"} }, + "BatchDeleteFeaturedResultsSetError":{ + "type":"structure", + "required":[ + "Id", + "ErrorCode", + "ErrorMessage" + ], + "members":{ + "Id":{ + "shape":"FeaturedResultsSetId", + "documentation":"

The identifier of the set of featured results that couldn't be removed from the index.

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

The error code for why the set of featured results couldn't be removed from the index.

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

An explanation for why the set of featured results couldn't be removed from the index.

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

Provides information about a set of featured results that couldn't be removed from an index by the BatchDeleteFeaturedResultsSet API.

" + }, + "BatchDeleteFeaturedResultsSetErrors":{ + "type":"list", + "member":{"shape":"BatchDeleteFeaturedResultsSetError"} + }, + "BatchDeleteFeaturedResultsSetRequest":{ + "type":"structure", + "required":[ + "IndexId", + "FeaturedResultsSetIds" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index used for featuring results.

" + }, + "FeaturedResultsSetIds":{ + "shape":"FeaturedResultsSetIdList", + "documentation":"

The identifiers of the featured results sets that you want to delete.

" + } + } + }, + "BatchDeleteFeaturedResultsSetResponse":{ + "type":"structure", + "required":["Errors"], + "members":{ + "Errors":{ + "shape":"BatchDeleteFeaturedResultsSetErrors", + "documentation":"

The list of errors for the featured results set IDs, explaining why they couldn't be removed from the index.

" + } + } + }, "BatchGetDocumentStatusRequest":{ "type":"structure", "required":[ @@ -1519,11 +1661,11 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role that is allowed to run the BatchPutDocument API. For more information, see IAM Roles for Amazon Kendra.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role with permission to access your S3 bucket. For more information, see IAM access roles for Amazon Kendra.

" }, "Documents":{ "shape":"DocumentList", - "documentation":"

One or more documents to add to the index.

Documents have the following file size limits.

  • 5 MB total size for inline documents

  • 50 MB total size for files from an S3 bucket

  • 5 MB extracted text for any file

For more information about file size and transaction per second quotas, see Quotas.

" + "documentation":"

One or more documents to add to the index.

Documents have the following file size limits.

  • 50 MB total size for any file

  • 5 MB extracted text for any file

For more information, see Quotas.

" }, "CustomDocumentEnrichmentConfiguration":{ "shape":"CustomDocumentEnrichmentConfiguration", @@ -1679,7 +1821,7 @@ }, "ClickTime":{ "shape":"Timestamp", - "documentation":"

The Unix timestamp of the date and time that the result was clicked.

" + "documentation":"

The Unix timestamp when the result was clicked.

" } }, "documentation":"

Gathers information about when a particular result was clicked by a user. Your application uses the SubmitFeedback API to provide click information.

" @@ -1754,6 +1896,28 @@ "documentation":"

A conflict occurred with the request. Please fix any inconsistences with your resources and try again.

", "exception":true }, + "ConflictingItem":{ + "type":"structure", + "members":{ + "QueryText":{ + "shape":"QueryText", + "documentation":"

The text of the conflicting query.

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

The name for the set of featured results that the conflicting query belongs to.

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

The identifier of the set of featured results that the conflicting query belongs to.

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

Information about a conflicting query used across different sets of featured results. When you create a featured results set, you must check that the queries are unique per featured results set for each index.

" + }, + "ConflictingItems":{ + "type":"list", + "member":{"shape":"ConflictingItem"} + }, "ConfluenceAttachmentConfiguration":{ "type":"structure", "members":{ @@ -2227,15 +2391,15 @@ }, "Schedule":{ "shape":"ScanSchedule", - "documentation":"

Sets the frequency for Amazon Kendra to check the documents in your data source repository and update the index. If you don't set a schedule Amazon Kendra will not periodically update the index. You can call the StartDataSourceSyncJob API to update the index.

You can't specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

" + "documentation":"

Sets the frequency for Amazon Kendra to check the documents in your data source repository and update the index. If you don't set a schedule Amazon Kendra will not periodically update the index. You can call the StartDataSourceSyncJob API to update the index.

Specify a cron- format schedule string or an empty string to indicate that the index is updated on demand.

You can't specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access the data source and required resources. For more information, see IAM roles for Amazon Kendra.

You can't specify the RoleArn parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

The RoleArn parameter is required for all other data sources.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role with permission to access the data source and required resources. For more information, see IAM access roles for Amazon Kendra..

You can't specify the RoleArn parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

The RoleArn parameter is required for all other data sources.

" }, "Tags":{ "shape":"TagList", - "documentation":"

A list of key-value pairs that identify the data source connector. You can use the tags to identify and organize your resources and to control access to resources.

" + "documentation":"

A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

" }, "ClientToken":{ "shape":"ClientTokenName", @@ -2279,7 +2443,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access Query API, QuerySuggestions API, SubmitFeedback API, and IAM Identity Center that stores your user and group information. For more information, see IAM roles for Amazon Kendra.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role with permission to access Query API, GetQuerySuggestions API, and other required APIs. The role also must include permission to access IAM Identity Center (successor to Single Sign-On) that stores your user and group information. For more information, see IAM access roles for Amazon Kendra.

" }, "Configuration":{ "shape":"ExperienceConfiguration", @@ -2302,7 +2466,7 @@ "members":{ "Id":{ "shape":"ExperienceId", - "documentation":"

The identifier for your created Amazon Kendra experience.

" + "documentation":"

The identifier of your Amazon Kendra experience.

" } } }, @@ -2333,7 +2497,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access the S3 bucket that contains the FAQs. For more information, see IAM Roles for Amazon Kendra.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role with permission to access the S3 bucket that contains the FAQs. For more information, see IAM access roles for Amazon Kendra.

" }, "Tags":{ "shape":"TagList", @@ -2363,6 +2527,56 @@ } } }, + "CreateFeaturedResultsSetRequest":{ + "type":"structure", + "required":[ + "IndexId", + "FeaturedResultsSetName" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index that you want to use for featuring results.

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

A name for the set of featured results.

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

A description for the set of featured results.

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

A token that you provide to identify the request to create a set of featured results. Multiple calls to the CreateFeaturedResultsSet API with the same client token will create only one featured results set.

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

The current status of the set of featured results. When the value is ACTIVE, featured results are ready for use. You can still configure your settings before setting the status to ACTIVE. You can set the status to ACTIVE or INACTIVE using the UpdateFeaturedResultsSet API. The queries you specify for featured results must be unique per featured results set for each index, whether the status is ACTIVE or INACTIVE.

" + }, + "QueryTexts":{ + "shape":"QueryTextList", + "documentation":"

A list of queries for featuring results. For more information on the list of queries, see FeaturedResultsSet.

" + }, + "FeaturedDocuments":{ + "shape":"FeaturedDocumentList", + "documentation":"

A list of document IDs for the documents you want to feature at the top of the search results page. For more information on the list of documents, see FeaturedResultsSet.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

A list of key-value pairs that identify or categorize the featured results set. You can also use tags to help control access to the featured results set. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols:_ . : / = + - @.

" + } + } + }, + "CreateFeaturedResultsSetResponse":{ + "type":"structure", + "members":{ + "FeaturedResultsSet":{ + "shape":"FeaturedResultsSet", + "documentation":"

Information on the set of featured results. This includes the identifier of the featured results set, whether the featured results set is active or inactive, when the featured results set was created, and more.

" + } + } + }, "CreateIndexRequest":{ "type":"structure", "required":[ @@ -2376,11 +2590,11 @@ }, "Edition":{ "shape":"IndexEdition", - "documentation":"

The Amazon Kendra edition to use for the index. Choose DEVELOPER_EDITION for indexes intended for development, testing, or proof of concept. Use ENTERPRISE_EDITION for your production databases. Once you set the edition for an index, it can't be changed.

The Edition parameter is optional. If you don't supply a value, the default is ENTERPRISE_EDITION.

For more information on quota limits for enterprise and developer editions, see Quotas.

" + "documentation":"

The Amazon Kendra edition to use for the index. Choose DEVELOPER_EDITION for indexes intended for development, testing, or proof of concept. Use ENTERPRISE_EDITION for production. Once you set the edition for an index, it can't be changed.

The Edition parameter is optional. If you don't supply a value, the default is ENTERPRISE_EDITION.

For more information on quota limits for Enterprise and Developer editions, see Quotas.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

An Identity and Access Management (IAM) role that gives Amazon Kendra permissions to access your Amazon CloudWatch logs and metrics. This is also the role you use when you call the BatchPutDocument API to index documents from an Amazon S3 bucket.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role with permission to access your Amazon CloudWatch logs and metrics. For more information, see IAM access roles for Amazon Kendra.

" }, "ServerSideEncryptionConfiguration":{ "shape":"ServerSideEncryptionConfiguration", @@ -2397,7 +2611,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of key-value pairs that identify the index. You can use the tags to identify and organize your resources and to control access to resources.

" + "documentation":"

A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

" }, "UserTokenConfigurations":{ "shape":"UserTokenConfigurationList", @@ -2409,7 +2623,7 @@ }, "UserGroupResolutionConfiguration":{ "shape":"UserGroupResolutionConfiguration", - "documentation":"

Enables fetching access levels of groups and users from an IAM Identity Center (successor to Single Sign-On) identity source. To configure this, see UserGroupResolutionConfiguration.

" + "documentation":"

Gets users and groups from IAM Identity Center (successor to Single Sign-On) identity source. To configure this, see UserGroupResolutionConfiguration.

" } } }, @@ -2437,11 +2651,11 @@ }, "Name":{ "shape":"QuerySuggestionsBlockListName", - "documentation":"

A user friendly name for the block list.

For example, the block list named 'offensive-words' includes all offensive words that could appear in user queries and need to be blocked from suggestions.

" + "documentation":"

A name for the block list.

For example, the name 'offensive-words', which includes all offensive words that could appear in user queries and need to be blocked from suggestions.

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

A user-friendly description for the block list.

For example, the description \"List of all offensive words that can appear in user queries and need to be blocked from suggestions.\"

" + "documentation":"

A description for the block list.

For example, the description \"List of all offensive words that can appear in user queries and need to be blocked from suggestions.\"

" }, "SourceS3Path":{ "shape":"S3Path", @@ -2454,11 +2668,11 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The IAM (Identity and Access Management) role used by Amazon Kendra to access the block list text file in your S3 bucket.

You need permissions to the role ARN (Amazon Web Services Resource Name). The role needs S3 read permissions to your file in S3 and needs to give STS (Security Token Service) assume role permissions to Amazon Kendra.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role with permission to access your S3 bucket that contains the block list text file. For more information, see IAM access roles for Amazon Kendra.

" }, "Tags":{ "shape":"TagList", - "documentation":"

A tag that you can assign to a block list that categorizes the block list.

" + "documentation":"

A list of key-value pairs that identify or categorize the block list. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

" } } }, @@ -2467,7 +2681,7 @@ "members":{ "Id":{ "shape":"QuerySuggestionsBlockListId", - "documentation":"

The identifier of the created block list.

" + "documentation":"

The identifier of the block list.

" } } }, @@ -2494,11 +2708,11 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

An IAM role that gives Amazon Kendra permissions to access thesaurus file specified in SourceS3Path.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role with permission to access your S3 bucket that contains the thesaurus file. For more information, see IAM access roles for Amazon Kendra.

" }, "Tags":{ "shape":"TagList", - "documentation":"

A list of key-value pairs that identify the thesaurus. You can use the tags to identify and organize your resources and to control access to resources.

" + "documentation":"

A list of key-value pairs that identify or categorize the thesaurus. You can also use tags to help control access to the thesaurus. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

" }, "SourceS3Path":{ "shape":"S3Path", @@ -2709,11 +2923,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The UNIX datetime that the data source was created.

" + "documentation":"

The Unix timestamp when the data source connector was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The UNIX datetime that the data source was lasted updated.

" + "documentation":"

The Unix timestamp when the data source connector was last updated.

" }, "Status":{ "shape":"DataSourceStatus", @@ -2739,11 +2953,11 @@ }, "StartTime":{ "shape":"Timestamp", - "documentation":"

The UNIX datetime that the synchronization job started.

" + "documentation":"

The Unix timestamp when the synchronization job started.

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

The UNIX datetime that the synchronization job completed.

" + "documentation":"

The Unix timestamp when the synchronization job completed.

" }, "Status":{ "shape":"DataSourceSyncJobStatus", @@ -3067,7 +3281,7 @@ }, "OrderingId":{ "shape":"PrincipalOrderingId", - "documentation":"

The timestamp identifier you specify to ensure Amazon Kendra does not override the latest DELETE action with previous actions. The highest number ID, which is the ordering ID, is the latest action you want to process and apply on top of other actions with lower number IDs. This prevents previous actions with lower number IDs from possibly overriding the latest action.

The ordering ID can be the UNIX time of the last update you made to a group members list. You would then provide this list when calling PutPrincipalMapping. This ensures your DELETE action for that updated group with the latest members list doesn't get overwritten by earlier DELETE actions for the same group which are yet to be processed.

The default ordering ID is the current UNIX time in milliseconds that the action was received by Amazon Kendra.

" + "documentation":"

The timestamp identifier you specify to ensure Amazon Kendra does not override the latest DELETE action with previous actions. The highest number ID, which is the ordering ID, is the latest action you want to process and apply on top of other actions with lower number IDs. This prevents previous actions with lower number IDs from possibly overriding the latest action.

The ordering ID can be the Unix time of the last update you made to a group members list. You would then provide this list when calling PutPrincipalMapping. This ensures your DELETE action for that updated group with the latest members list doesn't get overwritten by earlier DELETE actions for the same group which are yet to be processed.

The default ordering ID is the current Unix time in milliseconds that the action was received by Amazon Kendra.

" } } }, @@ -3194,11 +3408,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix timestamp of when the data source connector was created.

" + "documentation":"

The Unix timestamp when the data source connector was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix timestamp of when the data source connector was last updated.

" + "documentation":"

The Unix timestamp when the data source connector was last updated.

" }, "Description":{ "shape":"Description", @@ -3272,11 +3486,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

Shows the date-time your Amazon Kendra experience was created.

" + "documentation":"

The Unix timestamp when your Amazon Kendra experience was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

Shows the date-time your Amazon Kendra experience was last updated.

" + "documentation":"

The Unix timestamp when your Amazon Kendra experience was last updated.

" }, "Description":{ "shape":"Description", @@ -3334,11 +3548,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The date and time that the FAQ was created.

" + "documentation":"

The Unix timestamp when the FAQ was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The date and time that the FAQ was last updated.

" + "documentation":"

The Unix timestamp when the FAQ was last updated.

" }, "S3Path":{"shape":"S3Path"}, "Status":{ @@ -3363,6 +3577,64 @@ } } }, + "DescribeFeaturedResultsSetRequest":{ + "type":"structure", + "required":[ + "IndexId", + "FeaturedResultsSetId" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index used for featuring results.

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

The identifier of the set of featured results that you want to get information on.

" + } + } + }, + "DescribeFeaturedResultsSetResponse":{ + "type":"structure", + "members":{ + "FeaturedResultsSetId":{ + "shape":"FeaturedResultsSetId", + "documentation":"

The identifier of the set of featured results.

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

The name for the set of featured results.

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

The description for the set of featured results.

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

The current status of the set of featured results. When the value is ACTIVE, featured results are ready for use. You can still configure your settings before setting the status to ACTIVE. You can set the status to ACTIVE or INACTIVE using the UpdateFeaturedResultsSet API. The queries you specify for featured results must be unique per featured results set for each index, whether the status is ACTIVE or INACTIVE.

" + }, + "QueryTexts":{ + "shape":"QueryTextList", + "documentation":"

The list of queries for featuring results. For more information on the list of queries, see FeaturedResultsSet.

" + }, + "FeaturedDocumentsWithMetadata":{ + "shape":"FeaturedDocumentWithMetadataList", + "documentation":"

The list of document IDs for the documents you want to feature with their metadata information. For more information on the list of featured documents, see FeaturedResultsSet.

" + }, + "FeaturedDocumentsMissing":{ + "shape":"FeaturedDocumentMissingList", + "documentation":"

The list of document IDs that don't exist but you have specified as featured documents. Amazon Kendra cannot feature these documents if they don't exist in the index. You can check the status of a document and its ID or check for documents with status errors using the BatchGetDocumentStatus API.

" + }, + "LastUpdatedTimestamp":{ + "shape":"Long", + "documentation":"

The timestamp when the set of featured results was last updated.

" + }, + "CreationTimestamp":{ + "shape":"Long", + "documentation":"

The Unix timestamp when the set of the featured results was created.

" + } + } + }, "DescribeIndexRequest":{ "type":"structure", "required":["Id"], @@ -3406,11 +3678,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix datetime that the index was created.

" + "documentation":"

The Unix timestamp when the index was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix datetime that the index was last updated.

" + "documentation":"

The Unix when the index was last updated.

" }, "DocumentMetadataConfigurations":{ "shape":"DocumentMetadataConfigurationList", @@ -3480,7 +3752,7 @@ }, "GroupOrderingIdSummaries":{ "shape":"GroupOrderingIdSummaries", - "documentation":"

Shows the following information on the processing of PUT and DELETE actions for mapping users to their groups:

  • Status – the status can be either PROCESSING, SUCCEEDED, DELETING, DELETED, or FAILED.

  • Last updated – the last date-time an action was updated.

  • Received – the last date-time an action was received or submitted.

  • Ordering ID – the latest action that should process and apply after other actions.

  • Failure reason – the reason an action could not be processed.

" + "documentation":"

Shows the following information on the processing of PUT and DELETE actions for mapping users to their groups:

  • Status—the status can be either PROCESSING, SUCCEEDED, DELETING, DELETED, or FAILED.

  • Last updated—the last date-time an action was updated.

  • Received—the last date-time an action was received or submitted.

  • Ordering ID—the latest action that should process and apply after other actions.

  • Failure reason—the reason an action could not be processed.

" } } }, @@ -3530,11 +3802,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The date-time a block list for query suggestions was created.

" + "documentation":"

The Unix timestamp when a block list for query suggestions was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The date-time a block list for query suggestions was last updated.

" + "documentation":"

The Unix timestamp when a block list for query suggestions was last updated.

" }, "SourceS3Path":{ "shape":"S3Path", @@ -3593,11 +3865,11 @@ }, "LastSuggestionsBuildTime":{ "shape":"Timestamp", - "documentation":"

The date-time query suggestions for an index was last updated.

" + "documentation":"

The Unix timestamp when query suggestions for an index was last updated.

" }, "LastClearTime":{ "shape":"Timestamp", - "documentation":"

The date-time query suggestions for an index was last cleared.

After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. Amazon Kendra only considers re-occurences of a query from the time you cleared suggestions.

" + "documentation":"

The Unix timestamp when query suggestions for an index was last cleared.

After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. Amazon Kendra only considers re-occurences of a query from the time you cleared suggestions.

" }, "TotalSuggestionsCount":{ "shape":"Integer", @@ -3651,11 +3923,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix datetime that the thesaurus was created.

" + "documentation":"

The Unix timestamp when the thesaurus was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix datetime that the thesaurus was last updated.

" + "documentation":"

The Unix timestamp when the thesaurus was last updated.

" }, "RoleArn":{ "shape":"RoleArn", @@ -3908,7 +4180,7 @@ }, "FacetResults":{ "shape":"FacetResultList", - "documentation":"

Contains the results of a document attribute that is a nested facet. A FacetResult contains the counts for each facet nested within a facet.

For example, the document attribute or facet \"Department\" includes a value called \"Engineering\". In addition, the document attribute or facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\" for documents assigned to \"Engineering\". You can display nested facets in the search results so that documents can be searched not only by department but also by a sub department within a department. The counts for documents that belong to \"Frontend\" and \"Backend\" within \"Engineering\" are returned for a query.

" + "documentation":"

Contains the results of a document attribute that is a nested facet. A FacetResult contains the counts for each facet nested within a facet.

For example, the document attribute or facet \"Department\" includes a value called \"Engineering\". In addition, the document attribute or facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\" for documents assigned to \"Engineering\". You can display nested facets in the search results so that documents can be searched not only by department but also by a sub department within a department. The counts for documents that belong to \"Frontend\" and \"Backend\" within \"Engineering\" are returned for a query.

" } }, "documentation":"

Provides the count of documents that match a particular attribute when doing a faceted search.

" @@ -4293,7 +4565,7 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The date-time your Amazon Kendra experience was created.

" + "documentation":"

The Unix timestamp when your Amazon Kendra experience was created.

" }, "Status":{ "shape":"ExperienceStatus", @@ -4444,11 +4716,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The UNIX datetime that the FAQ was added to the index.

" + "documentation":"

The Unix timestamp when the FAQ was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The UNIX datetime that the FAQ was last updated.

" + "documentation":"

The Unix timestamp when the FAQ was last updated.

" }, "FileFormat":{ "shape":"FaqFileFormat", @@ -4465,6 +4737,210 @@ "type":"list", "member":{"shape":"FaqSummary"} }, + "FeaturedDocument":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"DocumentId", + "documentation":"

The identifier of the document to feature in the search results. You can use the Query API to search for specific documents with their document IDs included in the result items, or you can use the console.

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

A featured document. This document is displayed at the top of the search results page, placed above all other results for certain queries. If there's an exact match of a query, then the document is featured in the search results.

" + }, + "FeaturedDocumentList":{ + "type":"list", + "member":{"shape":"FeaturedDocument"} + }, + "FeaturedDocumentMissing":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"DocumentId", + "documentation":"

The identifier of the document that doesn't exist but you have specified as a featured document.

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

A document ID doesn't exist but you have specified as a featured document. Amazon Kendra cannot feature the document if it doesn't exist in the index. You can check the status of a document and its ID or check for documents with status errors using the BatchGetDocumentStatus API.

" + }, + "FeaturedDocumentMissingList":{ + "type":"list", + "member":{"shape":"FeaturedDocumentMissing"} + }, + "FeaturedDocumentWithMetadata":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"DocumentId", + "documentation":"

The identifier of the featured document with its metadata. You can use the Query API to search for specific documents with their document IDs included in the result items, or you can use the console.

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

The main title of the featured document.

" + }, + "URI":{ + "shape":"Url", + "documentation":"

The source URI location of the featured document.

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

A featured document with its metadata information. This document is displayed at the top of the search results page, placed above all other results for certain queries. If there's an exact match of a query, then the document is featured in the search results.

" + }, + "FeaturedDocumentWithMetadataList":{ + "type":"list", + "member":{"shape":"FeaturedDocumentWithMetadata"} + }, + "FeaturedResultsConflictException":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "documentation":"

An explanation for the conflicting queries.

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

A list of the conflicting queries, including the query text, the name for the featured results set, and the identifier of the featured results set.

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

An error message with a list of conflicting queries used across different sets of featured results. This occurred with the request for a new featured results set. Check that the queries you specified for featured results are unique per featured results set for each index.

", + "exception":true + }, + "FeaturedResultsItem":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ResultId", + "documentation":"

The identifier of the featured result.

" + }, + "Type":{ + "shape":"QueryResultType", + "documentation":"

The type of document within the featured result response. For example, a response could include a question-answer type that's relevant to the query.

" + }, + "AdditionalAttributes":{ + "shape":"AdditionalResultAttributeList", + "documentation":"

One or more additional attributes associated with the featured result.

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

The identifier of the featured document.

" + }, + "DocumentTitle":{"shape":"TextWithHighlights"}, + "DocumentExcerpt":{"shape":"TextWithHighlights"}, + "DocumentURI":{ + "shape":"Url", + "documentation":"

The source URI location of the featured document.

" + }, + "DocumentAttributes":{ + "shape":"DocumentAttributeList", + "documentation":"

An array of document attributes assigned to a featured document in the search results. For example, the document author (_author) or the source URI (_source_uri) of the document.

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

A token that identifies a particular featured result from a particular query. Use this token to provide click-through feedback for the result. For more information, see Submitting feedback.

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

A single featured result item. A featured result is displayed at the top of the search results page, placed above all other results for certain queries. If there's an exact match of a query, then certain documents are featured in the search results.

" + }, + "FeaturedResultsItemList":{ + "type":"list", + "member":{"shape":"FeaturedResultsItem"} + }, + "FeaturedResultsSet":{ + "type":"structure", + "members":{ + "FeaturedResultsSetId":{ + "shape":"FeaturedResultsSetId", + "documentation":"

The identifier of the set of featured results.

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

The name for the set of featured results.

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

The description for the set of featured results.

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

The current status of the set of featured results. When the value is ACTIVE, featured results are ready for use. You can still configure your settings before setting the status to ACTIVE. You can set the status to ACTIVE or INACTIVE using the UpdateFeaturedResultsSet API. The queries you specify for featured results must be unique per featured results set for each index, whether the status is ACTIVE or INACTIVE.

" + }, + "QueryTexts":{ + "shape":"QueryTextList", + "documentation":"

The list of queries for featuring results.

Specific queries are mapped to specific documents for featuring in the results. If a query contains an exact match, then one or more specific documents are featured in the results. The exact match applies to the full query. For example, if you only specify 'Kendra', queries such as 'How does kendra semantically rank results?' will not render the featured results. Featured results are designed for specific queries, rather than queries that are too broad in scope.

" + }, + "FeaturedDocuments":{ + "shape":"FeaturedDocumentList", + "documentation":"

The list of document IDs for the documents you want to feature at the top of the search results page. You can use the Query API to search for specific documents with their document IDs included in the result items, or you can use the console.

You can add up to four featured documents. You can request to increase this limit by contacting Support.

Specific queries are mapped to specific documents for featuring in the results. If a query contains an exact match, then one or more specific documents are featured in the results. The exact match applies to the full query. For example, if you only specify 'Kendra', queries such as 'How does kendra semantically rank results?' will not render the featured results. Featured results are designed for specific queries, rather than queries that are too broad in scope.

" + }, + "LastUpdatedTimestamp":{ + "shape":"Long", + "documentation":"

The Unix timestamp when the set of featured results was last updated.

" + }, + "CreationTimestamp":{ + "shape":"Long", + "documentation":"

The Unix timestamp when the set of featured results was created.

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

A set of featured results that are displayed at the top of your search results. Featured results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

" + }, + "FeaturedResultsSetDescription":{ + "type":"string", + "max":1000, + "min":0, + "pattern":"^\\P{C}*$" + }, + "FeaturedResultsSetId":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[a-zA-Z-0-9]*" + }, + "FeaturedResultsSetIdList":{ + "type":"list", + "member":{"shape":"FeaturedResultsSetId"}, + "max":50, + "min":1 + }, + "FeaturedResultsSetName":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[a-zA-Z0-9][ a-zA-Z0-9_-]*" + }, + "FeaturedResultsSetStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, + "FeaturedResultsSetSummary":{ + "type":"structure", + "members":{ + "FeaturedResultsSetId":{ + "shape":"FeaturedResultsSetId", + "documentation":"

The identifier of the set of featured results.

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

The name for the set of featured results.

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

The current status of the set of featured results. When the value is ACTIVE, featured results are ready for use. You can still configure your settings before setting the status to ACTIVE. You can set the status to ACTIVE or INACTIVE using the UpdateFeaturedResultsSet API. The queries you specify for featured results must be unique per featured results set for each index, whether the status is ACTIVE or INACTIVE.

" + }, + "LastUpdatedTimestamp":{ + "shape":"Long", + "documentation":"

The Unix timestamp when the set of featured results was last updated.

" + }, + "CreationTimestamp":{ + "shape":"Long", + "documentation":"

The Unix timestamp when the set of featured results was created.

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

Summary information for a set of featured results. Featured results are placed above all other results for certain queries. If there's an exact match of a query, then one or more specific documents are featured in the search results.

" + }, + "FeaturedResultsSetSummaryItems":{ + "type":"list", + "member":{"shape":"FeaturedResultsSetSummary"} + }, "FeedbackToken":{ "type":"string", "max":2048, @@ -4598,7 +5074,7 @@ "members":{ "SnapShotTimeFilter":{ "shape":"TimeRange", - "documentation":"

The date-time for the beginning and end of the time window for the search metrics data.

" + "documentation":"

The Unix timestamp for the beginning and end of the time window for the search metrics data.

" }, "SnapshotsDataHeader":{ "shape":"SnapshotsDataHeaderFields", @@ -4822,11 +5298,11 @@ }, "LastUpdatedAt":{ "shape":"Timestamp", - "documentation":"

The last date-time an action was updated. An action can be a PUT or DELETE action for mapping users to their groups.

" + "documentation":"

The Unix timestamp when an action was last updated. An action can be a PUT or DELETE action for mapping users to their groups.

" }, "ReceivedAt":{ "shape":"Timestamp", - "documentation":"

The date-time an action was received by Amazon Kendra. An action can be a PUT or DELETE action for mapping users to their groups.

" + "documentation":"

The Unix timestamp when an action was received by Amazon Kendra. An action can be a PUT or DELETE action for mapping users to their groups.

" }, "OrderingId":{ "shape":"PrincipalOrderingId", @@ -4979,7 +5455,7 @@ }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix timestamp when the index was last updated by the UpdateIndex API.

" + "documentation":"

The Unix timestamp when the index was last updated.

" }, "Status":{ "shape":"IndexStatus", @@ -5088,7 +5564,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

An issue occurred with the internal server used for your Amazon Kendra service. Please wait a few minutes and try again, or contact Support for help.

", + "documentation":"

An issue occurred with the internal server used for your Amazon Kendra service. Please wait a few minutes and try again, or contact Support for help.

", "exception":true, "fault":true }, @@ -5537,6 +6013,37 @@ } } }, + "ListFeaturedResultsSetsRequest":{ + "type":"structure", + "required":["IndexId"], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index used for featuring results.

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

If the response is truncated, Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of featured results sets.

" + }, + "MaxResults":{ + "shape":"MaxResultsIntegerForListFeaturedResultsSetsRequest", + "documentation":"

The maximum number of featured results sets to return.

" + } + } + }, + "ListFeaturedResultsSetsResponse":{ + "type":"structure", + "members":{ + "FeaturedResultsSetSummaryItems":{ + "shape":"FeaturedResultsSetSummaryItems", + "documentation":"

An array of summary information for one or more featured results sets.

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

If the response is truncated, Amazon Kendra returns a pagination token in the response.

" + } + } + }, "ListGroupsOlderThanOrderingIdRequest":{ "type":"structure", "required":[ @@ -5736,6 +6243,11 @@ "max":100, "min":1 }, + "MaxResultsIntegerForListFeaturedResultsSetsRequest":{ + "type":"integer", + "max":100, + "min":1 + }, "MaxResultsIntegerForListIndicesRequest":{ "type":"integer", "max":100, @@ -5977,11 +6489,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The date-time the summary information was created.

" + "documentation":"

The Unix timestamp when the summary information was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The date-time the summary information was last updated.

" + "documentation":"

The Unix timestamp when the summary information was last updated.

" } }, "documentation":"

Summary information for users or groups in your IAM Identity Center identity source. This applies to users and groups with specific permissions that define their level of access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" @@ -6114,7 +6626,7 @@ }, "OrderingId":{ "shape":"PrincipalOrderingId", - "documentation":"

The timestamp identifier you specify to ensure Amazon Kendra does not override the latest PUT action with previous actions. The highest number ID, which is the ordering ID, is the latest action you want to process and apply on top of other actions with lower number IDs. This prevents previous actions with lower number IDs from possibly overriding the latest action.

The ordering ID can be the UNIX time of the last update you made to a group members list. You would then provide this list when calling PutPrincipalMapping. This ensures your PUT action for that updated group with the latest members list doesn't get overwritten by earlier PUT actions for the same group which are yet to be processed.

The default ordering ID is the current UNIX time in milliseconds that the action was received by Amazon Kendra.

" + "documentation":"

The timestamp identifier you specify to ensure Amazon Kendra does not override the latest PUT action with previous actions. The highest number ID, which is the ordering ID, is the latest action you want to process and apply on top of other actions with lower number IDs. This prevents previous actions with lower number IDs from possibly overriding the latest action.

The ordering ID can be the Unix time of the last update you made to a group members list. You would then provide this list when calling PutPrincipalMapping. This ensures your PUT action for that updated group with the latest members list doesn't get overwritten by earlier PUT actions for the same group which are yet to be processed.

The default ordering ID is the current Unix time in milliseconds that the action was received by Amazon Kendra.

" }, "RoleArn":{ "shape":"RoleArn", @@ -6223,6 +6735,10 @@ "SpellCorrectedQueries":{ "shape":"SpellCorrectedQueryList", "documentation":"

A list of information related to suggested spell corrections for a query.

" + }, + "FeaturedResultsItems":{ + "shape":"FeaturedResultsItemList", + "documentation":"

The list of featured result items. Featured results are displayed at the top of the search results page, placed above all other results for certain queries. If there's an exact match of a query, then certain documents are featured in the search results.

" } } }, @@ -6339,11 +6855,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The date-time summary information for a query suggestions block list was last created.

" + "documentation":"

The Unix timestamp when the block list was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The date-time the block list was last updated.

" + "documentation":"

The Unix timestamp when the block list was last updated.

" }, "ItemCount":{ "shape":"Integer", @@ -6373,6 +6889,12 @@ "max":1000, "min":1 }, + "QueryTextList":{ + "type":"list", + "member":{"shape":"QueryText"}, + "max":49, + "min":0 + }, "QuipConfiguration":{ "type":"structure", "required":[ @@ -6477,7 +6999,7 @@ }, "RelevanceValue":{ "shape":"RelevanceType", - "documentation":"

Whether to document was relevant or not relevant to the search.

" + "documentation":"

Whether the document was relevant or not relevant to the search.

" } }, "documentation":"

Provides feedback on how relevant a document is to a search. Your application uses the SubmitFeedback API to provide relevance information.

" @@ -6670,7 +7192,7 @@ }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of an Secrets Managersecret that contains the key/value pairs required to connect to your Salesforce instance. The secret must contain a JSON structure with the following keys:

  • authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to get an OAUTH token.

  • consumerKey - The application public key generated when you created your Salesforce application.

  • consumerSecret - The application private key generated when you created your Salesforce application.

  • password - The password associated with the user logging in to the Salesforce instance.

  • securityToken - The token associated with the user account logging in to the Salesforce instance.

  • username - The user name of the user logging in to the Salesforce instance.

" + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Managersecret that contains the key/value pairs required to connect to your Salesforce instance. The secret must contain a JSON structure with the following keys:

  • authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to get an OAUTH token.

  • consumerKey - The application public key generated when you created your Salesforce application.

  • consumerSecret - The application private key generated when you created your Salesforce application.

  • password - The password associated with the user logging in to the Salesforce instance.

  • securityToken - The token associated with the user logging in to the Salesforce instance.

  • username - The user name of the user logging in to the Salesforce instance.

" }, "StandardObjectConfigurations":{ "shape":"SalesforceStandardObjectConfigurationList", @@ -6933,10 +7455,10 @@ }, "WebCrawlerMode":{ "shape":"WebCrawlerMode", - "documentation":"

You can choose one of the following modes:

  • HOST_ONLY – crawl only the website host names. For example, if the seed URL is \"abc.example.com\", then only URLs with host name \"abc.example.com\" are crawled.

  • SUBDOMAINS – crawl the website host names with subdomains. For example, if the seed URL is \"abc.example.com\", then \"a.abc.example.com\" and \"b.abc.example.com\" are also crawled.

  • EVERYTHING – crawl the website host names with subdomains and other domains that the webpages link to.

The default mode is set to HOST_ONLY.

" + "documentation":"

You can choose one of the following modes:

  • HOST_ONLY – crawl only the website host names. For example, if the seed URL is \"abc.example.com\", then only URLs with host name \"abc.example.com\" are crawled.

  • SUBDOMAINS – crawl the website host names with subdomains. For example, if the seed URL is \"abc.example.com\", then \"a.abc.example.com\" and \"b.abc.example.com\" are also crawled.

  • EVERYTHING – crawl the website host names with subdomains and other domains that the web pages link to.

The default mode is set to HOST_ONLY.

" } }, - "documentation":"

Provides the configuration information for the seed or starting point URLs to crawl.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.

" + "documentation":"

Provides the configuration information for the seed or starting point URLs to crawl.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own web pages, or web pages that you have authorization to index.

" }, "SeedUrlList":{ "type":"list", @@ -7086,7 +7608,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

You have exceeded the set limits for your Amazon Kendra service. Please see Quotas[hyperlink Kendra Quotas pg] for more information, or contact Support to inquire about an increase of limits.

", + "documentation":"

You have exceeded the set limits for your Amazon Kendra service. Please see Quotas for more information, or contact Support to inquire about an increase of limits.

", "exception":true }, "SharePointConfiguration":{ @@ -7107,7 +7629,7 @@ }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the user name and password required to connect to the SharePoint instance. If you use SharePoint Server, you also need to provide the sever domain name as part of the credentials. For more information, see Using a Microsoft SharePoint Data Source.

You can also provide OAuth authentication credentials of user name, password, client ID, and client secret. For more information, see Using a SharePoint data source.

" + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the user name and password required to connect to the SharePoint instance. For more information, see Microsoft SharePoint.

" }, "CrawlAttachments":{ "shape":"Boolean", @@ -7143,11 +7665,11 @@ }, "SslCertificateS3Path":{ "shape":"S3Path", - "documentation":"

The path to the SSL certificate stored in an Amazon S3 bucket. You use this to connect to SharePoint Server if you require a secure SSL connection.

You can simply generate a self-signed X509 certificate on any computer using OpenSSL. For an example of using OpenSSL to create an X509 certificate, see Create and sign an X509 certificate.

" + "documentation":"

The path to the SSL certificate stored in an Amazon S3 bucket. You use this to connect to SharePoint Server if you require a secure SSL connection.

You can generate a self-signed X509 certificate on any computer using OpenSSL. For an example of using OpenSSL to create an X509 certificate, see Create and sign an X509 certificate.

" }, "AuthenticationType":{ "shape":"SharePointOnlineAuthenticationType", - "documentation":"

Whether you want to connect to SharePoint using basic authentication of user name and password, or OAuth authentication of user name, password, client ID, and client secret. You can use OAuth authentication for SharePoint Online.

" + "documentation":"

Whether you want to connect to SharePoint Online using basic authentication of user name and password, or OAuth authentication of user name, password, client ID, and client secret, or AD App-only authentication of client secret.

" }, "ProxyConfiguration":{ "shape":"ProxyConfiguration", @@ -7211,7 +7733,7 @@ "documentation":"

The list of sitemap URLs of the websites you want to crawl.

The list can include a maximum of three sitemap URLs.

" } }, - "documentation":"

Provides the configuration information for the sitemap URLs to crawl.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.

" + "documentation":"

Provides the configuration information for the sitemap URLs to crawl.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own web pages, or web pages that you have authorization to index.

" }, "SiteMapsList":{ "type":"list", @@ -7791,11 +8313,11 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix datetime that the thesaurus was created.

" + "documentation":"

The Unix timestamp when the thesaurus was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix datetime that the thesaurus was last updated.

" + "documentation":"

The Unix timestamp when the thesaurus was last updated.

" } }, "documentation":"

An array of summary information for a thesaurus or multiple thesauri.

" @@ -7817,11 +8339,11 @@ "members":{ "StartTime":{ "shape":"Timestamp", - "documentation":"

The UNIX datetime of the beginning of the time range.

" + "documentation":"

The Unix timestamp for the beginning of the time range.

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

The UNIX datetime of the end of the time range.

" + "documentation":"

The Unix timestamp for the end of the time range.

" } }, "documentation":"

Provides a range of time.

" @@ -7988,6 +8510,52 @@ } } }, + "UpdateFeaturedResultsSetRequest":{ + "type":"structure", + "required":[ + "IndexId", + "FeaturedResultsSetId" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index used for featuring results.

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

The identifier of the index used for featuring results.

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

A new name for the set of featured results.

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

A new description for the set of featured results.

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

You can set the status to ACTIVE or INACTIVE. When the value is ACTIVE, featured results are ready for use. You can still configure your settings before setting the status to ACTIVE. The queries you specify for featured results must be unique per featured results set for each index, whether the status is ACTIVE or INACTIVE.

" + }, + "QueryTexts":{ + "shape":"QueryTextList", + "documentation":"

A list of queries for featuring results. For more information on the list of queries, see FeaturedResultsSet.

" + }, + "FeaturedDocuments":{ + "shape":"FeaturedDocumentList", + "documentation":"

A list of document IDs for the documents you want to feature at the top of the search results page. For more information on the list of featured documents, see FeaturedResultsSet.

" + } + } + }, + "UpdateFeaturedResultsSetResponse":{ + "type":"structure", + "members":{ + "FeaturedResultsSet":{ + "shape":"FeaturedResultsSet", + "documentation":"

Information on the set of featured results. This includes the identifier of the featured results set, whether the featured results set is active or inactive, when the featured results set was last updated, and more.

" + } + } + }, "UpdateIndexRequest":{ "type":"structure", "required":["Id"], @@ -8134,14 +8702,14 @@ "members":{ "SeedUrlConfiguration":{ "shape":"SeedUrlConfiguration", - "documentation":"

Configuration of the seed or starting point URLs of the websites you want to crawl.

You can choose to crawl only the website host names, or the website host names with subdomains, or the website host names with subdomains and other domains that the webpages link to.

You can list up to 100 seed URLs.

" + "documentation":"

Configuration of the seed or starting point URLs of the websites you want to crawl.

You can choose to crawl only the website host names, or the website host names with subdomains, or the website host names with subdomains and other domains that the web pages link to.

You can list up to 100 seed URLs.

" }, "SiteMapsConfiguration":{ "shape":"SiteMapsConfiguration", "documentation":"

Configuration of the sitemap URLs of the websites you want to crawl.

Only URLs belonging to the same website host names are crawled. You can list up to three sitemap URLs.

" } }, - "documentation":"

Provides the configuration information of the URLs to crawl.

You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.

" + "documentation":"

Provides the configuration information of the URLs to crawl.

You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own web pages, or web pages that you have authorization to index.

" }, "UserAccount":{ "type":"string", @@ -8184,10 +8752,10 @@ "members":{ "UserGroupResolutionMode":{ "shape":"UserGroupResolutionMode", - "documentation":"

The identity store provider (mode) you want to use to fetch access levels of groups and users. IAM Identity Center (successor to Single Sign-On) is currently the only available mode. Your users and groups must exist in an IAM Identity Center identity source in order to use this mode.

" + "documentation":"

The identity store provider (mode) you want to use to get users and groups. IAM Identity Center (successor to Single Sign-On) is currently the only available mode. Your users and groups must exist in an IAM Identity Center identity source in order to use this mode.

" } }, - "documentation":"

Provides the configuration information to fetch access levels of groups and users from an IAM Identity Center (successor to Single Sign-On) identity source. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. You can also use the PutPrincipalMapping API to map users to their groups so that you only need to provide the user ID when you issue the query.

To set up an IAM Identity Center identity source in the console to use with Amazon Kendra, see Getting started with an IAM Identity Center identity source. You must also grant the required permissions to use IAM Identity Center with Amazon Kendra. For more information, see IAM roles for IAM Identity Center.

Amazon Kendra currently does not support using UserGroupResolutionConfiguration with an Amazon Web Services organization member account for your IAM Identity Center identify source. You must create your index in the management account for the organization in order to use UserGroupResolutionConfiguration.

" + "documentation":"

Provides the configuration information to get users and groups from an IAM Identity Center (successor to Single Sign-On) identity source. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. You can also use the PutPrincipalMapping API to map users to their groups so that you only need to provide the user ID when you issue the query.

To set up an IAM Identity Center identity source in the console to use with Amazon Kendra, see Getting started with an IAM Identity Center identity source. You must also grant the required permissions to use IAM Identity Center with Amazon Kendra. For more information, see IAM roles for IAM Identity Center.

Amazon Kendra currently does not support using UserGroupResolutionConfiguration with an Amazon Web Services organization member account for your IAM Identity Center identify source. You must create your index in the management account for the organization in order to use UserGroupResolutionConfiguration.

" }, "UserGroupResolutionMode":{ "type":"string", @@ -8303,19 +8871,19 @@ "members":{ "Urls":{ "shape":"Urls", - "documentation":"

Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl.

You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.

You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.

" + "documentation":"

Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl.

You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.

You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.

When selecting websites to index, you must adhere to the Amazon Acceptable Use Policy and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own web pages, or web pages that you have authorization to index.

" }, "CrawlDepth":{ "shape":"CrawlDepth", - "documentation":"

Specifies the number of levels in a website that you want to crawl.

The first level begins from the website seed or starting point URL. For example, if a website has 3 levels – index level (i.e. seed in this example), sections level, and subsections level – and you are only interested in crawling information up to the sections level (i.e. levels 0-1), you can set your depth to 1.

The default crawl depth is set to 2.

" + "documentation":"

Specifies the number of levels in a website that you want to crawl.

The first level begins from the website seed or starting point URL. For example, if a website has three levels—index level (the seed in this example), sections level, and subsections level—and you are only interested in crawling information up to the sections level (levels 0-1), you can set your depth to 1.

The default crawl depth is set to 2.

" }, "MaxLinksPerPage":{ "shape":"MaxLinksPerPage", - "documentation":"

The maximum number of URLs on a webpage to include when crawling a website. This number is per webpage.

As a website’s webpages are crawled, any URLs the webpages link to are also crawled. URLs on a webpage are crawled in order of appearance.

The default maximum links per page is 100.

" + "documentation":"

The maximum number of URLs on a web page to include when crawling a website. This number is per web page.

As a website’s web pages are crawled, any URLs the web pages link to are also crawled. URLs on a web page are crawled in order of appearance.

The default maximum links per page is 100.

" }, "MaxContentSizePerPageInMegaBytes":{ "shape":"MaxContentSizePerPageInMegaBytes", - "documentation":"

The maximum size (in MB) of a webpage or attachment to crawl.

Files larger than this size (in MB) are skipped/not crawled.

The default maximum size of a webpage or attachment is set to 50 MB.

" + "documentation":"

The maximum size (in MB) of a web page or attachment to crawl.

Files larger than this size (in MB) are skipped/not crawled.

The default maximum size of a web page or attachment is set to 50 MB.

" }, "MaxUrlsPerMinuteCrawlRate":{ "shape":"MaxUrlsPerMinuteCrawlRate", diff --git a/services/kendraranking/pom.xml b/services/kendraranking/pom.xml index 4ed30f50407e..19c3754cb4d7 100644 --- a/services/kendraranking/pom.xml +++ b/services/kendraranking/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kendraranking AWS Java SDK :: Services :: Kendra Ranking diff --git a/services/keyspaces/pom.xml b/services/keyspaces/pom.xml index 3ff5666db619..82e04a61df61 100644 --- a/services/keyspaces/pom.xml +++ b/services/keyspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT keyspaces AWS Java SDK :: Services :: Keyspaces diff --git a/services/keyspaces/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/keyspaces/src/main/resources/codegen-resources/endpoint-rule-set.json index 74d4f797a41c..eaa1d7b0c1e0 100644 --- a/services/keyspaces/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/keyspaces/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,179 +111,240 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cassandra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://cassandra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://cassandra.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://cassandra.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cassandra-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://cassandra-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cassandra.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -311,7 +352,7 @@ { "conditions": [], "endpoint": { - "url": "https://cassandra.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://cassandra.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,28 +361,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cassandra.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/keyspaces/src/main/resources/codegen-resources/endpoint-tests.json b/services/keyspaces/src/main/resources/codegen-resources/endpoint-tests.json index 63ecfebde543..cd6fb8403293 100644 --- a/services/keyspaces/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/keyspaces/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-east-1" } }, { @@ -21,9 +21,9 @@ } }, "params": { - "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { @@ -34,9 +34,9 @@ } }, "params": { - "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-2" } }, { @@ -47,9 +47,9 @@ } }, "params": { - "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-south-1" } }, { @@ -60,9 +60,9 @@ } }, "params": { - "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { @@ -73,9 +73,9 @@ } }, "params": { - "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { @@ -86,9 +86,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ca-central-1" } }, { @@ -99,9 +99,9 @@ } }, "params": { - "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-central-1" } }, { @@ -112,9 +112,9 @@ } }, "params": { - "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-north-1" } }, { @@ -125,9 +125,9 @@ } }, "params": { - "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-1" } }, { @@ -138,9 +138,9 @@ } }, "params": { - "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-2" } }, { @@ -151,9 +151,9 @@ } }, "params": { - "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-3" } }, { @@ -164,9 +164,9 @@ } }, "params": { - "Region": "me-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "me-south-1" } }, { @@ -177,9 +177,9 @@ } }, "params": { - "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "sa-east-1" } }, { @@ -190,9 +190,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -203,9 +203,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -216,9 +216,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-2" } }, { @@ -229,9 +229,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-1" } }, { @@ -242,9 +242,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-2" } }, { @@ -255,9 +255,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-2" } }, { @@ -268,9 +268,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -281,9 +281,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -294,9 +294,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -307,9 +307,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -320,9 +320,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -333,9 +333,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -346,9 +346,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { @@ -359,9 +359,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -372,9 +372,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-west-1" } }, { @@ -385,9 +385,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-west-1" } }, { @@ -398,9 +398,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -411,9 +411,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { @@ -424,9 +424,9 @@ } }, "params": { - "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { @@ -437,9 +437,9 @@ } }, "params": { - "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { @@ -450,9 +450,9 @@ } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { @@ -463,20 +463,33 @@ } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseDualStack": false, + "UseFIPS": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" @@ -488,9 +501,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -500,9 +513,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/keyspaces/src/main/resources/codegen-resources/service-2.json b/services/keyspaces/src/main/resources/codegen-resources/service-2.json index 744e41e3e0a9..9c4fc96d9c7f 100644 --- a/services/keyspaces/src/main/resources/codegen-resources/service-2.json +++ b/services/keyspaces/src/main/resources/codegen-resources/service-2.json @@ -185,7 +185,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Restores the specified table to the specified point in time within the earliest_restorable_timestamp and the current time. For more information about restore points, see Time window for PITR continuous backups in the Amazon Keyspaces Developer Guide.

Any number of users can execute up to 4 concurrent restores (any type of restore) in a given account.

When you restore using point in time recovery, Amazon Keyspaces restores your source table's schema and data to the state based on the selected timestamp (day:hour:minute:second) to a new table. The Time to Live (TTL) settings are also restored to the state based on the selected timestamp.

In addition to the table's schema, data, and TTL settings, RestoreTable restores the capacity mode, encryption, and point-in-time recovery settings from the source table. Unlike the table's schema data and TTL settings, which are restored based on the selected timestamp, these settings are always restored based on the table's settings as of the current time or when the table was deleted.

You can also overwrite these settings during restore:

• Read/write capacity mode

• Provisioned throughput capacity settings

• Point-in-time (PITR) settings

• Tags

For more information, see PITR restore settings in the Amazon Keyspaces Developer Guide.

Note that the following settings are not restored, and you must configure them manually for the new table:

• Automatic scaling policies (for tables that use provisioned capacity mode)

• Identity and Access Management (IAM) policies

• Amazon CloudWatch metrics and alarms

" + "documentation":"

Restores the specified table to the specified point in time within the earliest_restorable_timestamp and the current time. For more information about restore points, see Time window for PITR continuous backups in the Amazon Keyspaces Developer Guide.

Any number of users can execute up to 4 concurrent restores (any type of restore) in a given account.

When you restore using point in time recovery, Amazon Keyspaces restores your source table's schema and data to the state based on the selected timestamp (day:hour:minute:second) to a new table. The Time to Live (TTL) settings are also restored to the state based on the selected timestamp.

In addition to the table's schema, data, and TTL settings, RestoreTable restores the capacity mode, encryption, and point-in-time recovery settings from the source table. Unlike the table's schema data and TTL settings, which are restored based on the selected timestamp, these settings are always restored based on the table's settings as of the current time or when the table was deleted.

You can also overwrite these settings during restore:

  • Read/write capacity mode

  • Provisioned throughput capacity settings

  • Point-in-time (PITR) settings

  • Tags

For more information, see PITR restore settings in the Amazon Keyspaces Developer Guide.

Note that the following settings are not restored, and you must configure them manually for the new table:

  • Automatic scaling policies (for tables that use provisioned capacity mode)

  • Identity and Access Management (IAM) policies

  • Amazon CloudWatch metrics and alarms

" }, "TagResource":{ "name":"TagResource", @@ -262,7 +262,7 @@ "members":{ "throughputMode":{ "shape":"ThroughputMode", - "documentation":"

The read/write throughput capacity mode for a table. The options are:

throughputMode:PAY_PER_REQUEST and

throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" + "documentation":"

The read/write throughput capacity mode for a table. The options are:

  • throughputMode:PAY_PER_REQUEST and

  • throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" }, "readCapacityUnits":{ "shape":"CapacityUnits", @@ -273,7 +273,7 @@ "documentation":"

The throughput capacity specified for write operations defined in write capacity units (WCUs).

" } }, - "documentation":"

Amazon Keyspaces has two read/write capacity modes for processing reads and writes on your tables:

• On-demand (default)

• Provisioned

The read/write capacity mode that you choose controls how you are charged for read and write throughput and how table throughput capacity is managed.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Amazon Keyspaces has two read/write capacity modes for processing reads and writes on your tables:

  • On-demand (default)

  • Provisioned

The read/write capacity mode that you choose controls how you are charged for read and write throughput and how table throughput capacity is managed.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" }, "CapacitySpecificationSummary":{ "type":"structure", @@ -281,7 +281,7 @@ "members":{ "throughputMode":{ "shape":"ThroughputMode", - "documentation":"

The read/write throughput capacity mode for a table. The options are:

throughputMode:PAY_PER_REQUEST and

throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" + "documentation":"

The read/write throughput capacity mode for a table. The options are:

  • throughputMode:PAY_PER_REQUEST and

  • throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" }, "readCapacityUnits":{ "shape":"CapacityUnits", @@ -296,13 +296,28 @@ "documentation":"

The timestamp of the last operation that changed the provisioned throughput capacity of a table.

" } }, - "documentation":"

The read/write throughput capacity mode for a table. The options are:

throughputMode:PAY_PER_REQUEST and

throughputMode:PROVISIONED.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" + "documentation":"

The read/write throughput capacity mode for a table. The options are:

  • throughputMode:PAY_PER_REQUEST and

  • throughputMode:PROVISIONED.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" }, "CapacityUnits":{ "type":"long", "box":true, "min":1 }, + "ClientSideTimestamps":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{ + "shape":"ClientSideTimestampsStatus", + "documentation":"

Shows how to enable client-side timestamps settings for the specified table.

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

The client-side timestamp setting of the table.

For more information, see How it works: Amazon Keyspaces client-side timestamps in the Amazon Keyspaces Developer Guide.

" + }, + "ClientSideTimestampsStatus":{ + "type":"string", + "enum":["ENABLED"] + }, "ClusteringKey":{ "type":"structure", "required":[ @@ -409,7 +424,7 @@ }, "schemaDefinition":{ "shape":"SchemaDefinition", - "documentation":"

The schemaDefinition consists of the following parameters.

For each column to be created:

name - The name of the column.

type - An Amazon Keyspaces data type. For more information, see Data types in the Amazon Keyspaces Developer Guide.

The primary key of the table consists of the following columns:

partitionKeys - The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.

name - The name of each partition key column.

clusteringKeys - The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.

name - The name of the clustering column.

orderBy - Sets the ascendant (ASC) or descendant (DESC) order modifier.

To define a column as static use staticColumns - Static columns store values that are shared by all rows in the same partition:

name - The name of the column.

type - An Amazon Keyspaces data type.

" + "documentation":"

The schemaDefinition consists of the following parameters.

For each column to be created:

  • name - The name of the column.

  • type - An Amazon Keyspaces data type. For more information, see Data types in the Amazon Keyspaces Developer Guide.

The primary key of the table consists of the following columns:

  • partitionKeys - The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.

  • name - The name of each partition key column.

  • clusteringKeys - The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.

  • name - The name of the clustering column.

  • orderBy - Sets the ascendant (ASC) or descendant (DESC) order modifier.

    To define a column as static use staticColumns - Static columns store values that are shared by all rows in the same partition:

  • name - The name of the column.

  • type - An Amazon Keyspaces data type.

" }, "comment":{ "shape":"Comment", @@ -417,19 +432,19 @@ }, "capacitySpecification":{ "shape":"CapacitySpecification", - "documentation":"

Specifies the read/write throughput capacity mode for the table. The options are:

throughputMode:PAY_PER_REQUEST and

throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Specifies the read/write throughput capacity mode for the table. The options are:

  • throughputMode:PAY_PER_REQUEST and

  • throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" }, "encryptionSpecification":{ "shape":"EncryptionSpecification", - "documentation":"

Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):

type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is type:AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):

  • type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

  • type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is type:AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" }, "pointInTimeRecovery":{ "shape":"PointInTimeRecovery", - "documentation":"

Specifies if pointInTimeRecovery is enabled or disabled for the table. The options are:

ENABLED

DISABLED

If it's not specified, the default is DISABLED.

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Specifies if pointInTimeRecovery is enabled or disabled for the table. The options are:

  • status=ENABLED

  • status=DISABLED

If it's not specified, the default is status=DISABLED.

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.

" }, "ttl":{ "shape":"TimeToLive", - "documentation":"

Enables Time to Live custom settings for the table. The options are:

status:enabled

status:disabled

The default is status:disabled. After ttl is enabled, you can't disable it for the table.

For more information, see Expiring data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Enables Time to Live custom settings for the table. The options are:

  • status:enabled

  • status:disabled

The default is status:disabled. After ttl is enabled, you can't disable it for the table.

For more information, see Expiring data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer Guide.

" }, "defaultTimeToLive":{ "shape":"DefaultTimeToLive", @@ -438,6 +453,10 @@ "tags":{ "shape":"TagList", "documentation":"

A list of key-value pair tags to be attached to the resource.

For more information, see Adding tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer Guide.

" + }, + "clientSideTimestamps":{ + "shape":"ClientSideTimestamps", + "documentation":"

Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:

  • status: \"enabled\"

Once client-side timestamps are enabled for a table, this setting cannot be disabled.

" } } }, @@ -500,14 +519,14 @@ "members":{ "type":{ "shape":"EncryptionType", - "documentation":"

The encryption option specified for the table. You can choose one of the following KMS keys (KMS keys):

type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is type:AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" + "documentation":"

The encryption option specified for the table. You can choose one of the following KMS keys (KMS keys):

  • type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

  • type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is type:AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" }, "kmsKeyIdentifier":{ "shape":"kmsKeyARN", "documentation":"

The Amazon Resource Name (ARN) of the customer managed KMS key, for example kms_key_identifier:ARN.

" } }, - "documentation":"

Amazon Keyspaces encrypts and decrypts the table data at rest transparently and integrates with Key Management Service for storing and managing the encryption key. You can choose one of the following KMS keys (KMS keys):

• Amazon Web Services owned key - This is the default encryption type. The key is owned by Amazon Keyspaces (no additional charge).

• Customer managed key - This key is stored in your account and is created, owned, and managed by you. You have full control over the customer managed key (KMS charges apply).

For more information about encryption at rest in Amazon Keyspaces, see Encryption at rest in the Amazon Keyspaces Developer Guide.

For more information about KMS, see KMS management service concepts in the Key Management Service Developer Guide.

" + "documentation":"

Amazon Keyspaces encrypts and decrypts the table data at rest transparently and integrates with Key Management Service for storing and managing the encryption key. You can choose one of the following KMS keys (KMS keys):

  • Amazon Web Services owned key - This is the default encryption type. The key is owned by Amazon Keyspaces (no additional charge).

  • Customer managed key - This key is stored in your account and is created, owned, and managed by you. You have full control over the customer managed key (KMS charges apply).

For more information about encryption at rest in Amazon Keyspaces, see Encryption at rest in the Amazon Keyspaces Developer Guide.

For more information about KMS, see KMS management service concepts in the Key Management Service Developer Guide.

" }, "EncryptionType":{ "type":"string", @@ -595,7 +614,7 @@ }, "capacitySpecification":{ "shape":"CapacitySpecificationSummary", - "documentation":"

The read/write throughput capacity mode for a table. The options are:

throughputMode:PAY_PER_REQUEST

throughputMode:PROVISIONED

" + "documentation":"

The read/write throughput capacity mode for a table. The options are:

  • throughputMode:PAY_PER_REQUEST

  • throughputMode:PROVISIONED

" }, "encryptionSpecification":{ "shape":"EncryptionSpecification", @@ -611,11 +630,15 @@ }, "defaultTimeToLive":{ "shape":"DefaultTimeToLive", - "documentation":"

The default Time to Live settings of the specified table.

" + "documentation":"

The default Time to Live settings in seconds of the specified table.

" }, "comment":{ "shape":"Comment", "documentation":"

The the description of the specified table.

" + }, + "clientSideTimestamps":{ + "shape":"ClientSideTimestamps", + "documentation":"

The client-side timestamps setting of the table.

" } } }, @@ -778,7 +801,7 @@ "members":{ "status":{ "shape":"PointInTimeRecoveryStatus", - "documentation":"

The options are:

ENABLED

DISABLED

" + "documentation":"

The options are:

  • status=ENABLED

  • status=DISABLED

" } }, "documentation":"

Point-in-time recovery (PITR) helps protect your Amazon Keyspaces tables from accidental write or delete operations by providing you continuous backups of your table data.

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.

" @@ -848,15 +871,15 @@ }, "capacitySpecificationOverride":{ "shape":"CapacitySpecification", - "documentation":"

Specifies the read/write throughput capacity mode for the target table. The options are:

throughputMode:PAY_PER_REQUEST

throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Specifies the read/write throughput capacity mode for the target table. The options are:

  • throughputMode:PAY_PER_REQUEST

  • throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" }, "encryptionSpecificationOverride":{ "shape":"EncryptionSpecification", - "documentation":"

Specifies the encryption settings for the target table. You can choose one of the following KMS key (KMS key):

type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is type:AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Specifies the encryption settings for the target table. You can choose one of the following KMS key (KMS key):

  • type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

  • type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is type:AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" }, "pointInTimeRecoveryOverride":{ "shape":"PointInTimeRecovery", - "documentation":"

Specifies the pointInTimeRecovery settings for the target table. The options are:

ENABLED

DISABLED

If it's not specified, the default is DISABLED.

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Specifies the pointInTimeRecovery settings for the target table. The options are:

  • status=ENABLED

  • status=DISABLED

If it's not specified, the default is status=DISABLED.

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.

" }, "tagsOverride":{ "shape":"TagList", @@ -1094,27 +1117,31 @@ }, "addColumns":{ "shape":"ColumnDefinitionList", - "documentation":"

For each column to be added to the specified table:

name - The name of the column.

type - An Amazon Keyspaces data type. For more information, see Data types in the Amazon Keyspaces Developer Guide.

" + "documentation":"

For each column to be added to the specified table:

  • name - The name of the column.

  • type - An Amazon Keyspaces data type. For more information, see Data types in the Amazon Keyspaces Developer Guide.

" }, "capacitySpecification":{ "shape":"CapacitySpecification", - "documentation":"

Modifies the read/write throughput capacity mode for the table. The options are:

throughputMode:PAY_PER_REQUEST and

throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Modifies the read/write throughput capacity mode for the table. The options are:

  • throughputMode:PAY_PER_REQUEST and

  • throughputMode:PROVISIONED - Provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as input.

The default is throughput_mode:PAY_PER_REQUEST.

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.

" }, "encryptionSpecification":{ "shape":"EncryptionSpecification", - "documentation":"

Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):

type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):

  • type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces.

  • type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is created, owned, and managed by you. This option requires the kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as input.

The default is AWS_OWNED_KMS_KEY.

For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.

" }, "pointInTimeRecovery":{ "shape":"PointInTimeRecovery", - "documentation":"

Modifies the pointInTimeRecovery settings of the table. The options are:

ENABLED

DISABLED

If it's not specified, the default is DISABLED.

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Modifies the pointInTimeRecovery settings of the table. The options are:

  • status=ENABLED

  • status=DISABLED

If it's not specified, the default is status=DISABLED.

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.

" }, "ttl":{ "shape":"TimeToLive", - "documentation":"

Modifies Time to Live custom settings for the table. The options are:

status:enabled

status:disabled

The default is status:disabled. After ttl is enabled, you can't disable it for the table.

For more information, see Expiring data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Modifies Time to Live custom settings for the table. The options are:

  • status:enabled

  • status:disabled

The default is status:disabled. After ttl is enabled, you can't disable it for the table.

For more information, see Expiring data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer Guide.

" }, "defaultTimeToLive":{ "shape":"DefaultTimeToLive", "documentation":"

The default Time to Live setting in seconds for the table.

For more information, see Setting the default TTL value for a table in the Amazon Keyspaces Developer Guide.

" + }, + "clientSideTimestamps":{ + "shape":"ClientSideTimestamps", + "documentation":"

Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:

  • status: \"enabled\"

Once client-side timestamps are enabled for a table, this setting cannot be disabled.

" } } }, @@ -1142,5 +1169,5 @@ "min":1 } }, - "documentation":"

Amazon Keyspaces (for Apache Cassandra) is a scalable, highly available, and managed Apache Cassandra-compatible database service. Amazon Keyspaces makes it easy to migrate, run, and scale Cassandra workloads in the Amazon Web Services Cloud. With just a few clicks on the Amazon Web Services Management Console or a few lines of code, you can create keyspaces and tables in Amazon Keyspaces, without deploying any infrastructure or installing software.

In addition to supporting Cassandra Query Language (CQL) requests via open-source Cassandra drivers, Amazon Keyspaces supports data definition language (DDL) operations to manage keyspaces and tables using the Amazon Web Services SDK and CLI. This API reference describes the supported DDL operations in detail.

For the list of all supported CQL APIs, see Supported Cassandra APIs, operations, and data types in Amazon Keyspaces in the Amazon Keyspaces Developer Guide.

To learn how Amazon Keyspaces API actions are recorded with CloudTrail, see Amazon Keyspaces information in CloudTrail in the Amazon Keyspaces Developer Guide.

For more information about Amazon Web Services APIs, for example how to implement retry logic or how to sign Amazon Web Services API requests, see Amazon Web Services APIs in the General Reference.

" + "documentation":"

Amazon Keyspaces (for Apache Cassandra) is a scalable, highly available, and managed Apache Cassandra-compatible database service. Amazon Keyspaces makes it easy to migrate, run, and scale Cassandra workloads in the Amazon Web Services Cloud. With just a few clicks on the Amazon Web Services Management Console or a few lines of code, you can create keyspaces and tables in Amazon Keyspaces, without deploying any infrastructure or installing software.

In addition to supporting Cassandra Query Language (CQL) requests via open-source Cassandra drivers, Amazon Keyspaces supports data definition language (DDL) operations to manage keyspaces and tables using the Amazon Web Services SDK and CLI, as well as infrastructure as code (IaC) services and tools such as CloudFormation and Terraform. This API reference describes the supported DDL operations in detail.

For the list of all supported CQL APIs, see Supported Cassandra APIs, operations, and data types in Amazon Keyspaces in the Amazon Keyspaces Developer Guide.

To learn how Amazon Keyspaces API actions are recorded with CloudTrail, see Amazon Keyspaces information in CloudTrail in the Amazon Keyspaces Developer Guide.

For more information about Amazon Web Services APIs, for example how to implement retry logic or how to sign Amazon Web Services API requests, see Amazon Web Services APIs in the General Reference.

" } diff --git a/services/kinesis/pom.xml b/services/kinesis/pom.xml index 2f8ed64675d5..ec5f5876f87d 100644 --- a/services/kinesis/pom.xml +++ b/services/kinesis/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kinesis AWS Java SDK :: Services :: Amazon Kinesis diff --git a/services/kinesisanalytics/pom.xml b/services/kinesisanalytics/pom.xml index 79126c80ad8c..bd0c5b4d8999 100644 --- a/services/kinesisanalytics/pom.xml +++ b/services/kinesisanalytics/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kinesisanalytics AWS Java SDK :: Services :: Amazon Kinesis Analytics diff --git a/services/kinesisanalyticsv2/pom.xml b/services/kinesisanalyticsv2/pom.xml index 2e6b9eeea9b0..418751044386 100644 --- a/services/kinesisanalyticsv2/pom.xml +++ b/services/kinesisanalyticsv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kinesisanalyticsv2 AWS Java SDK :: Services :: Kinesis Analytics V2 diff --git a/services/kinesisvideo/pom.xml b/services/kinesisvideo/pom.xml index 839179c47add..148194662e4c 100644 --- a/services/kinesisvideo/pom.xml +++ b/services/kinesisvideo/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 kinesisvideo diff --git a/services/kinesisvideoarchivedmedia/pom.xml b/services/kinesisvideoarchivedmedia/pom.xml index 837840e519f7..30c3cfd0967e 100644 --- a/services/kinesisvideoarchivedmedia/pom.xml +++ b/services/kinesisvideoarchivedmedia/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kinesisvideoarchivedmedia AWS Java SDK :: Services :: Kinesis Video Archived Media diff --git a/services/kinesisvideomedia/pom.xml b/services/kinesisvideomedia/pom.xml index cc2d02034c91..42f83b3ced5c 100644 --- a/services/kinesisvideomedia/pom.xml +++ b/services/kinesisvideomedia/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kinesisvideomedia AWS Java SDK :: Services :: Kinesis Video Media diff --git a/services/kinesisvideosignaling/pom.xml b/services/kinesisvideosignaling/pom.xml index dd97fbc1acc9..bf2d32e68e77 100644 --- a/services/kinesisvideosignaling/pom.xml +++ b/services/kinesisvideosignaling/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kinesisvideosignaling AWS Java SDK :: Services :: Kinesis Video Signaling diff --git a/services/kinesisvideowebrtcstorage/pom.xml b/services/kinesisvideowebrtcstorage/pom.xml index 7cf9671df096..886ea3eb59fe 100644 --- a/services/kinesisvideowebrtcstorage/pom.xml +++ b/services/kinesisvideowebrtcstorage/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kinesisvideowebrtcstorage AWS Java SDK :: Services :: Kinesis Video Web RTC Storage diff --git a/services/kms/pom.xml b/services/kms/pom.xml index 10d5b7aac167..b3102cbddce1 100644 --- a/services/kms/pom.xml +++ b/services/kms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT kms AWS Java SDK :: Services :: AWS KMS diff --git a/services/kms/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/kms/src/main/resources/codegen-resources/endpoint-rule-set.json index 7e3838f63319..64b8c61c24df 100644 --- a/services/kms/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/kms/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://kms-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://kms.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://kms.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/kms/src/main/resources/codegen-resources/endpoint-tests.json b/services/kms/src/main/resources/codegen-resources/endpoint-tests.json index f45c01f0c149..48ad4fc1be53 100644 --- a/services/kms/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/kms/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1721 +1,808 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-south-2.api.aws" + "url": "https://kms.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-2" + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" } }, { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-south-2.amazonaws.com" + "url": "https://kms-fips.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-south-2" + "UseFIPS": true, + "Region": "af-south-1" } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-south-2.api.aws" + "url": "https://kms.ap-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-2" + "Region": "ap-east-1" } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-south-2.amazonaws.com" + "url": "https://kms-fips.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-south-2" + "UseFIPS": true, + "Region": "ap-east-1" } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-south-1.api.aws" + "url": "https://kms.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-south-1.amazonaws.com" + "url": "https://kms-fips.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-south-1" + "UseFIPS": true, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-south-1.api.aws" + "url": "https://kms.ap-northeast-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" + "Region": "ap-northeast-2" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-south-1.amazonaws.com" + "url": "https://kms-fips.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-south-1" + "UseFIPS": true, + "Region": "ap-northeast-2" } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.eu-south-1.api.aws" + "url": "https://kms.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.eu-south-1.amazonaws.com" + "url": "https://kms-fips.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-south-1" + "UseFIPS": true, + "Region": "ap-northeast-3" } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.eu-south-1.api.aws" + "url": "https://kms.ap-south-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-1" + "Region": "ap-south-1" } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.eu-south-1.amazonaws.com" + "url": "https://kms-fips.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "eu-south-1" + "UseFIPS": true, + "Region": "ap-south-1" } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.eu-south-2.api.aws" + "url": "https://kms.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-south-2" + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.eu-south-2.amazonaws.com" + "url": "https://kms-fips.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-south-2" + "UseFIPS": true, + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.eu-south-2.api.aws" + "url": "https://kms.ap-southeast-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-south-2" + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.eu-south-2.amazonaws.com" + "url": "https://kms-fips.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "eu-south-2" + "UseFIPS": true, + "Region": "ap-southeast-2" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.us-gov-east-1.api.aws" + "url": "https://kms.ap-southeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.us-gov-east-1.amazonaws.com" + "url": "https://kms-fips.ap-southeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-gov-east-1" + "UseFIPS": true, + "Region": "ap-southeast-3" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.us-gov-east-1.api.aws" + "url": "https://kms.ca-central-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "Region": "ca-central-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.us-gov-east-1.amazonaws.com" + "url": "https://kms-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "UseFIPS": true, + "Region": "ca-central-1" } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.me-central-1.api.aws" + "url": "https://kms.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-central-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.me-central-1.amazonaws.com" + "url": "https://kms-fips.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "me-central-1" + "UseFIPS": true, + "Region": "eu-central-1" } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.me-central-1.api.aws" + "url": "https://kms.eu-north-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "me-central-1" + "Region": "eu-north-1" } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.me-central-1.amazonaws.com" + "url": "https://kms-fips.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "me-central-1" + "UseFIPS": true, + "Region": "eu-north-1" } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ca-central-1.api.aws" + "url": "https://kms.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ca-central-1.amazonaws.com" + "url": "https://kms-fips.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ca-central-1" + "UseFIPS": true, + "Region": "eu-south-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ca-central-1.api.aws" + "url": "https://kms.eu-west-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" + "Region": "eu-west-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ca-central-1.amazonaws.com" + "url": "https://kms-fips.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ca-central-1" + "UseFIPS": true, + "Region": "eu-west-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.eu-central-1.api.aws" + "url": "https://kms.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.eu-central-1.amazonaws.com" + "url": "https://kms-fips.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-1" + "UseFIPS": true, + "Region": "eu-west-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.eu-central-1.api.aws" + "url": "https://kms.eu-west-3.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" + "Region": "eu-west-3" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.eu-central-1.amazonaws.com" + "url": "https://kms-fips.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1" + "UseFIPS": true, + "Region": "eu-west-3" } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://kms.me-south-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-west-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.us-iso-west-1.c2s.ic.gov" + "url": "https://kms-fips.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-iso-west-1" + "UseFIPS": true, + "Region": "me-south-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://kms.sa-east-1.amazonaws.com" + } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-west-1" + "Region": "sa-east-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.us-iso-west-1.c2s.ic.gov" + "url": "https://kms-fips.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-west-1" + "UseFIPS": true, + "Region": "sa-east-1" } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.ap-southeast-1.api.aws" + "url": "https://kms.us-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-southeast-1.amazonaws.com" + "url": "https://kms-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1" + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-southeast-2.api.aws" + "url": "https://kms.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-southeast-2.amazonaws.com" + "url": "https://kms-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2" + "UseFIPS": true, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-southeast-2.api.aws" + "url": "https://kms.us-west-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-southeast-2.amazonaws.com" + "url": "https://kms-fips.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-iso-east-1" + "Region": "us-west-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://kms.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-iso-east-1" + "Region": "us-west-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.us-iso-east-1.c2s.ic.gov" + "url": "https://kms-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-east-1" + "UseFIPS": true, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-southeast-3.api.aws" + "url": "https://kms-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-3" + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-southeast-3.amazonaws.com" + "url": "https://kms.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-3" + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-southeast-3.api.aws" + "url": "https://kms.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-3" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-southeast-3.amazonaws.com" + "url": "https://kms.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-3" + "UseFIPS": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-southeast-4.api.aws" + "url": "https://kms-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-4" + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.ap-southeast-4.amazonaws.com" + "url": "https://kms-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-4" + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kms.ap-southeast-4.api.aws" + "url": "https://kms.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-4" + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.ap-southeast-4.amazonaws.com" + "url": "https://kms.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-4" + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.us-east-1.api.aws" + "url": "https://kms-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.us-east-1.amazonaws.com" + "url": "https://kms.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms.us-east-1.api.aws" - } - }, - "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.us-east-1.amazonaws.com" + "url": "https://kms-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://kms-fips.us-east-2.api.aws" - } - }, - "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kms-fips.us-east-2.amazonaws.com" + "url": "https://kms-fips.us-gov-east-1.api.aws" } }, "params": { + "UseDualStack": true, "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://kms.us-east-2.api.aws" + "url": "https://kms.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-2" + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.us-east-2.amazonaws.com" + "url": "https://kms.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2" + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://kms-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://kms.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "cn-northwest-1" + "UseFIPS": false, + "Region": "us-iso-west-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://kms-fips.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-northwest-1" + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://kms.cn-northwest-1.amazonaws.com.cn" + "url": "https://kms.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, + "UseFIPS": false, "Region": "us-isob-east-1" } }, @@ -1727,46 +814,35 @@ } }, "params": { - "UseFIPS": true, "UseDualStack": false, + "UseFIPS": true, "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-isob-east-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://kms.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1" + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -1776,8 +852,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "UseDualStack": false, + "UseFIPS": true, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -1788,8 +864,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "UseDualStack": true, + "UseFIPS": false, "Region": "us-east-1", "Endpoint": "https://example.com" } diff --git a/services/kms/src/main/resources/codegen-resources/service-2.json b/services/kms/src/main/resources/codegen-resources/service-2.json index 36cbf7bfe4bc..7b429732b67c 100644 --- a/services/kms/src/main/resources/codegen-resources/service-2.json +++ b/services/kms/src/main/resources/codegen-resources/service-2.json @@ -159,7 +159,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Decrypts ciphertext that was encrypted by a KMS key using any of the following operations:

You can use this operation to decrypt ciphertext that was encrypted under a symmetric encryption KMS key or an asymmetric encryption KMS key. When the KMS key is asymmetric, you must specify the KMS key and the encryption algorithm that was used to encrypt the ciphertext. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

The Decrypt operation also decrypts ciphertext that was encrypted outside of KMS by the public key in an KMS asymmetric KMS key. However, it cannot decrypt symmetric ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

If the ciphertext was encrypted under a symmetric encryption KMS key, the KeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the KMS key is always recommended as a best practice. When you use the KeyId parameter to specify a KMS key, KMS only uses the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the Decrypt operation fails. This practice ensures that you use the KMS key that you intend.

Whenever possible, use key policies to give users permission to call the Decrypt operation on a particular KMS key, instead of using IAM policies. Otherwise, you might create an IAM user policy that gives the user Decrypt permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys in other accounts if the key policy for the cross-account KMS key permits it. If you must use an IAM policy for Decrypt permissions, limit the user to particular KMS keys or particular trusted accounts. For details, see Best practices for IAM policies in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Decrypt (key policy)

Related operations:

" + "documentation":"

Decrypts ciphertext that was encrypted by a KMS key using any of the following operations:

You can use this operation to decrypt ciphertext that was encrypted under a symmetric encryption KMS key or an asymmetric encryption KMS key. When the KMS key is asymmetric, you must specify the KMS key and the encryption algorithm that was used to encrypt the ciphertext. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

The Decrypt operation also decrypts ciphertext that was encrypted outside of KMS by the public key in an KMS asymmetric KMS key. However, it cannot decrypt symmetric ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

If the ciphertext was encrypted under a symmetric encryption KMS key, the KeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the KMS key is always recommended as a best practice. When you use the KeyId parameter to specify a KMS key, KMS only uses the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the Decrypt operation fails. This practice ensures that you use the KMS key that you intend.

Whenever possible, use key policies to give users permission to call the Decrypt operation on a particular KMS key, instead of using &IAM; policies. Otherwise, you might create an &IAM; policy that gives the user Decrypt permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys in other accounts if the key policy for the cross-account KMS key permits it. If you must use an IAM policy for Decrypt permissions, limit the user to particular KMS keys or particular trusted accounts. For details, see Best practices for IAM policies in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. If you use the KeyId parameter to identify a KMS key in a different Amazon Web Services account, specify the key ARN or the alias ARN of the KMS key.

Required permissions: kms:Decrypt (key policy)

Related operations:

" }, "DeleteAlias":{ "name":"DeleteAlias", @@ -362,7 +362,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Returns a unique symmetric data key for use outside of KMS. This operation returns a plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS key that you specify. The bytes in the plaintext key are random; they are not related to the caller or the KMS key. You can use the plaintext key to encrypt your data outside of KMS and store the encrypted data key with the encrypted data.

To generate a data key, specify the symmetric encryption KMS key that will be used to encrypt the data key. You cannot use an asymmetric KMS key to encrypt data keys. To get the type of your KMS key, use the DescribeKey operation.

You must also specify the length of the data key. Use either the KeySpec or NumberOfBytes parameters (but not both). For 128-bit and 256-bit data keys, use the KeySpec parameter.

To generate an SM4 data key (China Regions only), specify a KeySpec value of AES_128 or NumberOfBytes value of 128. The symmetric encryption key used in China Regions to encrypt your data key is an SM4 encryption key.

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure random byte string, use GenerateRandom.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

How to use your data key

We recommend that you use the following pattern to encrypt data locally in your application. You can write your own code or use a client-side encryption library, such as the Amazon Web Services Encryption SDK, the Amazon DynamoDB Encryption Client, or Amazon S3 client-side encryption to do these tasks for you.

To encrypt data outside of KMS:

  1. Use the GenerateDataKey operation to get a data key.

  2. Use the plaintext data key (in the Plaintext field of the response) to encrypt your data outside of KMS. Then erase the plaintext data key from memory.

  3. Store the encrypted data key (in the CiphertextBlob field of the response) with the encrypted data.

To decrypt data outside of KMS:

  1. Use the Decrypt operation to decrypt the encrypted data key. The operation returns a plaintext copy of the data key.

  2. Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext data key from memory.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKey (key policy)

Related operations:

" + "documentation":"

Returns a unique symmetric data key for use outside of KMS. This operation returns a plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS key that you specify. The bytes in the plaintext key are random; they are not related to the caller or the KMS key. You can use the plaintext key to encrypt your data outside of KMS and store the encrypted data key with the encrypted data.

To generate a data key, specify the symmetric encryption KMS key that will be used to encrypt the data key. You cannot use an asymmetric KMS key to encrypt data keys. To get the type of your KMS key, use the DescribeKey operation.

You must also specify the length of the data key. Use either the KeySpec or NumberOfBytes parameters (but not both). For 128-bit and 256-bit data keys, use the KeySpec parameter.

To generate a 128-bit SM4 data key (China Regions only), specify a KeySpec value of AES_128 or a NumberOfBytes value of 16. The symmetric encryption key used in China Regions to encrypt your data key is an SM4 encryption key.

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure random byte string, use GenerateRandom.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

How to use your data key

We recommend that you use the following pattern to encrypt data locally in your application. You can write your own code or use a client-side encryption library, such as the Amazon Web Services Encryption SDK, the Amazon DynamoDB Encryption Client, or Amazon S3 client-side encryption to do these tasks for you.

To encrypt data outside of KMS:

  1. Use the GenerateDataKey operation to get a data key.

  2. Use the plaintext data key (in the Plaintext field of the response) to encrypt your data outside of KMS. Then erase the plaintext data key from memory.

  3. Store the encrypted data key (in the CiphertextBlob field of the response) with the encrypted data.

To decrypt data outside of KMS:

  1. Use the Decrypt operation to decrypt the encrypted data key. The operation returns a plaintext copy of the data key.

  2. Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext data key from memory.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKey (key policy)

Related operations:

" }, "GenerateDataKeyPair":{ "name":"GenerateDataKeyPair", @@ -925,7 +925,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"KMSInvalidSignatureException"} ], - "documentation":"

Verifies a digital signature that was generated by the Sign operation.

Verification confirms that an authorized user signed the message with the specified KMS key and signing algorithm, and the message hasn't changed since it was signed. If the signature is verified, the value of the SignatureValid field in the response is True. If the signature verification fails, the Verify operation fails with an KMSInvalidSignatureException exception.

A digital signature is generated by using the private key in an asymmetric KMS key. The signature is verified by using the public key in the same asymmetric KMS key. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

To verify a digital signature, you can use the Verify operation. Specify the same asymmetric KMS key, message, and signing algorithm that were used to produce the signature.

You can also verify the digital signature by using the public key of the KMS key outside of KMS. Use the GetPublicKey operation to download the public key in the asymmetric KMS key and then use the public key to verify the signature outside of KMS. The advantage of using the Verify operation is that it is performed within KMS. As a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use the KMS key to verify signatures.

To verify a signature outside of KMS with an SM2 public key (China Regions only), you must specify the distinguishing ID. By default, KMS uses 1234567812345678 as the distinguishing ID. For more information, see Offline verification with SM2 key pairs.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Verify (key policy)

Related operations: Sign

" + "documentation":"

Verifies a digital signature that was generated by the Sign operation.

Verification confirms that an authorized user signed the message with the specified KMS key and signing algorithm, and the message hasn't changed since it was signed. If the signature is verified, the value of the SignatureValid field in the response is True. If the signature verification fails, the Verify operation fails with an KMSInvalidSignatureException exception.

A digital signature is generated by using the private key in an asymmetric KMS key. The signature is verified by using the public key in the same asymmetric KMS key. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

To use the Verify operation, specify the same asymmetric KMS key, message, and signing algorithm that were used to produce the signature. The message type does not need to be the same as the one used for signing, but it must indicate whether the value of the Message parameter should be hashed as part of the verification process.

You can also verify the digital signature by using the public key of the KMS key outside of KMS. Use the GetPublicKey operation to download the public key in the asymmetric KMS key and then use the public key to verify the signature outside of KMS. The advantage of using the Verify operation is that it is performed within KMS. As a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use the KMS key to verify signatures.

To verify a signature outside of KMS with an SM2 public key (China Regions only), you must specify the distinguishing ID. By default, KMS uses 1234567812345678 as the distinguishing ID. For more information, see Offline verification with SM2 key pairs.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Verify (key policy)

Related operations: Sign

" }, "VerifyMac":{ "name":"VerifyMac", @@ -1211,11 +1211,11 @@ }, "GranteePrincipal":{ "shape":"PrincipalIdType", - "documentation":"

The identity that gets the permissions specified in the grant.

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, IAM roles, federated users, and assumed role users. For examples of the ARN syntax to use for specifying a principal, see Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the Amazon Web Services General Reference.

" + "documentation":"

The identity that gets the permissions specified in the grant.

To specify the grantee principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

" }, "RetiringPrincipal":{ "shape":"PrincipalIdType", - "documentation":"

The principal that has permission to use the RetireGrant operation to retire the grant.

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated users, and assumed role users. For examples of the ARN syntax to use for specifying a principal, see Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the Amazon Web Services General Reference.

The grant determines the retiring principal. Other principals might have permission to retire the grant or revoke the grant. For details, see RevokeGrant and Retiring and revoking grants in the Key Management Service Developer Guide.

" + "documentation":"

The principal that has permission to use the RetireGrant operation to retire the grant.

To specify the principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

The grant determines the retiring principal. Other principals might have permission to retire the grant or revoke the grant. For details, see RevokeGrant and Retiring and revoking grants in the Key Management Service Developer Guide.

" }, "Operations":{ "shape":"GrantOperationList", @@ -1253,7 +1253,7 @@ "members":{ "Policy":{ "shape":"PolicyType", - "documentation":"

The key policy to attach to the KMS key.

If you provide a key policy, it must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the CreateKey request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide .

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

If you do not provide a key policy, KMS attaches a default key policy to the KMS key. For more information, see Default Key Policy in the Key Management Service Developer Guide.

The key policy size quota is 32 kilobytes (32768 bytes).

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" + "documentation":"

The key policy to attach to the KMS key.

If you provide a key policy, it must meet the following criteria:

  • The key policy must allow the calling principal to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, see Default key policy in the Key Management Service Developer Guide. (To omit this condition, set BypassPolicyLockoutSafetyCheck to true.)

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal, you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

If you do not provide a key policy, KMS attaches a default key policy to the KMS key. For more information, see Default key policy in the Key Management Service Developer Guide.

The key policy size quota is 32 kilobytes (32768 bytes).

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" }, "Description":{ "shape":"DescriptionType", @@ -1283,7 +1283,7 @@ }, "BypassPolicyLockoutSafetyCheck":{ "shape":"BooleanType", - "documentation":"

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide .

Use this parameter only when you include a policy in the request and you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

The default value is false.

" + "documentation":"

Skips (\"bypasses\") the key policy lockout safety check. The default value is false.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, see Default key policy in the Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

" }, "Tags":{ "shape":"TagList", @@ -2044,7 +2044,7 @@ }, "WrappingAlgorithm":{ "shape":"AlgorithmSpec", - "documentation":"

The algorithm you will use to encrypt the key material before importing it with ImportKeyMaterial. For more information, see Encrypt the Key Material in the Key Management Service Developer Guide.

" + "documentation":"

The algorithm you will use to encrypt the key material before using the ImportKeyMaterial operation to import it. For more information, see Encrypt the key material in the Key Management Service Developer Guide.

The RSAES_PKCS1_V1_5 wrapping algorithm is deprecated. We recommend that you begin using a different wrapping algorithm immediately. KMS will end support for RSAES_PKCS1_V1_5 by October 1, 2023 pursuant to cryptographic key management guidance from the National Institute of Standards and Technology (NIST).

" }, "WrappingKeySpec":{ "shape":"WrappingKeySpec", @@ -2778,7 +2778,7 @@ }, "RetiringPrincipal":{ "shape":"PrincipalIdType", - "documentation":"

The retiring principal for which to list grants. Enter a principal in your Amazon Web Services account.

To specify the retiring principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid Amazon Web Services principals include Amazon Web Services accounts (root), IAM users, federated users, and assumed role users. For examples of the ARN syntax for specifying a principal, see Amazon Web Services Identity and Access Management (IAM) in the Example ARNs section of the Amazon Web Services General Reference.

" + "documentation":"

The retiring principal for which to list grants. Enter a principal in your Amazon Web Services account.

To specify the retiring principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see IAM ARNs in the Identity and Access Management User Guide .

" } } }, @@ -2938,11 +2938,11 @@ }, "Policy":{ "shape":"PolicyType", - "documentation":"

The key policy to attach to the KMS key.

The key policy must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide.

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

A key policy document can include only the following characters:

  • Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

  • Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

  • The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

For information about key policies, see Key policies in KMS in the Key Management Service Developer Guide.For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" + "documentation":"

The key policy to attach to the KMS key.

The key policy must meet the following criteria:

  • The key policy must allow the calling principal to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, see Default key policy in the Key Management Service Developer Guide. (To omit this condition, set BypassPolicyLockoutSafetyCheck to true.)

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal, you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

A key policy document can include only the following characters:

  • Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

  • Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

  • The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

For information about key policies, see Key policies in KMS in the Key Management Service Developer Guide.For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" }, "BypassPolicyLockoutSafetyCheck":{ "shape":"BooleanType", - "documentation":"

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

The default value is false.

" + "documentation":"

Skips (\"bypasses\") the key policy lockout safety check. The default value is false.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, see Default key policy in the Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

" } } }, @@ -3035,11 +3035,11 @@ }, "Policy":{ "shape":"PolicyType", - "documentation":"

The key policy to attach to the KMS key. This parameter is optional. If you do not provide a key policy, KMS attaches the default key policy to the KMS key.

The key policy is not a shared property of multi-Region keys. You can specify the same key policy or a different key policy for each key in a set of related multi-Region keys. KMS does not synchronize this property.

If you provide a key policy, it must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must give the caller kms:PutKeyPolicy permission on the replica key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide .

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Identity and Access Management User Guide .

A key policy document can include only the following characters:

  • Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

  • Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

  • The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

For information about key policies, see Key policies in KMS in the Key Management Service Developer Guide. For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" + "documentation":"

The key policy to attach to the KMS key. This parameter is optional. If you do not provide a key policy, KMS attaches the default key policy to the KMS key.

The key policy is not a shared property of multi-Region keys. You can specify the same key policy or a different key policy for each key in a set of related multi-Region keys. KMS does not synchronize this property.

If you provide a key policy, it must meet the following criteria:

  • The key policy must allow the calling principal to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, see Default key policy in the Key Management Service Developer Guide. (To omit this condition, set BypassPolicyLockoutSafetyCheck to true.)

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal, you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

A key policy document can include only the following characters:

  • Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

  • Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

  • The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

For information about key policies, see Key policies in KMS in the Key Management Service Developer Guide. For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" }, "BypassPolicyLockoutSafetyCheck":{ "shape":"BooleanType", - "documentation":"

A flag to indicate whether to bypass the key policy lockout safety check.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, refer to the scenario in the Default Key Policy section in the Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

The default value is false.

" + "documentation":"

Skips (\"bypasses\") the key policy lockout safety check. The default value is false.

Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.

For more information, see Default key policy in the Key Management Service Developer Guide.

Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent PutKeyPolicy request on the KMS key.

" }, "Description":{ "shape":"DescriptionType", @@ -3151,11 +3151,11 @@ }, "Message":{ "shape":"PlaintextType", - "documentation":"

Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a larger message, provide the message digest.

If you provide a message, KMS generates a hash digest of the message and then signs it.

" + "documentation":"

Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a larger message, provide a message digest.

If you provide a message digest, use the DIGEST value of MessageType to prevent the digest from being hashed again while signing.

" }, "MessageType":{ "shape":"MessageType", - "documentation":"

Tells KMS whether the value of the Message parameter is a message or message digest. The default value, RAW, indicates a message. To indicate a message digest, enter DIGEST.

" + "documentation":"

Tells KMS whether the value of the Message parameter should be hashed as part of the signing algorithm. Use RAW for unhashed messages; use DIGEST for message digests, which are already hashed.

When the value of MessageType is RAW, KMS uses the standard signing algorithm, which begins with a hash function. When the value is DIGEST, KMS skips the hashing step in the signing algorithm.

Use the DIGEST value only when the value of the Message parameter is a message digest. If you use the DIGEST value with an unhashed message, the security of the signing operation can be compromised.

When the value of MessageTypeis DIGEST, the length of the Message value must match the length of hashed messages for the specified signing algorithm.

You can submit a message digest and omit the MessageType or specify RAW so the digest is hashed again while signing. However, this can cause verification failures when verifying with a system that assumes a single hash.

The hashing algorithm in that Sign uses is based on the SigningAlgorithm value.

  • Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.

  • Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.

  • Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.

  • SM2DSA uses the SM3 hashing algorithm. For details, see Offline verification with SM2 key pairs.

" }, "GrantTokens":{ "shape":"GrantTokenList", @@ -3163,7 +3163,7 @@ }, "SigningAlgorithm":{ "shape":"SigningAlgorithmSpec", - "documentation":"

Specifies the signing algorithm to use when signing the message.

Choose an algorithm that is compatible with the type and size of the specified asymmetric KMS key.

" + "documentation":"

Specifies the signing algorithm to use when signing the message.

Choose an algorithm that is compatible with the type and size of the specified asymmetric KMS key. When signing with RSA key pairs, RSASSA-PSS algorithms are preferred. We include RSASSA-PKCS1-v1_5 algorithms for compatibility with existing applications.

" } } }, @@ -3459,7 +3459,7 @@ }, "MessageType":{ "shape":"MessageType", - "documentation":"

Tells KMS whether the value of the Message parameter is a message or message digest. The default value, RAW, indicates a message. To indicate a message digest, enter DIGEST.

Use the DIGEST value only when the value of the Message parameter is a message digest. If you use the DIGEST value with a raw message, the security of the verification operation can be compromised.

" + "documentation":"

Tells KMS whether the value of the Message parameter should be hashed as part of the signing algorithm. Use RAW for unhashed messages; use DIGEST for message digests, which are already hashed.

When the value of MessageType is RAW, KMS uses the standard signing algorithm, which begins with a hash function. When the value is DIGEST, KMS skips the hashing step in the signing algorithm.

Use the DIGEST value only when the value of the Message parameter is a message digest. If you use the DIGEST value with an unhashed message, the security of the verification operation can be compromised.

When the value of MessageTypeis DIGEST, the length of the Message value must match the length of hashed messages for the specified signing algorithm.

You can submit a message digest and omit the MessageType or specify RAW so the digest is hashed again while signing. However, if the signed message is hashed once while signing, but twice while verifying, verification fails, even when the message hasn't changed.

The hashing algorithm in that Verify uses is based on the SigningAlgorithm value.

  • Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.

  • Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.

  • Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.

  • SM2DSA uses the SM3 hashing algorithm. For details, see Offline verification with SM2 key pairs.

" }, "Signature":{ "shape":"CiphertextType", @@ -3692,5 +3692,5 @@ "exception":true } }, - "documentation":"Key Management Service

Key Management Service (KMS) is an encryption and key management web service. This guide describes the KMS operations that you can call programmatically. For general information about KMS, see the Key Management Service Developer Guide .

KMS has replaced the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to KMS and other Amazon Web Services services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

If you need to use FIPS 140-2 validated cryptographic modules when communicating with Amazon Web Services, use the FIPS endpoint in your preferred Amazon Web Services Region. For more information about the available FIPS endpoints, see Service endpoints in the Key Management Service topic of the Amazon Web Services General Reference.

All KMS API calls must be signed and be transmitted using Transport Layer Security (TLS). KMS recommends you always use the latest supported TLS version. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.

Signing Requests

Requests must be signed by using an access key ID and a secret access key. We strongly recommend that you do not use your Amazon Web Services account (root) access key ID and secret access key for everyday work with KMS. Instead, use the access key ID and secret access key for an IAM user. You can also use the Amazon Web Services Security Token Service to generate temporary security credentials that you can use to sign requests.

All KMS operations require Signature Version 4.

Logging API Requests

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the CloudTrail User Guide.

Additional Resources

For more information about credentials and request signing, see the following:

Commonly Used API Operations

Of the API operations discussed in this guide, the following will prove the most useful for most applications. You will likely perform operations other than these, such as creating keys and assigning policies, by using the console.

" + "documentation":"Key Management Service

Key Management Service (KMS) is an encryption and key management web service. This guide describes the KMS operations that you can call programmatically. For general information about KMS, see the Key Management Service Developer Guide .

KMS has replaced the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to KMS and other Amazon Web Services services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

If you need to use FIPS 140-2 validated cryptographic modules when communicating with Amazon Web Services, use the FIPS endpoint in your preferred Amazon Web Services Region. For more information about the available FIPS endpoints, see Service endpoints in the Key Management Service topic of the Amazon Web Services General Reference.

All KMS API calls must be signed and be transmitted using Transport Layer Security (TLS). KMS recommends you always use the latest supported TLS version. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.

Signing Requests

Requests must be signed using an access key ID and a secret access key. We strongly recommend that you do not use your Amazon Web Services account root access key ID and secret access key for everyday work. You can use the access key ID and secret access key for an IAM user or you can use the Security Token Service (STS) to generate temporary security credentials and use those to sign requests.

All KMS requests must be signed with Signature Version 4.

Logging API Requests

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the CloudTrail User Guide.

Additional Resources

For more information about credentials and request signing, see the following:

Commonly Used API Operations

Of the API operations discussed in this guide, the following will prove the most useful for most applications. You will likely perform operations other than these, such as creating keys and assigning policies, by using the console.

" } diff --git a/services/lakeformation/pom.xml b/services/lakeformation/pom.xml index 5a7b1414465b..160d190ca944 100644 --- a/services/lakeformation/pom.xml +++ b/services/lakeformation/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lakeformation AWS Java SDK :: Services :: LakeFormation diff --git a/services/lakeformation/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/lakeformation/src/main/resources/codegen-resources/endpoint-rule-set.json index 1fe334dffa23..3c84318cfc7a 100644 --- a/services/lakeformation/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/lakeformation/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lakeformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://lakeformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lakeformation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://lakeformation-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lakeformation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://lakeformation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://lakeformation.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://lakeformation.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/lakeformation/src/main/resources/codegen-resources/endpoint-tests.json b/services/lakeformation/src/main/resources/codegen-resources/endpoint-tests.json index 3443deced946..5f2a3137aae1 100644 --- a/services/lakeformation/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/lakeformation/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { + "UseFIPS": false, "Region": "af-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -21,9 +21,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-northeast-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -47,9 +47,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-northeast-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-northeast-3", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -73,9 +73,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-southeast-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -99,9 +99,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ap-southeast-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -112,9 +112,9 @@ } }, "params": { + "UseFIPS": false, "Region": "ca-central-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -125,9 +125,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-central-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -138,9 +138,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-north-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -151,9 +151,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -164,9 +164,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -177,9 +177,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-west-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -190,9 +190,9 @@ } }, "params": { + "UseFIPS": false, "Region": "eu-west-3", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -203,9 +203,9 @@ } }, "params": { + "UseFIPS": false, "Region": "me-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -216,9 +216,9 @@ } }, "params": { + "UseFIPS": false, "Region": "sa-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -229,9 +229,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -242,9 +242,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -255,9 +255,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-east-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -268,9 +268,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-east-2", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -281,9 +281,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -294,9 +294,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-west-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -307,9 +307,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -320,9 +320,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -333,9 +333,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": true + "UseDualStack": true } }, { @@ -346,9 +346,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": false + "UseDualStack": true } }, { @@ -359,9 +359,9 @@ } }, "params": { + "UseFIPS": false, "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -372,9 +372,9 @@ } }, "params": { + "UseFIPS": false, "Region": "cn-northwest-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -385,9 +385,9 @@ } }, "params": { + "UseFIPS": true, "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true + "UseDualStack": true } }, { @@ -398,9 +398,9 @@ } }, "params": { + "UseFIPS": true, "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -411,9 +411,9 @@ } }, "params": { + "UseFIPS": false, "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": false + "UseDualStack": true } }, { @@ -424,9 +424,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -437,9 +437,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -450,9 +450,9 @@ } }, "params": { + "UseFIPS": false, "Region": "us-gov-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { @@ -463,9 +463,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-gov-west-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false } }, { @@ -476,9 +476,9 @@ } }, "params": { + "UseFIPS": true, "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": true + "UseDualStack": true } }, { @@ -489,9 +489,20 @@ } }, "params": { + "UseFIPS": false, "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": false + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -502,9 +513,20 @@ } }, "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, "Region": "us-iso-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": true } }, { @@ -515,9 +537,20 @@ } }, "params": { + "UseFIPS": false, "Region": "us-iso-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -528,9 +561,20 @@ } }, "params": { + "UseFIPS": true, "Region": "us-isob-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -541,22 +585,35 @@ } }, "params": { + "UseFIPS": false, "Region": "us-isob-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseFIPS": false, "Region": "us-east-1", "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -566,9 +623,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -578,11 +635,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/lakeformation/src/main/resources/codegen-resources/service-2.json b/services/lakeformation/src/main/resources/codegen-resources/service-2.json index a9f23d3d07b9..befadf7afce6 100644 --- a/services/lakeformation/src/main/resources/codegen-resources/service-2.json +++ b/services/lakeformation/src/main/resources/codegen-resources/service-2.json @@ -270,6 +270,23 @@ ], "documentation":"

Indicates to the service that the specified transaction is still active and should not be treated as idle and aborted.

Write transactions that remain idle for a long period are automatically aborted unless explicitly extended.

" }, + "GetDataCellsFilter":{ + "name":"GetDataCellsFilter", + "http":{ + "method":"POST", + "requestUri":"/GetDataCellsFilter" + }, + "input":{"shape":"GetDataCellsFilterRequest"}, + "output":{"shape":"GetDataCellsFilterResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns a data cells filter.

" + }, "GetDataLakeSettings":{ "name":"GetDataLakeSettings", "http":{ @@ -479,7 +496,7 @@ {"shape":"EntityNotFoundException"}, {"shape":"InvalidInputException"} ], - "documentation":"

Grants permissions to the principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3.

For information about permissions, see Security and Access Control to Metadata and Data.

" + "documentation":"

Grants permissions to the principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3.

For information about permissions, see Security and Access Control to Metadata and Data.

" }, "ListDataCellsFilter":{ "name":"ListDataCellsFilter", @@ -710,6 +727,24 @@ ], "documentation":"

Starts a new transaction and returns its transaction ID. Transaction IDs are opaque objects that you can use to identify a transaction.

" }, + "UpdateDataCellsFilter":{ + "name":"UpdateDataCellsFilter", + "http":{ + "method":"POST", + "requestUri":"/UpdateDataCellsFilter" + }, + "input":{"shape":"UpdateDataCellsFilterRequest"}, + "output":{"shape":"UpdateDataCellsFilterResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a data cell filter.

" + }, "UpdateLFTag":{ "name":"UpdateLFTag", "http":{ @@ -1224,6 +1259,10 @@ "ColumnWildcard":{ "shape":"ColumnWildcard", "documentation":"

A wildcard with exclusions.

You must specify either a ColumnNames list or the ColumnWildCard.

" + }, + "VersionId":{ + "shape":"VersionString", + "documentation":"

The ID of the data cells filter version.

" } }, "documentation":"

A structure that describes certain columns on certain rows.

" @@ -1547,7 +1586,7 @@ "documentation":"

A message describing the problem.

" } }, - "documentation":"

A specified entity does not exist

", + "documentation":"

A specified entity does not exist.

", "exception":true }, "ErrorDetail":{ @@ -1649,6 +1688,42 @@ "max":20, "min":1 }, + "GetDataCellsFilterRequest":{ + "type":"structure", + "required":[ + "TableCatalogId", + "DatabaseName", + "TableName", + "Name" + ], + "members":{ + "TableCatalogId":{ + "shape":"CatalogIdString", + "documentation":"

The ID of the catalog to which the table belongs.

" + }, + "DatabaseName":{ + "shape":"NameString", + "documentation":"

A database in the Glue Data Catalog.

" + }, + "TableName":{ + "shape":"NameString", + "documentation":"

A table in the database.

" + }, + "Name":{ + "shape":"NameString", + "documentation":"

The name given by the user to the data filter cell.

" + } + } + }, + "GetDataCellsFilterResponse":{ + "type":"structure", + "members":{ + "DataCellsFilter":{ + "shape":"DataCellsFilter", + "documentation":"

A structure that describes certain columns on certain rows.

" + } + } + }, "GetDataLakeSettingsRequest":{ "type":"structure", "members":{ @@ -2806,6 +2881,10 @@ "RoleArn":{ "shape":"IAMRoleArn", "documentation":"

The identifier for the role that registers the resource.

" + }, + "WithFederation":{ + "shape":"NullableBoolean", + "documentation":"

Whether or not the resource is a federated resource.

" } } }, @@ -2897,6 +2976,10 @@ "LastModified":{ "shape":"LastModifiedTimestamp", "documentation":"

The date and time the resource was last modified.

" + }, + "WithFederation":{ + "shape":"NullableBoolean", + "documentation":"

Whether or not the resource is a federated resource.

" } }, "documentation":"

A structure containing information about an Lake Formation resource.

" @@ -2973,7 +3056,7 @@ }, "Permissions":{ "shape":"PermissionList", - "documentation":"

The permissions revoked to the principal on the resource. For information about permissions, see Security and Access Control to Metadata and Data.

" + "documentation":"

The permissions revoked to the principal on the resource. For information about permissions, see Security and Access Control to Metadata and Data.

" }, "PermissionsWithGrantOption":{ "shape":"PermissionList", @@ -3461,6 +3544,21 @@ "min":1, "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" }, + "UpdateDataCellsFilterRequest":{ + "type":"structure", + "required":["TableData"], + "members":{ + "TableData":{ + "shape":"DataCellsFilter", + "documentation":"

A DataCellsFilter structure containing information about the data cells filter.

" + } + } + }, + "UpdateDataCellsFilterResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateLFTagRequest":{ "type":"structure", "required":["TagKey"], @@ -3502,6 +3600,10 @@ "ResourceArn":{ "shape":"ResourceArnString", "documentation":"

The resource ARN.

" + }, + "WithFederation":{ + "shape":"NullableBoolean", + "documentation":"

Whether or not the resource is a federated resource.

" } } }, @@ -3586,6 +3688,12 @@ "member":{"shape":"ValueString"}, "min":1 }, + "VersionString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, "VirtualObject":{ "type":"structure", "required":["Uri"], diff --git a/services/lambda/pom.xml b/services/lambda/pom.xml index c5612a5cb20b..42446a303a95 100644 --- a/services/lambda/pom.xml +++ b/services/lambda/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lambda AWS Java SDK :: Services :: AWS Lambda diff --git a/services/lambda/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/lambda/src/main/resources/codegen-resources/endpoint-rule-set.json index 8d4526c01555..c880ce66f29d 100644 --- a/services/lambda/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/lambda/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://lambda.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://lambda.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/lambda/src/main/resources/codegen-resources/endpoint-tests.json b/services/lambda/src/main/resources/codegen-resources/endpoint-tests.json index 37a94a0a6f88..09d226188e5f 100644 --- a/services/lambda/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/lambda/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,558 +1,549 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ap-south-2.api.aws" + "url": "https://lambda.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-2" + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false } }, { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ap-south-2.amazonaws.com" + "url": "https://lambda.af-south-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-2" + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.ap-south-2.api.aws" + "url": "https://lambda.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-south-2" + "Region": "ap-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.ap-south-2.amazonaws.com" + "url": "https://lambda.ap-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-south-2" + "Region": "ap-east-1", + "UseDualStack": true } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ap-south-1.api.aws" + "url": "https://lambda.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ap-south-1.amazonaws.com" + "url": "https://lambda.ap-northeast-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.ap-south-1.api.aws" + "url": "https://lambda.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-south-1" + "Region": "ap-northeast-2", + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.ap-south-1.amazonaws.com" + "url": "https://lambda.ap-northeast-2.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-south-1" + "Region": "ap-northeast-2", + "UseDualStack": true } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-south-1.api.aws" + "url": "https://lambda.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-south-1.amazonaws.com" + "url": "https://lambda.ap-northeast-3.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.eu-south-1.api.aws" + "url": "https://lambda.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-south-1" + "Region": "ap-south-1", + "UseDualStack": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.eu-south-1.amazonaws.com" + "url": "https://lambda.ap-south-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-south-1" + "Region": "ap-south-1", + "UseDualStack": true } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-south-2.api.aws" + "url": "https://lambda.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false } }, { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-south-2.amazonaws.com" + "url": "https://lambda.ap-southeast-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.eu-south-2.api.aws" + "url": "https://lambda.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-south-2" + "Region": "ap-southeast-2", + "UseDualStack": false } }, { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.eu-south-2.amazonaws.com" + "url": "https://lambda.ap-southeast-2.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-south-2" + "Region": "ap-southeast-2", + "UseDualStack": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-gov-east-1.api.aws" + "url": "https://lambda.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-gov-east-1.amazonaws.com" + "url": "https://lambda.ap-southeast-3.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.us-gov-east-1.api.aws" + "url": "https://lambda.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "ca-central-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.us-gov-east-1.amazonaws.com" + "url": "https://lambda.ca-central-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "ca-central-1", + "UseDualStack": true } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.me-central-1.api.aws" + "url": "https://lambda.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.me-central-1.amazonaws.com" + "url": "https://lambda.eu-central-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.me-central-1.api.aws" + "url": "https://lambda.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "me-central-1" + "Region": "eu-north-1", + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.me-central-1.amazonaws.com" + "url": "https://lambda.eu-north-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "me-central-1" + "Region": "eu-north-1", + "UseDualStack": true } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ca-central-1.api.aws" + "url": "https://lambda.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ca-central-1.amazonaws.com" + "url": "https://lambda.eu-south-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.ca-central-1.api.aws" + "url": "https://lambda.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ca-central-1" + "Region": "eu-west-1", + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.ca-central-1.amazonaws.com" + "url": "https://lambda.eu-west-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ca-central-1" + "Region": "eu-west-1", + "UseDualStack": true } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-central-1.api.aws" + "url": "https://lambda.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-central-1.amazonaws.com" + "url": "https://lambda.eu-west-2.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.eu-central-1.api.aws" + "url": "https://lambda.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "eu-central-1" + "Region": "eu-west-3", + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.eu-central-1.amazonaws.com" + "url": "https://lambda.eu-west-3.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" + "Region": "eu-west-3", + "UseDualStack": true } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-iso-west-1.c2s.ic.gov" + "url": "https://lambda.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://lambda.me-south-1.api.aws" + } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-iso-west-1" + "Region": "me-south-1", + "UseDualStack": true } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.us-iso-west-1.c2s.ic.gov" + "url": "https://lambda.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-west-1" + "Region": "sa-east-1", + "UseDualStack": false } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-central-2.api.aws" + "url": "https://lambda.sa-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true } }, { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-central-2.amazonaws.com" + "url": "https://lambda.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.eu-central-2.api.aws" + "url": "https://lambda-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.eu-central-2.amazonaws.com" + "url": "https://lambda.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-central-2" + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-west-1.api.aws" + "url": "https://lambda.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-west-1.amazonaws.com" + "url": "https://lambda-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-west-1" + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.us-west-1.api.aws" + "url": "https://lambda.us-east-2.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-west-1" + "Region": "us-east-2", + "UseDualStack": true } }, { @@ -563,1149 +554,317 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-west-1" + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-west-2.api.aws" + "url": "https://lambda-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-west-2" + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-west-2.amazonaws.com" + "url": "https://lambda.us-west-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.us-west-2.api.aws" + "url": "https://lambda.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-west-2" + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.us-west-2.amazonaws.com" + "url": "https://lambda-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.af-south-1.api.aws" + "url": "https://lambda.us-west-2.api.aws" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.af-south-1.amazonaws.com" + "url": "https://lambda-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "af-south-1" + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.af-south-1.api.aws" + "url": "https://lambda.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "af-south-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.af-south-1.amazonaws.com" + "url": "https://lambda.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "af-south-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://lambda.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "cn-northwest-1", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.us-iso-east-1.c2s.ic.gov" + "url": "https://lambda.cn-northwest-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "cn-northwest-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ap-southeast-3.api.aws" + "url": "https://lambda-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ap-southeast-3.amazonaws.com" + "url": "https://lambda-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.ap-southeast-3.amazonaws.com" + "url": "https://lambda.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.ap-southeast-4.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-4" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.ap-southeast-4.amazonaws.com" + "url": "https://lambda-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-4" - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.ap-southeast-4.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-4" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.ap-southeast-4.amazonaws.com" + "url": "https://lambda.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-4" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-east-1.api.aws" + "url": "https://lambda-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda-fips.us-east-1.amazonaws.com" + "url": "https://lambda-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://lambda.us-east-1.amazonaws.com" + "url": "https://lambda.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://lambda-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.us-east-2.api.aws" + "url": "https://lambda.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.us-east-2.amazonaws.com" + "url": "https://lambda.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-iso-west-1", + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://lambda-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://lambda-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://lambda.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://lambda.cn-northwest-1.amazonaws.com.cn" + "url": "https://lambda.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -1714,9 +873,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -1727,9 +886,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -1738,35 +897,35 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://lambda.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1776,9 +935,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1788,11 +947,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/lambda/src/main/resources/codegen-resources/service-2.json b/services/lambda/src/main/resources/codegen-resources/service-2.json index 845532f611d6..7f0c5a3b41b4 100644 --- a/services/lambda/src/main/resources/codegen-resources/service-2.json +++ b/services/lambda/src/main/resources/codegen-resources/service-2.json @@ -99,7 +99,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.

For details about how to configure different event sources, see the following topics.

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry.

  • DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor – Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" + "documentation":"

Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.

For details about how to configure different event sources, see the following topics.

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry.

  • DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor – Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" }, "CreateFunction":{ "name":"CreateFunction", @@ -638,6 +638,44 @@ "documentation":"

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

", "deprecated":true }, + "InvokeWithResponseStream":{ + "name":"InvokeWithResponseStream", + "http":{ + "method":"POST", + "requestUri":"/2021-11-15/functions/{FunctionName}/response-streaming-invocations" + }, + "input":{"shape":"InvokeWithResponseStreamRequest"}, + "output":{"shape":"InvokeWithResponseStreamResponse"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestContentException"}, + {"shape":"RequestTooLargeException"}, + {"shape":"UnsupportedMediaTypeException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"EC2UnexpectedException"}, + {"shape":"SubnetIPAddressLimitReachedException"}, + {"shape":"ENILimitReachedException"}, + {"shape":"EFSMountConnectivityException"}, + {"shape":"EFSMountFailureException"}, + {"shape":"EFSMountTimeoutException"}, + {"shape":"EFSIOException"}, + {"shape":"EC2ThrottledException"}, + {"shape":"EC2AccessDeniedException"}, + {"shape":"InvalidSubnetIDException"}, + {"shape":"InvalidSecurityGroupIDException"}, + {"shape":"InvalidZipFileException"}, + {"shape":"KMSDisabledException"}, + {"shape":"KMSInvalidStateException"}, + {"shape":"KMSAccessDeniedException"}, + {"shape":"KMSNotFoundException"}, + {"shape":"InvalidRuntimeException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ResourceNotReadyException"} + ], + "documentation":"

Configure your Lambda functions to stream response payloads back to clients. For more information, see Configuring a Lambda function to stream responses.

" + }, "ListAliases":{ "name":"ListAliases", "http":{ @@ -1085,7 +1123,7 @@ {"shape":"ResourceConflictException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Updates an event source mapping. You can change the function that Lambda invokes, or pause invocation and resume later from the same location.

For details about how to configure different event sources, see the following topics.

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry.

  • DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor – Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" + "documentation":"

Updates an event source mapping. You can change the function that Lambda invokes, or pause invocation and resume later from the same location.

For details about how to configure different event sources, see the following topics.

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry.

  • DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor – Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" }, "UpdateFunctionCode":{ "name":"UpdateFunctionCode", @@ -1328,7 +1366,7 @@ }, "FunctionUrlAuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" } } }, @@ -1566,6 +1604,12 @@ "error":{"httpStatusCode":400}, "exception":true }, + "CollectionName":{ + "type":"string", + "max":57, + "min":1, + "pattern":"(^(?!(system\\x2e)))(^[_a-zA-Z0-9])([^$]*)" + }, "CompatibleArchitectures":{ "type":"list", "member":{"shape":"Architecture"}, @@ -1681,7 +1725,7 @@ "members":{ "EventSourceArn":{ "shape":"Arn", - "documentation":"

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

  • Amazon Kinesis – The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams – The ARN of the stream.

  • Amazon Simple Queue Service – The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster.

  • Amazon MQ – The ARN of the broker.

" + "documentation":"

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

  • Amazon Kinesis – The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams – The ARN of the stream.

  • Amazon Simple Queue Service – The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster.

  • Amazon MQ – The ARN of the broker.

  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

" }, "FunctionName":{ "shape":"FunctionName", @@ -1693,7 +1737,7 @@ }, "BatchSize":{ "shape":"BatchSize", - "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis – Default 100. Max 10,000.

  • Amazon DynamoDB Streams – Default 100. Max 10,000.

  • Amazon Simple Queue Service – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000.

  • Self-managed Apache Kafka – Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000.

" + "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis – Default 100. Max 10,000.

  • Amazon DynamoDB Streams – Default 100. Max 10,000.

  • Amazon Simple Queue Service – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000.

  • Self-managed Apache Kafka – Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000.

  • DocumentDB – Default 100. Max 10,000.

" }, "FilterCriteria":{ "shape":"FilterCriteria", @@ -1701,15 +1745,15 @@ }, "MaximumBatchingWindowInSeconds":{ "shape":"MaximumBatchingWindowInSeconds", - "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" + "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" }, "ParallelizationFactor":{ "shape":"ParallelizationFactor", - "documentation":"

(Streams only) The number of batches to process from each shard concurrently.

" + "documentation":"

(Kinesis and DynamoDB Streams only) The number of batches to process from each shard concurrently.

" }, "StartingPosition":{ "shape":"EventSourcePosition", - "documentation":"

The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. AT_TIMESTAMP is supported only for Amazon Kinesis streams.

" + "documentation":"

The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. AT_TIMESTAMP is supported only for Amazon Kinesis streams and Amazon DocumentDB.

" }, "StartingPositionTimestamp":{ "shape":"Date", @@ -1717,23 +1761,23 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

(Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

" + "documentation":"

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard Amazon SNS topic destination for discarded records.

" }, "MaximumRecordAgeInSeconds":{ "shape":"MaximumRecordAgeInSeconds", - "documentation":"

(Streams only) Discard records older than the specified age. The default value is infinite (-1).

" + "documentation":"

(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is infinite (-1).

" }, "BisectBatchOnFunctionError":{ "shape":"BisectBatchOnFunctionError", - "documentation":"

(Streams only) If the function returns an error, split the batch in two and retry.

" + "documentation":"

(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry.

" }, "MaximumRetryAttempts":{ "shape":"MaximumRetryAttemptsEventSourceMapping", - "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

" + "documentation":"

(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

" }, "TumblingWindowInSeconds":{ "shape":"TumblingWindowInSeconds", - "documentation":"

(Streams only) The duration in seconds of a processing window. The range is between 1 second and 900 seconds.

" + "documentation":"

(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.

" }, "Topics":{ "shape":"Topics", @@ -1753,7 +1797,7 @@ }, "FunctionResponseTypes":{ "shape":"FunctionResponseTypeList", - "documentation":"

(Streams and Amazon SQS) A list of current response type enums applied to the event source mapping.

" + "documentation":"

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type enums applied to the event source mapping.

" }, "AmazonManagedKafkaEventSourceConfig":{ "shape":"AmazonManagedKafkaEventSourceConfig", @@ -1766,6 +1810,10 @@ "ScalingConfig":{ "shape":"ScalingConfig", "documentation":"

(Amazon SQS only) The scaling configuration for the event source. For more information, see Configuring maximum concurrency for Amazon SQS event sources.

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

Specific configuration settings for a DocumentDB event source.

" } } }, @@ -1783,7 +1831,7 @@ }, "Runtime":{ "shape":"Runtime", - "documentation":"

The identifier of the function's runtime. Runtime is required if the deployment package is a .zip file archive.

" + "documentation":"

The identifier of the function's runtime. Runtime is required if the deployment package is a .zip file archive.

The following list includes deprecated runtimes. For more information, see Runtime deprecation policy.

" }, "Role":{ "shape":"RoleArn", @@ -1831,7 +1879,7 @@ }, "KMSKeyArn":{ "shape":"KMSKeyArn", - "documentation":"

The ARN of the Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.

" + "documentation":"

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's environment variables. When Lambda SnapStart is activated, this key is also used to encrypt your function's snapshot. If you don't provide a customer managed key, Lambda uses a default service key.

" }, "TracingConfig":{ "shape":"TracingConfig", @@ -1892,11 +1940,15 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", "documentation":"

The cross-origin resource sharing (CORS) settings for your function URL.

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

Use one of the following options:

  • BUFFERED – This is the default option. Lambda invokes your function using the Invoke API operation. Invocation results are available when the payload is complete. The maximum payload size is 6 MB.

  • RESPONSE_STREAM – Your function streams payload results as they become available. Lambda invokes your function using the InvokeWithResponseStream API operation. The maximum response payload size is 20 MB, however, you can request a quota increase.

" } } }, @@ -1919,7 +1971,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -1928,9 +1980,19 @@ "CreationTime":{ "shape":"Timestamp", "documentation":"

When the function URL was created, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "InvokeMode":{ + "shape":"InvokeMode", + "documentation":"

Use one of the following options:

  • BUFFERED – This is the default option. Lambda invokes your function using the Invoke API operation. Invocation results are available when the payload is complete. The maximum payload size is 6 MB.

  • RESPONSE_STREAM – Your function streams payload results as they become available. Lambda invokes your function using the InvokeWithResponseStream API operation. The maximum response payload size is 20 MB, however, you can request a quota increase.

" } } }, + "DatabaseName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"[^ /\\.$\\x22]*" + }, "Date":{"type":"timestamp"}, "DeadLetterConfig":{ "type":"structure", @@ -2137,6 +2199,24 @@ }, "documentation":"

A configuration object that specifies the destination of an event after Lambda processes it.

" }, + "DocumentDBEventSourceConfig":{ + "type":"structure", + "members":{ + "DatabaseName":{ + "shape":"DatabaseName", + "documentation":"

The name of the database to consume within the DocumentDB cluster.

" + }, + "CollectionName":{ + "shape":"CollectionName", + "documentation":"

The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections.

" + }, + "FullDocument":{ + "shape":"FullDocument", + "documentation":"

Determines what DocumentDB sends to your event stream during document update operations. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes.

" + } + }, + "documentation":"

Specific configuration settings for a DocumentDB event source.

" + }, "EC2AccessDeniedException":{ "type":"structure", "members":{ @@ -2320,7 +2400,7 @@ }, "StartingPosition":{ "shape":"EventSourcePosition", - "documentation":"

The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK stream sources. AT_TIMESTAMP is supported only for Amazon Kinesis streams.

" + "documentation":"

The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK stream sources. AT_TIMESTAMP is supported only for Amazon Kinesis streams and Amazon DocumentDB.

" }, "StartingPositionTimestamp":{ "shape":"Date", @@ -2332,11 +2412,11 @@ }, "MaximumBatchingWindowInSeconds":{ "shape":"MaximumBatchingWindowInSeconds", - "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" + "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" }, "ParallelizationFactor":{ "shape":"ParallelizationFactor", - "documentation":"

(Streams only) The number of batches to process concurrently from each shard. The default value is 1.

" + "documentation":"

(Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1.

" }, "EventSourceArn":{ "shape":"Arn", @@ -2368,7 +2448,7 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

(Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

" + "documentation":"

(Kinesis and DynamoDB Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

" }, "Topics":{ "shape":"Topics", @@ -2388,23 +2468,23 @@ }, "MaximumRecordAgeInSeconds":{ "shape":"MaximumRecordAgeInSeconds", - "documentation":"

(Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records.

" + "documentation":"

(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records.

" }, "BisectBatchOnFunctionError":{ "shape":"BisectBatchOnFunctionError", - "documentation":"

(Streams only) If the function returns an error, split the batch in two and retry. The default value is false.

" + "documentation":"

(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false.

" }, "MaximumRetryAttempts":{ "shape":"MaximumRetryAttemptsEventSourceMapping", - "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.

" + "documentation":"

(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.

" }, "TumblingWindowInSeconds":{ "shape":"TumblingWindowInSeconds", - "documentation":"

(Streams only) The duration in seconds of a processing window. The range is 1–900 seconds.

" + "documentation":"

(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.

" }, "FunctionResponseTypes":{ "shape":"FunctionResponseTypeList", - "documentation":"

(Streams and Amazon SQS) A list of current response type enums applied to the event source mapping.

" + "documentation":"

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type enums applied to the event source mapping.

" }, "AmazonManagedKafkaEventSourceConfig":{ "shape":"AmazonManagedKafkaEventSourceConfig", @@ -2417,6 +2497,10 @@ "ScalingConfig":{ "shape":"ScalingConfig", "documentation":"

(Amazon SQS only) The scaling configuration for the event source. For more information, see Configuring maximum concurrency for Amazon SQS event sources.

" + }, + "DocumentDBEventSourceConfig":{ + "shape":"DocumentDBEventSourceConfig", + "documentation":"

Specific configuration settings for a DocumentDB event source.

" } }, "documentation":"

A mapping between an Amazon Web Services resource and a Lambda function. For details, see CreateEventSourceMapping.

" @@ -2491,6 +2575,13 @@ "type":"list", "member":{"shape":"Filter"} }, + "FullDocument":{ + "type":"string", + "enum":[ + "UpdateLookup", + "Default" + ] + }, "FunctionArn":{ "type":"string", "pattern":"arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?" @@ -2612,7 +2703,7 @@ }, "KMSKeyArn":{ "shape":"KMSKeyArn", - "documentation":"

The KMS key that's used to encrypt the function's environment variables. This key is returned only if you've configured a customer managed key.

" + "documentation":"

The KMS key that's used to encrypt the function's environment variables. When Lambda SnapStart is activated, this key is also used to encrypt the function's snapshot. This key is returned only if you've configured a customer managed key.

" }, "TracingConfig":{ "shape":"TracingConfigResponse", @@ -2714,7 +2805,7 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

A destination for events after they have been sent to a function for processing.

Destinations

  • Function - The Amazon Resource Name (ARN) of a Lambda function.

  • Queue - The ARN of an SQS queue.

  • Topic - The ARN of an SNS topic.

  • Event Bus - The ARN of an Amazon EventBridge event bus.

" + "documentation":"

A destination for events after they have been sent to a function for processing.

Destinations

  • Function - The Amazon Resource Name (ARN) of a Lambda function.

  • Queue - The ARN of a standard SQS queue.

  • Topic - The ARN of a standard SNS topic.

  • Event Bus - The ARN of an Amazon EventBridge event bus.

" } } }, @@ -2786,7 +2877,11 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + }, + "InvokeMode":{ + "shape":"InvokeMode", + "documentation":"

Use one of the following options:

  • BUFFERED – This is the default option. Lambda invokes your function using the Invoke API operation. Invocation results are available when the payload is complete. The maximum payload size is 6 MB.

  • RESPONSE_STREAM – Your function streams payload results as they become available. Lambda invokes your function using the InvokeWithResponseStream API operation. The maximum response payload size is 20 MB, however, you can request a quota increase.

" } }, "documentation":"

Details about a Lambda function URL.

" @@ -3041,7 +3136,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -3054,6 +3149,10 @@ "LastModifiedTime":{ "shape":"Timestamp", "documentation":"

When the function URL configuration was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "InvokeMode":{ + "shape":"InvokeMode", + "documentation":"

Use one of the following options:

  • BUFFERED – This is the default option. Lambda invokes your function using the Invoke API operation. Invocation results are available when the payload is complete. The maximum payload size is 6 MB.

  • RESPONSE_STREAM – Your function streams payload results as they become available. Lambda invokes your function using the InvokeWithResponseStream API operation. The maximum response payload size is 20 MB, however, you can request a quota increase.

" } } }, @@ -3251,7 +3350,7 @@ "required":["FunctionName"], "members":{ "FunctionName":{ - "shape":"FunctionName", + "shape":"NamespacedFunctionName", "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" @@ -3274,6 +3373,10 @@ "RuntimeVersionArn":{ "shape":"RuntimeVersionArn", "documentation":"

The ARN of the runtime the function is configured to use. If the runtime update mode is Manual, the ARN is returned, otherwise null is returned.

" + }, + "FunctionArn":{ + "shape":"NameSpacedFunctionArn", + "documentation":"

The Amazon Resource Name (ARN) of your function.

" } } }, @@ -3537,6 +3640,127 @@ "documentation":"

A success response (202 Accepted) indicates that the request is queued for invocation.

", "deprecated":true }, + "InvokeMode":{ + "type":"string", + "enum":[ + "BUFFERED", + "RESPONSE_STREAM" + ] + }, + "InvokeResponseStreamUpdate":{ + "type":"structure", + "members":{ + "Payload":{ + "shape":"Blob", + "documentation":"

Data returned by your Lambda function.

", + "eventpayload":true + } + }, + "documentation":"

A chunk of the streamed response payload.

", + "event":true + }, + "InvokeWithResponseStreamCompleteEvent":{ + "type":"structure", + "members":{ + "ErrorCode":{ + "shape":"String", + "documentation":"

An error code.

" + }, + "ErrorDetails":{ + "shape":"String", + "documentation":"

The details of any returned error.

" + }, + "LogResult":{ + "shape":"String", + "documentation":"

The last 4 KB of the execution log, which is base64-encoded.

" + } + }, + "documentation":"

A response confirming that the event stream is complete.

", + "event":true + }, + "InvokeWithResponseStreamRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"NamespacedFunctionName", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "location":"uri", + "locationName":"FunctionName" + }, + "InvocationType":{ + "shape":"ResponseStreamingInvocationType", + "documentation":"

Use one of the following options:

  • RequestResponse (default) – Invoke the function synchronously. Keep the connection open until the function returns a response or times out. The API operation response includes the function response and additional data.

  • DryRun – Validate parameter values and verify that the IAM user or role has permission to invoke the function.

", + "location":"header", + "locationName":"X-Amz-Invocation-Type" + }, + "LogType":{ + "shape":"LogType", + "documentation":"

Set to Tail to include the execution log in the response. Applies to synchronously invoked functions only.

", + "location":"header", + "locationName":"X-Amz-Log-Type" + }, + "ClientContext":{ + "shape":"String", + "documentation":"

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.

", + "location":"header", + "locationName":"X-Amz-Client-Context" + }, + "Qualifier":{ + "shape":"Qualifier", + "documentation":"

The alias name.

", + "location":"querystring", + "locationName":"Qualifier" + }, + "Payload":{ + "shape":"Blob", + "documentation":"

The JSON that you want to provide to your Lambda function as input.

You can enter the JSON directly. For example, --payload '{ \"key\": \"value\" }'. You can also specify a file path. For example, --payload file://payload.json.

" + } + }, + "payload":"Payload" + }, + "InvokeWithResponseStreamResponse":{ + "type":"structure", + "members":{ + "StatusCode":{ + "shape":"Integer", + "documentation":"

For a successful request, the HTTP status code is in the 200 range. For the RequestResponse invocation type, this status code is 200. For the DryRun invocation type, this status code is 204.

", + "location":"statusCode" + }, + "ExecutedVersion":{ + "shape":"Version", + "documentation":"

The version of the function that executed. When you invoke a function with an alias, this indicates which version the alias resolved to.

", + "location":"header", + "locationName":"X-Amz-Executed-Version" + }, + "EventStream":{ + "shape":"InvokeWithResponseStreamResponseEvent", + "documentation":"

The stream of response payloads.

" + }, + "ResponseStreamContentType":{ + "shape":"String", + "documentation":"

The type of data the stream is returning.

", + "location":"header", + "locationName":"Content-Type" + } + }, + "payload":"EventStream" + }, + "InvokeWithResponseStreamResponseEvent":{ + "type":"structure", + "members":{ + "PayloadChunk":{ + "shape":"InvokeResponseStreamUpdate", + "documentation":"

A chunk of the streamed response payload.

" + }, + "InvokeComplete":{ + "shape":"InvokeWithResponseStreamCompleteEvent", + "documentation":"

An object that's returned when the stream has ended and all the payload chunks have been returned.

" + } + }, + "documentation":"

An object that includes a chunk of the response payload. When the stream has ended, Lambda includes a InvokeComplete object.

", + "eventstream":true + }, "KMSAccessDeniedException":{ "type":"structure", "members":{ @@ -3864,7 +4088,7 @@ "members":{ "EventSourceArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the event source.

  • Amazon Kinesis – The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams – The ARN of the stream.

  • Amazon Simple Queue Service – The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster.

  • Amazon MQ – The ARN of the broker.

", + "documentation":"

The Amazon Resource Name (ARN) of the event source.

  • Amazon Kinesis – The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams – The ARN of the stream.

  • Amazon Simple Queue Service – The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka – The ARN of the cluster.

  • Amazon MQ – The ARN of the broker.

  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

", "location":"querystring", "locationName":"EventSourceArn" }, @@ -4675,7 +4899,7 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

A destination for events after they have been sent to a function for processing.

Destinations

  • Function - The Amazon Resource Name (ARN) of a Lambda function.

  • Queue - The ARN of an SQS queue.

  • Topic - The ARN of an SNS topic.

  • Event Bus - The ARN of an Amazon EventBridge event bus.

" + "documentation":"

A destination for events after they have been sent to a function for processing.

Destinations

  • Function - The Amazon Resource Name (ARN) of a Lambda function.

  • Queue - The ARN of a standard SQS queue.

  • Topic - The ARN of a standard SNS topic.

  • Event Bus - The ARN of an Amazon EventBridge event bus.

" } } }, @@ -4939,6 +5163,13 @@ "error":{"httpStatusCode":502}, "exception":true }, + "ResponseStreamingInvocationType":{ + "type":"string", + "enum":[ + "RequestResponse", + "DryRun" + ] + }, "RoleArn":{ "type":"string", "pattern":"arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" @@ -5494,7 +5725,7 @@ }, "BatchSize":{ "shape":"BatchSize", - "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis – Default 100. Max 10,000.

  • Amazon DynamoDB Streams – Default 100. Max 10,000.

  • Amazon Simple Queue Service – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000.

  • Self-managed Apache Kafka – Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000.

" + "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis – Default 100. Max 10,000.

  • Amazon DynamoDB Streams – Default 100. Max 10,000.

  • Amazon Simple Queue Service – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000.

  • Self-managed Apache Kafka – Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000.

  • DocumentDB – Default 100. Max 10,000.

" }, "FilterCriteria":{ "shape":"FilterCriteria", @@ -5502,27 +5733,27 @@ }, "MaximumBatchingWindowInSeconds":{ "shape":"MaximumBatchingWindowInSeconds", - "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" + "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

(Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.

" + "documentation":"

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard Amazon SNS topic destination for discarded records.

" }, "MaximumRecordAgeInSeconds":{ "shape":"MaximumRecordAgeInSeconds", - "documentation":"

(Streams only) Discard records older than the specified age. The default value is infinite (-1).

" + "documentation":"

(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is infinite (-1).

" }, "BisectBatchOnFunctionError":{ "shape":"BisectBatchOnFunctionError", - "documentation":"

(Streams only) If the function returns an error, split the batch in two and retry.

" + "documentation":"

(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry.

" }, "MaximumRetryAttempts":{ "shape":"MaximumRetryAttemptsEventSourceMapping", - "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

" + "documentation":"

(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

" }, "ParallelizationFactor":{ "shape":"ParallelizationFactor", - "documentation":"

(Streams only) The number of batches to process from each shard concurrently.

" + "documentation":"

(Kinesis and DynamoDB Streams only) The number of batches to process from each shard concurrently.

" }, "SourceAccessConfigurations":{ "shape":"SourceAccessConfigurations", @@ -5530,15 +5761,19 @@ }, "TumblingWindowInSeconds":{ "shape":"TumblingWindowInSeconds", - "documentation":"

(Streams only) The duration in seconds of a processing window. The range is between 1 second and 900 seconds.

" + "documentation":"

(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.

" }, "FunctionResponseTypes":{ "shape":"FunctionResponseTypeList", - "documentation":"

(Streams and Amazon SQS) A list of current response type enums applied to the event source mapping.

" + "documentation":"

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type enums applied to the event source mapping.

" }, "ScalingConfig":{ "shape":"ScalingConfig", "documentation":"

(Amazon SQS only) The scaling configuration for the event source. For more information, see Configuring maximum concurrency for Amazon SQS event sources.

" + }, + "DocumentDBEventSourceConfig":{ + "shape":"DocumentDBEventSourceConfig", + "documentation":"

Specific configuration settings for a DocumentDB event source.

" } } }, @@ -5630,7 +5865,7 @@ }, "Runtime":{ "shape":"Runtime", - "documentation":"

The identifier of the function's runtime. Runtime is required if the deployment package is a .zip file archive.

" + "documentation":"

The identifier of the function's runtime. Runtime is required if the deployment package is a .zip file archive.

The following list includes deprecated runtimes. For more information, see Runtime deprecation policy.

" }, "DeadLetterConfig":{ "shape":"DeadLetterConfig", @@ -5638,7 +5873,7 @@ }, "KMSKeyArn":{ "shape":"KMSKeyArn", - "documentation":"

The ARN of the Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.

" + "documentation":"

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's environment variables. When Lambda SnapStart is activated, this key is also used to encrypt your function's snapshot. If you don't provide a customer managed key, Lambda uses a default service key.

" }, "TracingConfig":{ "shape":"TracingConfig", @@ -5696,7 +5931,7 @@ }, "DestinationConfig":{ "shape":"DestinationConfig", - "documentation":"

A destination for events after they have been sent to a function for processing.

Destinations

  • Function - The Amazon Resource Name (ARN) of a Lambda function.

  • Queue - The ARN of an SQS queue.

  • Topic - The ARN of an SNS topic.

  • Event Bus - The ARN of an Amazon EventBridge event bus.

" + "documentation":"

A destination for events after they have been sent to a function for processing.

Destinations

  • Function - The Amazon Resource Name (ARN) of a Lambda function.

  • Queue - The ARN of a standard SQS queue.

  • Topic - The ARN of a standard SNS topic.

  • Event Bus - The ARN of an Amazon EventBridge event bus.

" } } }, @@ -5718,11 +5953,15 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", "documentation":"

The cross-origin resource sharing (CORS) settings for your function URL.

" + }, + "InvokeMode":{ + "shape":"InvokeMode", + "documentation":"

Use one of the following options:

  • BUFFERED – This is the default option. Lambda invokes your function using the Invoke API operation. Invocation results are available when the payload is complete. The maximum payload size is 6 MB.

  • RESPONSE_STREAM – Your function streams payload results as they become available. Lambda invokes your function using the InvokeWithResponseStream API operation. The maximum response payload size is 20 MB, however, you can request a quota increase.

" } } }, @@ -5746,7 +5985,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -5759,6 +5998,10 @@ "LastModifiedTime":{ "shape":"Timestamp", "documentation":"

When the function URL configuration was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "InvokeMode":{ + "shape":"InvokeMode", + "documentation":"

Use one of the following options:

  • BUFFERED – This is the default option. Lambda invokes your function using the Invoke API operation. Invocation results are available when the payload is complete. The maximum payload size is 6 MB.

  • RESPONSE_STREAM – Your function streams payload results as they become available. Lambda invokes your function using the InvokeWithResponseStream API operation. The maximum response payload size is 20 MB, however, you can request a quota increase.

" } } }, diff --git a/services/lexmodelbuilding/pom.xml b/services/lexmodelbuilding/pom.xml index 4b3c84e83233..971460a8d495 100644 --- a/services/lexmodelbuilding/pom.xml +++ b/services/lexmodelbuilding/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lexmodelbuilding AWS Java SDK :: Services :: Amazon Lex Model Building diff --git a/services/lexmodelsv2/pom.xml b/services/lexmodelsv2/pom.xml index 972f3be5e9ae..a36f33b1499e 100644 --- a/services/lexmodelsv2/pom.xml +++ b/services/lexmodelsv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lexmodelsv2 AWS Java SDK :: Services :: Lex Models V2 diff --git a/services/lexruntime/pom.xml b/services/lexruntime/pom.xml index 3051a89fdbfe..6ac8467fbd72 100644 --- a/services/lexruntime/pom.xml +++ b/services/lexruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lexruntime AWS Java SDK :: Services :: Amazon Lex Runtime diff --git a/services/lexruntimev2/pom.xml b/services/lexruntimev2/pom.xml index a50bb3e5f6df..9dc8aafa48e0 100644 --- a/services/lexruntimev2/pom.xml +++ b/services/lexruntimev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lexruntimev2 AWS Java SDK :: Services :: Lex Runtime V2 diff --git a/services/licensemanager/pom.xml b/services/licensemanager/pom.xml index 8660cc12a6d1..765d35db0bae 100644 --- a/services/licensemanager/pom.xml +++ b/services/licensemanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT licensemanager AWS Java SDK :: Services :: License Manager diff --git a/services/licensemanager/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/licensemanager/src/main/resources/codegen-resources/endpoint-rule-set.json index dc19c34614b7..38f0d7b62793 100644 --- a/services/licensemanager/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/licensemanager/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://license-manager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://license-manager-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://license-manager.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://license-manager.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://license-manager.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/licensemanager/src/main/resources/codegen-resources/endpoint-tests.json b/services/licensemanager/src/main/resources/codegen-resources/endpoint-tests.json index af7cff565187..554e164817f2 100644 --- a/services/licensemanager/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/licensemanager/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1403 +1,571 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://license-manager-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.me-south-1.api.aws" + "url": "https://license-manager.af-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.me-south-1.amazonaws.com" + "url": "https://license-manager.ap-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-east-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.sa-east-1.api.aws" + "url": "https://license-manager.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.sa-east-1.amazonaws.com" + "url": "https://license-manager.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.sa-east-1.api.aws" + "url": "https://license-manager.ap-northeast-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.sa-east-1.amazonaws.com" + "url": "https://license-manager.ap-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-east-1.api.aws" + "url": "https://license-manager.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-east-1.amazonaws.com" + "url": "https://license-manager.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-east-1.api.aws" + "url": "https://license-manager.ap-southeast-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-3" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-east-1.amazonaws.com" + "url": "https://license-manager.ca-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://license-manager.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.cn-north-1.amazonaws.com.cn" + "url": "https://license-manager.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://license-manager.eu-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.cn-north-1.amazonaws.com.cn" + "url": "https://license-manager.eu-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.us-gov-west-1.api.aws" + "url": "https://license-manager.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.us-gov-west-1.amazonaws.com" + "url": "https://license-manager.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.us-gov-west-1.api.aws" + "url": "https://license-manager.me-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.us-gov-west-1.amazonaws.com" + "url": "https://license-manager.sa-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-southeast-1.api.aws" + "url": "https://license-manager.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-southeast-1.amazonaws.com" + "url": "https://license-manager-fips.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-southeast-1.api.aws" + "url": "https://license-manager.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-southeast-1.amazonaws.com" + "url": "https://license-manager-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-southeast-2.api.aws" + "url": "https://license-manager.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-southeast-2.amazonaws.com" + "url": "https://license-manager-fips.us-west-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-southeast-2.api.aws" + "url": "https://license-manager.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-southeast-2.amazonaws.com" + "url": "https://license-manager-fips.us-west-2.amazonaws.com" } }, - "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, "params": { "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://license-manager-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://license-manager.us-east-1.api.aws" + } }, "params": { "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.us-iso-east-1.c2s.ic.gov" + "url": "https://license-manager.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-southeast-3.api.aws" + "url": "https://license-manager.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.ap-southeast-3.amazonaws.com" + "url": "https://license-manager-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-southeast-3.api.aws" + "url": "https://license-manager-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://license-manager.ap-southeast-3.amazonaws.com" + "url": "https://license-manager.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": false + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.us-east-1.api.aws" + "url": "https://license-manager.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.us-east-1.amazonaws.com" + "url": "https://license-manager-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://license-manager.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.us-east-1.amazonaws.com" + "url": "https://license-manager.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.us-east-2.api.aws" + "url": "https://license-manager-fips.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.us-east-2.amazonaws.com" + "url": "https://license-manager-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://license-manager.us-east-2.api.aws" + "url": "https://license-manager.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.us-east-2.amazonaws.com" + "url": "https://license-manager.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://license-manager-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://license-manager-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://license-manager.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://license-manager.cn-northwest-1.amazonaws.com.cn" + "url": "https://license-manager.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { @@ -1407,8 +575,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-isob-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { @@ -1420,8 +588,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { @@ -1431,25 +599,26 @@ }, "params": { "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://license-manager.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1457,7 +626,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1469,8 +637,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1481,10 +649,16 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/licensemanager/src/main/resources/codegen-resources/service-2.json b/services/licensemanager/src/main/resources/codegen-resources/service-2.json index 5fdfee3e215f..9134561f8e70 100644 --- a/services/licensemanager/src/main/resources/codegen-resources/service-2.json +++ b/services/licensemanager/src/main/resources/codegen-resources/service-2.json @@ -113,7 +113,7 @@ {"shape":"RateLimitExceededException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates a grant for the specified license. A grant shares the use of license entitlements with specific Amazon Web Services accounts.

" + "documentation":"

Creates a grant for the specified license. A grant shares the use of license entitlements with a specific Amazon Web Services account, an organization, or an organizational unit (OU). For more information, see Granted licenses in License Manager in the License Manager User Guide.

" }, "CreateGrantVersion":{ "name":"CreateGrantVersion", @@ -132,7 +132,7 @@ {"shape":"AccessDeniedException"}, {"shape":"RateLimitExceededException"} ], - "documentation":"

Creates a new version of the specified grant.

" + "documentation":"

Creates a new version of the specified grant. For more information, see Granted licenses in License Manager in the License Manager User Guide.

" }, "CreateLicense":{ "name":"CreateLicense", @@ -683,7 +683,7 @@ {"shape":"AccessDeniedException"}, {"shape":"RateLimitExceededException"} ], - "documentation":"

Lists grants that are received but not accepted.

" + "documentation":"

Lists grants that are received. Received grants are grants created while specifying the recipient as this Amazon Web Services account, your organization, or an organizational unit (OU) to which this member account belongs.

" }, "ListReceivedGrantsForOrganization":{ "name":"ListReceivedGrantsForOrganization", @@ -977,6 +977,13 @@ "documentation":"

Access to resource denied.

", "exception":true }, + "ActivationOverrideBehavior":{ + "type":"string", + "enum":[ + "DISTRIBUTED_GRANTS_ONLY", + "ALL_GRANTS_PERMITTED_BY_ISSUER" + ] + }, "AllowedOperation":{ "type":"string", "enum":[ @@ -1298,7 +1305,7 @@ }, "Principals":{ "shape":"PrincipalArnList", - "documentation":"

The grant principals. This value should be specified as an Amazon Resource Name (ARN).

" + "documentation":"

The grant principals. You can specify one of the following as an Amazon Resource Name (ARN):

  • An Amazon Web Services account, which includes only the account specified.

  • An organizational unit (OU), which includes all accounts in the OU.

  • An organization, which will include all accounts across your organization.

" }, "HomeRegion":{ "shape":"String", @@ -1361,6 +1368,10 @@ "SourceVersion":{ "shape":"String", "documentation":"

Current version of the grant.

" + }, + "Options":{ + "shape":"Options", + "documentation":"

The options specified for the grant.

" } } }, @@ -1449,11 +1460,11 @@ }, "SourceLicenseContext":{ "shape":"LicenseConversionContext", - "documentation":"

Information that identifies the license type you are converting from. For the structure of the source license, see Convert a license type using the Amazon Web Services CLI in the License Manager User Guide.

" + "documentation":"

Information that identifies the license type you are converting from. For the structure of the source license, see Convert a license type using the CLI in the License Manager User Guide.

" }, "DestinationLicenseContext":{ "shape":"LicenseConversionContext", - "documentation":"

Information that identifies the license type you are converting to. For the structure of the destination license, see Convert a license type using the Amazon Web Services CLI in the License Manager User Guide.

" + "documentation":"

Information that identifies the license type you are converting to. For the structure of the destination license, see Convert a license type using the CLI in the License Manager User Guide.

" } } }, @@ -2066,7 +2077,7 @@ }, "Values":{ "shape":"FilterValues", - "documentation":"

Filter values. Filter values are case-sensitive.

" + "documentation":"

The value of the filter, which is case-sensitive. You can only specify one value for the filter.

" } }, "documentation":"

A filter name and value pair that is used to return more specific results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

" @@ -2417,6 +2428,10 @@ "GrantedOperations":{ "shape":"AllowedOperationList", "documentation":"

Granted operations.

" + }, + "Options":{ + "shape":"Options", + "documentation":"

The options specified for the grant.

" } }, "documentation":"

Describes a grant.

" @@ -3581,6 +3596,16 @@ "documentation":"

There are no entitlements found for this license, or the entitlement maximum count is reached.

", "exception":true }, + "Options":{ + "type":"structure", + "members":{ + "ActivationOverrideBehavior":{ + "shape":"ActivationOverrideBehavior", + "documentation":"

An activation option for your grant that determines the behavior of activating a grant. Activation options can only be used with granted licenses sourced from the Amazon Web Services Marketplace. Additionally, the operation must specify the value of ACTIVE for the Status parameter.

  • As a license administrator, you can optionally specify an ActivationOverrideBehavior when activating a grant.

  • As a grantor, you can optionally specify an ActivationOverrideBehavior when you activate a grant for a grantee account in your organization.

  • As a grantee, if the grantor creating the distributed grant doesn’t specify an ActivationOverrideBehavior, you can optionally specify one when you are activating the grant.

DISTRIBUTED_GRANTS_ONLY

Use this value to activate a grant without replacing any member account’s active grants for the same product.

ALL_GRANTS_PERMITTED_BY_ISSUER

Use this value to activate a grant and disable other active grants in any member accounts for the same product. This action will also replace their previously activated grants with this activated grant.

" + } + }, + "documentation":"

The options you can specify when you create a new version of a grant, such as activation override behavior. For more information, see Granted licenses in License Manager in the License Manager User Guide.

" + }, "OrganizationConfiguration":{ "type":"structure", "required":["EnableIntegration"], diff --git a/services/licensemanagerlinuxsubscriptions/pom.xml b/services/licensemanagerlinuxsubscriptions/pom.xml index 1e5f6116d01f..b7c9582db1ee 100644 --- a/services/licensemanagerlinuxsubscriptions/pom.xml +++ b/services/licensemanagerlinuxsubscriptions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT licensemanagerlinuxsubscriptions AWS Java SDK :: Services :: License Manager Linux Subscriptions diff --git a/services/licensemanagerusersubscriptions/pom.xml b/services/licensemanagerusersubscriptions/pom.xml index 30b758d8907d..79c978e65d1a 100644 --- a/services/licensemanagerusersubscriptions/pom.xml +++ b/services/licensemanagerusersubscriptions/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT licensemanagerusersubscriptions AWS Java SDK :: Services :: License Manager User Subscriptions diff --git a/services/lightsail/pom.xml b/services/lightsail/pom.xml index ec225610547d..8baa0677e6de 100644 --- a/services/lightsail/pom.xml +++ b/services/lightsail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lightsail AWS Java SDK :: Services :: Amazon Lightsail diff --git a/services/lightsail/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/lightsail/src/main/resources/codegen-resources/endpoint-rule-set.json index ee08de542182..9428d1992f53 100644 --- a/services/lightsail/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/lightsail/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lightsail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://lightsail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lightsail-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://lightsail-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lightsail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://lightsail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://lightsail.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://lightsail.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/lightsail/src/main/resources/codegen-resources/endpoint-tests.json b/services/lightsail/src/main/resources/codegen-resources/endpoint-tests.json index 26e14e9d4ede..ef0830464521 100644 --- a/services/lightsail/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/lightsail/src/main/resources/codegen-resources/endpoint-tests.json @@ -9,8 +9,8 @@ }, "params": { "Region": "ap-northeast-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -22,8 +22,8 @@ }, "params": { "Region": "ap-northeast-2", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -35,8 +35,8 @@ }, "params": { "Region": "ap-south-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -48,8 +48,8 @@ }, "params": { "Region": "ap-southeast-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -61,8 +61,8 @@ }, "params": { "Region": "ap-southeast-2", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -74,8 +74,8 @@ }, "params": { "Region": "ca-central-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -87,8 +87,8 @@ }, "params": { "Region": "eu-central-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -100,8 +100,8 @@ }, "params": { "Region": "eu-north-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -113,8 +113,8 @@ }, "params": { "Region": "eu-west-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -126,8 +126,8 @@ }, "params": { "Region": "eu-west-2", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -139,8 +139,8 @@ }, "params": { "Region": "eu-west-3", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -152,8 +152,8 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -165,8 +165,8 @@ }, "params": { "Region": "us-east-2", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -178,8 +178,8 @@ }, "params": { "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -191,8 +191,8 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -204,8 +204,8 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -217,8 +217,8 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -230,8 +230,8 @@ }, "params": { "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -243,8 +243,8 @@ }, "params": { "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -256,8 +256,8 @@ }, "params": { "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -269,8 +269,8 @@ }, "params": { "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -282,8 +282,8 @@ }, "params": { "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": true } }, { @@ -295,8 +295,8 @@ }, "params": { "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -308,8 +308,8 @@ }, "params": { "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true } }, { @@ -321,8 +321,8 @@ }, "params": { "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -334,8 +334,8 @@ }, "params": { "Region": "us-iso-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -347,8 +347,8 @@ }, "params": { "Region": "us-iso-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -360,8 +360,8 @@ }, "params": { "Region": "us-isob-east-1", - "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { @@ -373,12 +373,12 @@ }, "params": { "Region": "us-isob-east-1", - "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -386,8 +386,21 @@ }, "params": { "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -398,8 +411,8 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -410,8 +423,8 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/lightsail/src/main/resources/codegen-resources/service-2.json b/services/lightsail/src/main/resources/codegen-resources/service-2.json index 6df1a42f2f91..fba5ddf088e2 100644 --- a/services/lightsail/src/main/resources/codegen-resources/service-2.json +++ b/services/lightsail/src/main/resources/codegen-resources/service-2.json @@ -414,6 +414,23 @@ ], "documentation":"

Creates one of the following domain name system (DNS) records in a domain DNS zone: Address (A), canonical name (CNAME), mail exchanger (MX), name server (NS), start of authority (SOA), service locator (SRV), or text (TXT).

The create domain entry operation supports tag-based access control via resource tags applied to the resource identified by domain name. For more information, see the Amazon Lightsail Developer Guide.

" }, + "CreateGUISessionAccessDetails":{ + "name":"CreateGUISessionAccessDetails", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGUISessionAccessDetailsRequest"}, + "output":{"shape":"CreateGUISessionAccessDetailsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceException"}, + {"shape":"UnauthenticatedException"} + ], + "documentation":"

Creates two URLs that are used to access a virtual computer’s graphical user interface (GUI) session. The primary URL initiates a web-based NICE DCV session to the virtual computer's application. The secondary URL initiates a web-based NICE DCV session to the virtual computer's operating session.

Use StartGUISession to open the session.

" + }, "CreateInstanceSnapshot":{ "name":"CreateInstanceSnapshot", "http":{ @@ -1450,6 +1467,23 @@ ], "documentation":"

Returns information about one or more of your Amazon Lightsail container services.

" }, + "GetCostEstimate":{ + "name":"GetCostEstimate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCostEstimateRequest"}, + "output":{"shape":"GetCostEstimateResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceException"}, + {"shape":"UnauthenticatedException"} + ], + "documentation":"

Retrieves information about the cost estimate for a specified resource. A cost estimate will not generate for a resource that has been deleted.

" + }, "GetDisk":{ "name":"GetDisk", "http":{ @@ -2539,6 +2573,23 @@ ], "documentation":"

Sets the Amazon Lightsail resources that can access the specified Lightsail bucket.

Lightsail buckets currently support setting access for Lightsail instances in the same Amazon Web Services Region.

" }, + "StartGUISession":{ + "name":"StartGUISession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartGUISessionRequest"}, + "output":{"shape":"StartGUISessionResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceException"}, + {"shape":"UnauthenticatedException"} + ], + "documentation":"

Initiates a graphical user interface (GUI) session that’s used to access a virtual computer’s operating system and application. The session will be active for 1 hour. Use this action to resume the session after it expires.

" + }, "StartInstance":{ "name":"StartInstance", "http":{ @@ -2577,6 +2628,23 @@ ], "documentation":"

Starts a specific database from a stopped state in Amazon Lightsail. To restart a database, use the reboot relational database operation.

The start relational database operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the Amazon Lightsail Developer Guide.

" }, + "StopGUISession":{ + "name":"StopGUISession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopGUISessionRequest"}, + "output":{"shape":"StopGUISessionResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceException"}, + {"shape":"UnauthenticatedException"} + ], + "documentation":"

Terminates a web-based NICE DCV session that’s used to access a virtual computer’s operating system or application. The session will close and any unsaved data will be lost.

" + }, "StopInstance":{ "name":"StopInstance", "http":{ @@ -3025,6 +3093,14 @@ "nextSnapshotTimeOfDay":{ "shape":"TimeOfDay", "documentation":"

The next daily time an automatic snapshot will be created.

The time shown is in HH:00 format, and in Coordinated Universal Time (UTC).

The snapshot is automatically created between the time shown and up to 45 minutes after.

" + }, + "threshold":{ + "shape":"string", + "documentation":"

The trigger threshold of the action.

This add-on only applies to Lightsail for Research resources.

" + }, + "duration":{ + "shape":"string", + "documentation":"

The amount of idle time in minutes after which your virtual computer will automatically stop.

This add-on only applies to Lightsail for Research resources.

" } }, "documentation":"

Describes an add-on that is enabled for an Amazon Lightsail resource.

" @@ -3044,6 +3120,10 @@ "autoSnapshotAddOnRequest":{ "shape":"AutoSnapshotAddOnRequest", "documentation":"

An object that represents additional parameters when enabling or modifying the automatic snapshot add-on.

" + }, + "stopInstanceOnIdleRequest":{ + "shape":"StopInstanceOnIdleRequest", + "documentation":"

An object that represents additional parameters when enabling or modifying the StopInstanceOnIdle add-on.

This object only applies to Lightsail for Research resources.

" } }, "documentation":"

Describes a request to enable, modify, or disable an add-on for an Amazon Lightsail resource.

An additional cost may be associated with enabling add-ons. For more information, see the Lightsail pricing page.

" @@ -3054,7 +3134,10 @@ }, "AddOnType":{ "type":"string", - "enum":["AutoSnapshot"] + "enum":[ + "AutoSnapshot", + "StopInstanceOnIdle" + ] }, "Alarm":{ "type":"structure", @@ -3173,6 +3256,14 @@ } } }, + "AppCategory":{ + "type":"string", + "enum":["LfR"] + }, + "AppCategoryList":{ + "type":"list", + "member":{"shape":"AppCategory"} + }, "AttachCertificateToDistributionRequest":{ "type":"structure", "required":[ @@ -3218,6 +3309,10 @@ "diskPath":{ "shape":"NonEmptyString", "documentation":"

The disk path to expose to the instance (e.g., /dev/xvdf).

" + }, + "autoMounting":{ + "shape":"boolean", + "documentation":"

A Boolean value used to determine the automatic mounting of a storage volume to a virtual computer. The default value is False.

This value only applies to Lightsail for Research resources.

" } } }, @@ -3331,6 +3426,15 @@ "key":{"shape":"ResourceName"}, "value":{"shape":"DiskMapList"} }, + "AutoMountStatus":{ + "type":"string", + "enum":[ + "Failed", + "Pending", + "Mounted", + "NotMounted" + ] + }, "AutoSnapshotAddOnRequest":{ "type":"structure", "members":{ @@ -3465,6 +3569,10 @@ "platform":{ "shape":"InstancePlatform", "documentation":"

The operating system platform (either Linux/Unix-based or Windows Server-based) of the blueprint.

" + }, + "appCategory":{ + "shape":"AppCategory", + "documentation":"

Virtual computer blueprints that are supported by Lightsail for Research.

This parameter only applies to Lightsail for Research resources.

" } }, "documentation":"

Describes a blueprint (a virtual private server image).

" @@ -3686,6 +3794,10 @@ "supportedPlatforms":{ "shape":"InstancePlatformList", "documentation":"

The operating system platform (Linux/Unix-based or Windows Server-based) that the bundle supports. You can only launch a WINDOWS bundle on a blueprint that supports the WINDOWS platform. LINUX_UNIX blueprints require a LINUX_UNIX bundle.

" + }, + "supportedAppCategories":{ + "shape":"AppCategoryList", + "documentation":"

Virtual computer blueprints that are supported by a Lightsail for Research bundle.

This parameter only applies to Lightsail for Research resources.

" } }, "documentation":"

Describes a bundle, which is a set of specs describing your virtual private server (or instance).

" @@ -4584,6 +4696,24 @@ } } }, + "CostEstimate":{ + "type":"structure", + "members":{ + "usageType":{ + "shape":"NonEmptyString", + "documentation":"

The types of usage that are included in the estimate, such as costs, usage, or data transfer.

" + }, + "resultsByTime":{ + "shape":"EstimatesByTime", + "documentation":"

The cost estimate result that's associated with a time period.

" + } + }, + "documentation":"

Describes the estimated cost for resources in your Lightsail for Research account.

" + }, + "CostEstimates":{ + "type":"list", + "member":{"shape":"CostEstimate"} + }, "CreateBucketAccessKeyRequest":{ "type":"structure", "required":["bucketName"], @@ -5046,6 +5176,41 @@ } } }, + "CreateGUISessionAccessDetailsRequest":{ + "type":"structure", + "required":["resourceName"], + "members":{ + "resourceName":{ + "shape":"ResourceName", + "documentation":"

The resource name.

" + } + } + }, + "CreateGUISessionAccessDetailsResult":{ + "type":"structure", + "members":{ + "resourceName":{ + "shape":"ResourceName", + "documentation":"

The resource name.

" + }, + "status":{ + "shape":"Status", + "documentation":"

The status of the operation.

" + }, + "percentageComplete":{ + "shape":"integer", + "documentation":"

The percentage of completion for the operation.

" + }, + "failureReason":{ + "shape":"string", + "documentation":"

The reason the operation failed.

" + }, + "sessions":{ + "shape":"Sessions", + "documentation":"

Returns information about the specified NICE DCV GUI session.

" + } + } + }, "CreateInstanceSnapshotRequest":{ "type":"structure", "required":[ @@ -5482,6 +5647,10 @@ } } }, + "Currency":{ + "type":"string", + "enum":["USD"] + }, "DeleteAlarmRequest":{ "type":"structure", "required":["alarmName"], @@ -6130,6 +6299,10 @@ "shape":"integer", "documentation":"

(Deprecated) The number of GB in use by the disk.

In releases prior to November 14, 2017, this parameter was not included in the API response. It is now deprecated.

", "deprecated":true + }, + "autoMountStatus":{ + "shape":"AutoMountStatus", + "documentation":"

The status of automatically mounting a storage disk to a virtual computer.

This parameter only applies to Lightsail for Research resources.

" } }, "documentation":"

Describes a block storage disk.

" @@ -6543,6 +6716,36 @@ "key":{"shape":"string"}, "value":{"shape":"string"} }, + "EstimateByTime":{ + "type":"structure", + "members":{ + "usageCost":{ + "shape":"double", + "documentation":"

The amount of cost or usage that's measured for the cost estimate.

" + }, + "pricingUnit":{ + "shape":"PricingUnit", + "documentation":"

The unit of measurement that's used for the cost estimate.

" + }, + "unit":{ + "shape":"double", + "documentation":"

The number of pricing units used to calculate the total number of hours. For example, 1 unit equals 1 hour.

" + }, + "currency":{ + "shape":"Currency", + "documentation":"

The currency of the estimate in USD.

" + }, + "timePeriod":{ + "shape":"TimePeriod", + "documentation":"

The period of time, in days, that an estimate covers. The period has a start date and an end date. The start date must come before the end date.

" + } + }, + "documentation":"

An estimate that's associated with a time period.

" + }, + "EstimatesByTime":{ + "type":"list", + "member":{"shape":"EstimateByTime"} + }, "ExportSnapshotRecord":{ "type":"structure", "members":{ @@ -6746,6 +6949,10 @@ "pageToken":{ "shape":"string", "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetBlueprints request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" + }, + "appCategory":{ + "shape":"AppCategory", + "documentation":"

Returns a list of blueprints that are specific to Lightsail for Research.

You must use this parameter to view Lightsail for Research blueprints.

" } } }, @@ -6898,6 +7105,10 @@ "pageToken":{ "shape":"string", "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetBundles request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" + }, + "appCategory":{ + "shape":"AppCategory", + "documentation":"

Returns a list of bundles that are specific to Lightsail for Research.

You must use this parameter to view Lightsail for Research bundles.

" } } }, @@ -7151,6 +7362,37 @@ } } }, + "GetCostEstimateRequest":{ + "type":"structure", + "required":[ + "resourceName", + "startTime", + "endTime" + ], + "members":{ + "resourceName":{ + "shape":"ResourceName", + "documentation":"

The resource name.

" + }, + "startTime":{ + "shape":"IsoDate", + "documentation":"

The cost estimate start time.

Constraints:

  • Specified in Coordinated Universal Time (UTC).

  • Specified in the Unix time format.

    For example, if you wish to use a start time of October 1, 2018, at 8 PM UTC, specify 1538424000 as the start time.

You can convert a human-friendly time to Unix time format using a converter like Epoch converter.

" + }, + "endTime":{ + "shape":"IsoDate", + "documentation":"

The cost estimate end time.

Constraints:

  • Specified in Coordinated Universal Time (UTC).

  • Specified in the Unix time format.

    For example, if you wish to use an end time of October 1, 2018, at 9 PM UTC, specify 1538427600 as the end time.

You can convert a human-friendly time to Unix time format using a converter like Epoch converter.

" + } + } + }, + "GetCostEstimateResult":{ + "type":"structure", + "members":{ + "resourcesBudgetEstimate":{ + "shape":"ResourcesBudgetEstimate", + "documentation":"

Returns the estimate's forecasted cost or usage.

" + } + } + }, "GetDiskRequest":{ "type":"structure", "required":["diskName"], @@ -9960,7 +10202,9 @@ "UpdateBucketBundle", "UpdateBucket", "SetResourceAccessForBucket", - "UpdateInstanceMetadataOptions" + "UpdateInstanceMetadataOptions", + "StartGUISession", + "StopGUISession" ] }, "Origin":{ @@ -10136,6 +10380,16 @@ "closed" ] }, + "PricingUnit":{ + "type":"string", + "enum":[ + "GB", + "Hrs", + "GB-Mo", + "Bundles", + "Queries" + ] + }, "PrivateRegistryAccess":{ "type":"structure", "members":{ @@ -10906,6 +11160,32 @@ "deny" ] }, + "ResourceBudgetEstimate":{ + "type":"structure", + "members":{ + "resourceName":{ + "shape":"ResourceName", + "documentation":"

The resource name.

" + }, + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The type of resource the budget will track.

" + }, + "costEstimates":{ + "shape":"CostEstimates", + "documentation":"

The cost estimate for the specified budget.

" + }, + "startTime":{ + "shape":"IsoDate", + "documentation":"

The estimate start time.

" + }, + "endTime":{ + "shape":"IsoDate", + "documentation":"

The estimate end time.

" + } + }, + "documentation":"

Describes the estimated cost or usage that a budget tracks.

" + }, "ResourceLocation":{ "type":"structure", "members":{ @@ -10985,6 +11265,10 @@ "Bucket" ] }, + "ResourcesBudgetEstimate":{ + "type":"list", + "member":{"shape":"ResourceBudgetEstimate"} + }, "RevocationReason":{"type":"string"}, "SendContactMethodVerificationRequest":{ "type":"structure", @@ -11005,6 +11289,11 @@ } } }, + "SensitiveNonEmptyString":{ + "type":"string", + "pattern":".*\\S.*", + "sensitive":true + }, "SensitiveString":{ "type":"string", "sensitive":true @@ -11022,6 +11311,28 @@ "exception":true, "fault":true }, + "Session":{ + "type":"structure", + "members":{ + "name":{ + "shape":"NonEmptyString", + "documentation":"

The session name.

" + }, + "url":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The session URL.

" + }, + "isPrimary":{ + "shape":"boolean", + "documentation":"

When true, this Boolean value indicates the primary session for the specified resource.

" + } + }, + "documentation":"

Describes a web-based, remote graphical user interface (GUI), NICE DCV session. The session is used to access a virtual computer’s operating system or application.

" + }, + "Sessions":{ + "type":"list", + "member":{"shape":"Session"} + }, "SetIpAddressTypeRequest":{ "type":"structure", "required":[ @@ -11084,6 +11395,25 @@ } } }, + "StartGUISessionRequest":{ + "type":"structure", + "required":["resourceName"], + "members":{ + "resourceName":{ + "shape":"ResourceName", + "documentation":"

The resource name.

" + } + } + }, + "StartGUISessionResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

The available API operations.

" + } + } + }, "StartInstanceRequest":{ "type":"structure", "required":["instanceName"], @@ -11168,6 +11498,21 @@ "type":"list", "member":{"shape":"StaticIp"} }, + "Status":{ + "type":"string", + "enum":[ + "startExpired", + "notStarted", + "started", + "starting", + "stopped", + "stopping", + "settingUpInstance", + "failedInstanceCreation", + "failedStartingGUISession", + "failedStoppingGUISession" + ] + }, "StatusType":{ "type":"string", "enum":[ @@ -11175,6 +11520,39 @@ "Inactive" ] }, + "StopGUISessionRequest":{ + "type":"structure", + "required":["resourceName"], + "members":{ + "resourceName":{ + "shape":"ResourceName", + "documentation":"

The resource name.

" + } + } + }, + "StopGUISessionResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

The available API operations.

" + } + } + }, + "StopInstanceOnIdleRequest":{ + "type":"structure", + "members":{ + "threshold":{ + "shape":"string", + "documentation":"

The value to compare with the duration.

" + }, + "duration":{ + "shape":"string", + "documentation":"

The amount of idle time in minutes after which your virtual computer will automatically stop.

" + } + }, + "documentation":"

Describes a request to create or edit the StopInstanceOnIdle add-on.

This add-on only applies to Lightsail for Research resources.

" + }, "StopInstanceRequest":{ "type":"structure", "required":["instanceName"], @@ -11318,6 +11696,20 @@ "type":"string", "pattern":"^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$" }, + "TimePeriod":{ + "type":"structure", + "members":{ + "start":{ + "shape":"IsoDate", + "documentation":"

The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01, Lightsail for Research retrieves cost and usage data starting at 2017-01-01 up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.

" + }, + "end":{ + "shape":"IsoDate", + "documentation":"

The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Lightsail for Research retrieves cost and usage data from the start date up to, but not including, 2017-05-01.

" + } + }, + "documentation":"

Sets the start date and end date for retrieving a cost estimate. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

" + }, "TreatMissingData":{ "type":"string", "enum":[ diff --git a/services/location/pom.xml b/services/location/pom.xml index ece6d03d42b7..918bcf94b40f 100644 --- a/services/location/pom.xml +++ b/services/location/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT location AWS Java SDK :: Services :: Location diff --git a/services/location/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/location/src/main/resources/codegen-resources/endpoint-rule-set.json index 3dd896b9afa6..c27472e40291 100644 --- a/services/location/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/location/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://geo-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://geo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://geo.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://geo.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/location/src/main/resources/codegen-resources/endpoint-tests.json b/services/location/src/main/resources/codegen-resources/endpoint-tests.json index fedebca17cbc..507a3285992f 100644 --- a/services/location/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/location/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,131 +1,105 @@ { "testCases": [ { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://geo-fips.us-east-1.api.aws" } }, "params": { - "Region": "cn-north-1", + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": true } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-fips.cn-north-1.amazonaws.com.cn" + "url": "https://geo-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "cn-north-1", + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://geo.us-east-1.api.aws" } }, "params": { - "Region": "cn-north-1", + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://geo.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://geo-fips.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "Region": "us-iso-east-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo.us-iso-east-1.c2s.ic.gov" + "url": "https://geo.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-iso-east-1", + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo-fips.us-east-1.api.aws" + "url": "https://geo-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": true, "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo-fips.us-east-1.amazonaws.com" + "url": "https://geo-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://geo.us-east-1.api.aws" + "url": "https://geo.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://geo.us-east-1.amazonaws.com" + "url": "https://geo.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "us-east-1", + "Region": "cn-north-1", "UseDualStack": false, "UseFIPS": false } @@ -182,6 +156,32 @@ "UseFIPS": false } }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, { "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { @@ -209,7 +209,7 @@ } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -222,6 +222,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { diff --git a/services/location/src/main/resources/codegen-resources/paginators-1.json b/services/location/src/main/resources/codegen-resources/paginators-1.json index dac8d15010eb..24ca27f63d8d 100644 --- a/services/location/src/main/resources/codegen-resources/paginators-1.json +++ b/services/location/src/main/resources/codegen-resources/paginators-1.json @@ -24,6 +24,12 @@ "limit_key": "MaxResults", "result_key": "Entries" }, + "ListKeys": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Entries" + }, "ListMaps": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/location/src/main/resources/codegen-resources/service-2.json b/services/location/src/main/resources/codegen-resources/service-2.json index 7fc5451c2e1d..b68e8bf6ed55 100644 --- a/services/location/src/main/resources/codegen-resources/service-2.json +++ b/services/location/src/main/resources/codegen-resources/service-2.json @@ -206,6 +206,27 @@ "endpoint":{"hostPrefix":"geofencing."}, "idempotent":true }, + "CreateKey":{ + "name":"CreateKey", + "http":{ + "method":"POST", + "requestUri":"/metadata/v0/keys", + "responseCode":200 + }, + "input":{"shape":"CreateKeyRequest"}, + "output":{"shape":"CreateKeyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates an API key resource in your Amazon Web Services account, which lets you grant geo:GetMap* actions for Amazon Location Map resources to the API key bearer.

The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see Using API keys.

", + "endpoint":{"hostPrefix":"metadata."}, + "idempotent":true + }, "CreateMap":{ "name":"CreateMap", "http":{ @@ -223,7 +244,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates a map resource in your AWS account, which provides map tiles of different styles sourced from global location data providers.

If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the AWS service terms for more details.

", + "documentation":"

Creates a map resource in your Amazon Web Services account, which provides map tiles of different styles sourced from global location data providers.

If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the Amazon Web Services service terms for more details.

", "endpoint":{"hostPrefix":"maps."}, "idempotent":true }, @@ -244,7 +265,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates a place index resource in your AWS account. Use a place index resource to geocode addresses and other text queries by using the SearchPlaceIndexForText operation, and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and enable autosuggestions by using the SearchPlaceIndexForSuggestions operation.

If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the AWS service terms for more details.

", + "documentation":"

Creates a place index resource in your Amazon Web Services account. Use a place index resource to geocode addresses and other text queries by using the SearchPlaceIndexForText operation, and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and enable autosuggestions by using the SearchPlaceIndexForSuggestions operation.

If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the Amazon Web Services service terms for more details.

", "endpoint":{"hostPrefix":"places."}, "idempotent":true }, @@ -265,7 +286,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates a route calculator resource in your AWS account.

You can send requests to a route calculator resource to estimate travel time, distance, and get directions. A route calculator sources traffic and road network data from your chosen data provider.

If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the AWS service terms for more details.

", + "documentation":"

Creates a route calculator resource in your Amazon Web Services account.

You can send requests to a route calculator resource to estimate travel time, distance, and get directions. A route calculator sources traffic and road network data from your chosen data provider.

If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the Amazon Web Services service terms for more details.

", "endpoint":{"hostPrefix":"routes."}, "idempotent":true }, @@ -285,7 +306,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates a tracker resource in your AWS account, which lets you retrieve current and historical location of devices.

", + "documentation":"

Creates a tracker resource in your Amazon Web Services account, which lets you retrieve current and historical location of devices.

", "endpoint":{"hostPrefix":"tracking."}, "idempotent":true }, @@ -305,10 +326,30 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes a geofence collection from your AWS account.

This operation deletes the resource permanently. If the geofence collection is the target of a tracker resource, the devices will no longer be monitored.

", + "documentation":"

Deletes a geofence collection from your Amazon Web Services account.

This operation deletes the resource permanently. If the geofence collection is the target of a tracker resource, the devices will no longer be monitored.

", "endpoint":{"hostPrefix":"geofencing."}, "idempotent":true }, + "DeleteKey":{ + "name":"DeleteKey", + "http":{ + "method":"DELETE", + "requestUri":"/metadata/v0/keys/{KeyName}", + "responseCode":200 + }, + "input":{"shape":"DeleteKeyRequest"}, + "output":{"shape":"DeleteKeyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes the specified API key. The API key must have been deactivated more than 90 days previously.

", + "endpoint":{"hostPrefix":"metadata."}, + "idempotent":true + }, "DeleteMap":{ "name":"DeleteMap", "http":{ @@ -325,7 +366,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes a map resource from your AWS account.

This operation deletes the resource permanently. If the map is being used in an application, the map may not render.

", + "documentation":"

Deletes a map resource from your Amazon Web Services account.

This operation deletes the resource permanently. If the map is being used in an application, the map may not render.

", "endpoint":{"hostPrefix":"maps."}, "idempotent":true }, @@ -345,7 +386,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes a place index resource from your AWS account.

This operation deletes the resource permanently.

", + "documentation":"

Deletes a place index resource from your Amazon Web Services account.

This operation deletes the resource permanently.

", "endpoint":{"hostPrefix":"places."}, "idempotent":true }, @@ -365,7 +406,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes a route calculator resource from your AWS account.

This operation deletes the resource permanently.

", + "documentation":"

Deletes a route calculator resource from your Amazon Web Services account.

This operation deletes the resource permanently.

", "endpoint":{"hostPrefix":"routes."}, "idempotent":true }, @@ -385,7 +426,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes a tracker resource from your AWS account.

This operation deletes the resource permanently. If the tracker resource is in use, you may encounter an error. Make sure that the target resource isn't a dependency for your applications.

", + "documentation":"

Deletes a tracker resource from your Amazon Web Services account.

This operation deletes the resource permanently. If the tracker resource is in use, you may encounter an error. Make sure that the target resource isn't a dependency for your applications.

", "endpoint":{"hostPrefix":"tracking."}, "idempotent":true }, @@ -408,6 +449,25 @@ "documentation":"

Retrieves the geofence collection details.

", "endpoint":{"hostPrefix":"geofencing."} }, + "DescribeKey":{ + "name":"DescribeKey", + "http":{ + "method":"GET", + "requestUri":"/metadata/v0/keys/{KeyName}", + "responseCode":200 + }, + "input":{"shape":"DescribeKeyRequest"}, + "output":{"shape":"DescribeKeyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the API key resource details.

The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see Using API keys.

", + "endpoint":{"hostPrefix":"metadata."} + }, "DescribeMap":{ "name":"DescribeMap", "http":{ @@ -652,7 +712,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Finds a place by its unique ID. A PlaceId is returned by other search operations.

A PlaceId is valid only if all of the following are the same in the original search request and the call to GetPlace.

  • Customer AWS account

  • AWS Region

  • Data provider specified in the place index resource

", + "documentation":"

Finds a place by its unique ID. A PlaceId is returned by other search operations.

A PlaceId is valid only if all of the following are the same in the original search request and the call to GetPlace.

  • Customer Amazon Web Services account

  • Amazon Web Services Region

  • Data provider specified in the place index resource

", "endpoint":{"hostPrefix":"places."} }, "ListDevicePositions":{ @@ -688,7 +748,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists geofence collections in your AWS account.

", + "documentation":"

Lists geofence collections in your Amazon Web Services account.

", "endpoint":{"hostPrefix":"geofencing."} }, "ListGeofences":{ @@ -710,6 +770,24 @@ "documentation":"

Lists geofences stored in a given geofence collection.

", "endpoint":{"hostPrefix":"geofencing."} }, + "ListKeys":{ + "name":"ListKeys", + "http":{ + "method":"POST", + "requestUri":"/metadata/v0/list-keys", + "responseCode":200 + }, + "input":{"shape":"ListKeysRequest"}, + "output":{"shape":"ListKeysResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists API key resources in your Amazon Web Services account.

The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see Using API keys.

", + "endpoint":{"hostPrefix":"metadata."} + }, "ListMaps":{ "name":"ListMaps", "http":{ @@ -725,7 +803,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists map resources in your AWS account.

", + "documentation":"

Lists map resources in your Amazon Web Services account.

", "endpoint":{"hostPrefix":"maps."} }, "ListPlaceIndexes":{ @@ -743,7 +821,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists place index resources in your AWS account.

", + "documentation":"

Lists place index resources in your Amazon Web Services account.

", "endpoint":{"hostPrefix":"places."} }, "ListRouteCalculators":{ @@ -761,7 +839,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists route calculator resources in your AWS account.

", + "documentation":"

Lists route calculator resources in your Amazon Web Services account.

", "endpoint":{"hostPrefix":"routes."} }, "ListTagsForResource":{ @@ -817,7 +895,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists tracker resources in your AWS account.

", + "documentation":"

Lists tracker resources in your Amazon Web Services account.

", "endpoint":{"hostPrefix":"tracking."} }, "PutGeofence":{ @@ -956,6 +1034,26 @@ "endpoint":{"hostPrefix":"geofencing."}, "idempotent":true }, + "UpdateKey":{ + "name":"UpdateKey", + "http":{ + "method":"PATCH", + "requestUri":"/metadata/v0/keys/{KeyName}", + "responseCode":200 + }, + "input":{"shape":"UpdateKeyRequest"}, + "output":{"shape":"UpdateKeyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates the specified properties of a given API key resource.

The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see Using API keys.

", + "endpoint":{"hostPrefix":"metadata."}, + "idempotent":true + }, "UpdateMap":{ "name":"UpdateMap", "http":{ @@ -1054,6 +1152,66 @@ }, "exception":true }, + "ApiKey":{ + "type":"string", + "max":1000, + "min":0, + "sensitive":true + }, + "ApiKeyAction":{ + "type":"string", + "pattern":"^geo:GetMap\\*$" + }, + "ApiKeyFilter":{ + "type":"structure", + "members":{ + "KeyStatus":{ + "shape":"Status", + "documentation":"

Filter on Active or Expired API keys.

" + } + }, + "documentation":"

Options for filtering API keys.

" + }, + "ApiKeyRestrictions":{ + "type":"structure", + "required":[ + "AllowActions", + "AllowResources" + ], + "members":{ + "AllowActions":{ + "shape":"ApiKeyRestrictionsAllowActionsList", + "documentation":"

A list of allowed actions that an API key resource grants permissions to perform

Currently, the only valid action is geo:GetMap* as an input to the list. For example, [\"geo:GetMap*\"] is valid but [\"geo:GetMapTile\"] is not.

" + }, + "AllowReferers":{ + "shape":"ApiKeyRestrictionsAllowReferersList", + "documentation":"

An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key from other domains will not be allowed.

Requirements:

  • Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list $\\-._+!*`(),;/?:@=&

  • May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding purposes.

  • May contain wildcard characters question mark (?) and asterisk (*).

    Question mark (?) will replace any single character (including hexadecimal digits).

    Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits).

  • No spaces allowed. For example, https://example.com.

" + }, + "AllowResources":{ + "shape":"ApiKeyRestrictionsAllowResourcesList", + "documentation":"

A list of allowed resource ARNs that a API key bearer can perform actions on

For more information about ARN format, see Amazon Resource Names (ARNs).

In this preview, you can allow only map resources.

Requirements:

  • Must be prefixed with arn.

  • partition and service must not be empty and should begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only alphanumeric numbers, hyphens (-) and periods (.).

  • region and account-id can be empty or should begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only alphanumeric numbers, hyphens (-) and periods (.).

  • resource-id can begin with any character except for forward slash (/) and contain any characters after, including forward slashes to form a path.

    resource-id can also include wildcard characters, denoted by an asterisk (*).

  • arn, partition, service, region, account-id and resource-id must be delimited by a colon (:).

  • No spaces allowed. For example, arn:aws:geo:region:account-id:map/ExampleMap*.

" + } + }, + "documentation":"

API Restrictions on the allowed actions, resources, and referers for an API key resource.

" + }, + "ApiKeyRestrictionsAllowActionsList":{ + "type":"list", + "member":{"shape":"ApiKeyAction"}, + "max":1, + "min":1 + }, + "ApiKeyRestrictionsAllowReferersList":{ + "type":"list", + "member":{"shape":"RefererPattern"}, + "max":5, + "min":1 + }, + "ApiKeyRestrictionsAllowResourcesList":{ + "type":"list", + "member":{"shape":"GeoArn"}, + "max":5, + "min":1 + }, "Arn":{ "type":"string", "max":1600, @@ -1073,7 +1231,7 @@ "members":{ "ConsumerArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the geofence collection to be associated to tracker resource. Used when you need to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer

" + "documentation":"

The Amazon Resource Name (ARN) for the geofence collection to be associated to tracker resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer

" }, "TrackerName":{ "shape":"ResourceName", @@ -1894,7 +2052,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

A key identifier for an AWS KMS customer managed key. Enter a key ID, key ARN, alias name, or alias ARN.

" + "documentation":"

A key identifier for an Amazon Web Services KMS customer managed key. Enter a key ID, key ARN, alias name, or alias ARN.

" }, "PricingPlan":{ "shape":"PricingPlan", @@ -1924,7 +2082,7 @@ "members":{ "CollectionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the geofence collection resource. Used when you need to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection

" + "documentation":"

The Amazon Resource Name (ARN) for the geofence collection resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection

" }, "CollectionName":{ "shape":"ResourceName", @@ -1936,6 +2094,66 @@ } } }, + "CreateKeyRequest":{ + "type":"structure", + "required":[ + "KeyName", + "Restrictions" + ], + "members":{ + "Description":{ + "shape":"ResourceDescription", + "documentation":"

An optional description for the API key resource.

" + }, + "ExpireTime":{ + "shape":"Timestamp", + "documentation":"

The optional timestamp for when the API key resource will expire in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ. One of NoExpiry or ExpireTime must be set.

" + }, + "KeyName":{ + "shape":"ResourceName", + "documentation":"

A custom name for the API key resource.

Requirements:

  • Contain only alphanumeric characters (A–Z, a–z, 0–9), hyphens (-), periods (.), and underscores (_).

  • Must be a unique API key name.

  • No spaces allowed. For example, ExampleAPIKey.

" + }, + "NoExpiry":{ + "shape":"Boolean", + "documentation":"

Optionally set to true to set no expiration time for the API key. One of NoExpiry or ExpireTime must be set.

" + }, + "Restrictions":{ + "shape":"ApiKeyRestrictions", + "documentation":"

The API key restrictions for the API key resource.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

Applies one or more tags to the map resource. A tag is a key-value pair that helps manage, identify, search, and filter your resources by labelling them.

Format: \"key\" : \"value\"

Restrictions:

  • Maximum 50 tags per resource

  • Each resource tag must be unique with a maximum of one value.

  • Maximum key length: 128 Unicode characters in UTF-8

  • Maximum value length: 256 Unicode characters in UTF-8

  • Can use alphanumeric characters (A–Z, a–z, 0–9), and the following characters: + - = . _ : / @.

  • Cannot use \"aws:\" as a prefix for a key.

" + } + } + }, + "CreateKeyResponse":{ + "type":"structure", + "required":[ + "CreateTime", + "Key", + "KeyArn", + "KeyName" + ], + "members":{ + "CreateTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the API key resource was created in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + }, + "Key":{ + "shape":"ApiKey", + "documentation":"

The key value/string of an API key. This value is used when making API calls to authorize the call. For example, see GetMapGlyphs.

" + }, + "KeyArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the API key resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:key/ExampleKey

" + }, + "KeyName":{ + "shape":"ResourceName", + "documentation":"

The name of the API key resource.

" + } + } + }, "CreateMapRequest":{ "type":"structure", "required":[ @@ -1981,7 +2199,7 @@ }, "MapArn":{ "shape":"GeoArn", - "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:map/ExampleMap

" + "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:map/ExampleMap

" }, "MapName":{ "shape":"ResourceName", @@ -1998,7 +2216,7 @@ "members":{ "DataSource":{ "shape":"String", - "documentation":"

Specifies the geospatial data provider for the new place index.

This field is case-sensitive. Enter the valid values as shown. For example, entering HERE returns an error.

Valid values include:

For additional information , see Data providers on the Amazon Location Service Developer Guide.

" + "documentation":"

Specifies the geospatial data provider for the new place index.

This field is case-sensitive. Enter the valid values as shown. For example, entering HERE returns an error.

Valid values include:

For additional information , see Data providers on the Amazon Location Service Developer Guide.

" }, "DataSourceConfiguration":{ "shape":"DataSourceConfiguration", @@ -2038,7 +2256,7 @@ }, "IndexArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the place index resource. Used to specify a resource across AWS.

  • Format example: arn:aws:geo:region:account-id:place-index/ExamplePlaceIndex

" + "documentation":"

The Amazon Resource Name (ARN) for the place index resource. Used to specify a resource across Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:place-index/ExamplePlaceIndex

" }, "IndexName":{ "shape":"ResourceName", @@ -2087,7 +2305,7 @@ "members":{ "CalculatorArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the route calculator resource. Use the ARN when you specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:route-calculator/ExampleCalculator

" + "documentation":"

The Amazon Resource Name (ARN) for the route calculator resource. Use the ARN when you specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:route-calculator/ExampleCalculator

" }, "CalculatorName":{ "shape":"ResourceName", @@ -2109,7 +2327,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

A key identifier for an AWS KMS customer managed key. Enter a key ID, key ARN, alias name, or alias ARN.

" + "documentation":"

A key identifier for an Amazon Web Services KMS customer managed key. Enter a key ID, key ARN, alias name, or alias ARN.

" }, "PositionFiltering":{ "shape":"PositionFiltering", @@ -2151,7 +2369,7 @@ }, "TrackerArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:tracker/ExampleTracker

" + "documentation":"

The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:tracker/ExampleTracker

" }, "TrackerName":{ "shape":"ResourceName", @@ -2186,6 +2404,23 @@ "members":{ } }, + "DeleteKeyRequest":{ + "type":"structure", + "required":["KeyName"], + "members":{ + "KeyName":{ + "shape":"ResourceName", + "documentation":"

The name of the API key to delete.

", + "location":"uri", + "locationName":"KeyName" + } + } + }, + "DeleteKeyResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteMapRequest":{ "type":"structure", "required":["MapName"], @@ -2278,7 +2513,7 @@ "members":{ "CollectionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the geofence collection resource. Used when you need to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection

" + "documentation":"

The Amazon Resource Name (ARN) for the geofence collection resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection

" }, "CollectionName":{ "shape":"ResourceName", @@ -2294,7 +2529,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

A key identifier for an AWS KMS customer managed key assigned to the Amazon Location resource

" + "documentation":"

A key identifier for an Amazon Web Services KMS customer managed key assigned to the Amazon Location resource

" }, "PricingPlan":{ "shape":"PricingPlan", @@ -2318,6 +2553,65 @@ } } }, + "DescribeKeyRequest":{ + "type":"structure", + "required":["KeyName"], + "members":{ + "KeyName":{ + "shape":"ResourceName", + "documentation":"

The name of the API key resource.

", + "location":"uri", + "locationName":"KeyName" + } + } + }, + "DescribeKeyResponse":{ + "type":"structure", + "required":[ + "CreateTime", + "ExpireTime", + "Key", + "KeyArn", + "KeyName", + "Restrictions", + "UpdateTime" + ], + "members":{ + "CreateTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the API key resource was created in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + }, + "Description":{ + "shape":"ResourceDescription", + "documentation":"

The optional description for the API key resource.

" + }, + "ExpireTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the API key resource will expire in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + }, + "Key":{ + "shape":"ApiKey", + "documentation":"

The key value/string of an API key.

" + }, + "KeyArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the API key resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:key/ExampleKey

" + }, + "KeyName":{ + "shape":"ResourceName", + "documentation":"

The name of the API key resource.

" + }, + "Restrictions":{"shape":"ApiKeyRestrictions"}, + "Tags":{ + "shape":"TagMap", + "documentation":"

Tags associated with the API key resource.

" + }, + "UpdateTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the API key resource was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + } + } + }, "DescribeMapRequest":{ "type":"structure", "required":["MapName"], @@ -2360,7 +2654,7 @@ }, "MapArn":{ "shape":"GeoArn", - "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:map/ExampleMap

" + "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:map/ExampleMap

" }, "MapName":{ "shape":"ResourceName", @@ -2424,7 +2718,7 @@ }, "IndexArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the place index resource. Used to specify a resource across AWS.

  • Format example: arn:aws:geo:region:account-id:place-index/ExamplePlaceIndex

" + "documentation":"

The Amazon Resource Name (ARN) for the place index resource. Used to specify a resource across Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:place-index/ExamplePlaceIndex

" }, "IndexName":{ "shape":"ResourceName", @@ -2471,7 +2765,7 @@ "members":{ "CalculatorArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the Route calculator resource. Use the ARN when you specify a resource across AWS.

  • Format example: arn:aws:geo:region:account-id:route-calculator/ExampleCalculator

" + "documentation":"

The Amazon Resource Name (ARN) for the Route calculator resource. Use the ARN when you specify a resource across Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:route-calculator/ExampleCalculator

" }, "CalculatorName":{ "shape":"ResourceName", @@ -2537,7 +2831,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

A key identifier for an AWS KMS customer managed key assigned to the Amazon Location resource.

" + "documentation":"

A key identifier for an Amazon Web Services KMS customer managed key assigned to the Amazon Location resource.

" }, "PositionFiltering":{ "shape":"PositionFiltering", @@ -2561,7 +2855,7 @@ }, "TrackerArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:tracker/ExampleTracker

" + "documentation":"

The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:tracker/ExampleTracker

" }, "TrackerName":{ "shape":"ResourceName", @@ -2659,7 +2953,7 @@ "members":{ "ConsumerArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the geofence collection to be disassociated from the tracker resource. Used when you need to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer

", + "documentation":"

The Amazon Resource Name (ARN) for the geofence collection to be disassociated from the tracker resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer

", "location":"uri", "locationName":"ConsumerArn" }, @@ -2882,7 +3176,7 @@ "members":{ "FontStack":{ "shape":"String", - "documentation":"

A comma-separated list of fonts to load glyphs from in order of preference. For example, Noto Sans Regular, Arial Unicode.

Valid fonts stacks for Esri styles:

  • VectorEsriDarkGrayCanvas – Ubuntu Medium Italic | Ubuntu Medium | Ubuntu Italic | Ubuntu Regular | Ubuntu Bold

  • VectorEsriLightGrayCanvas – Ubuntu Italic | Ubuntu Regular | Ubuntu Light | Ubuntu Bold

  • VectorEsriTopographic – Noto Sans Italic | Noto Sans Regular | Noto Sans Bold | Noto Serif Regular | Roboto Condensed Light Italic

  • VectorEsriStreets – Arial Regular | Arial Italic | Arial Bold

  • VectorEsriNavigation – Arial Regular | Arial Italic | Arial Bold

Valid font stacks for HERE Technologies styles:

  • VectorHereContrast – Fira GO Regular | Fira GO Bold

  • VectorHereExplore, VectorHereExploreTruck, HybridHereExploreSatellite – Fira GO Italic | Fira GO Map | Fira GO Map Bold | Noto Sans CJK JP Bold | Noto Sans CJK JP Light | Noto Sans CJK JP Regular

Valid font stacks for GrabMaps styles:

  • VectorGrabStandardLight, VectorGrabStandardDark – Noto Sans Regular | Noto Sans Medium | Noto Sans Bold

Valid font stacks for Open Data (Preview) styles:

  • VectorOpenDataStandardLight – Amazon Ember Regular,Noto Sans Regular | Amazon Ember Bold,Noto Sans Bold | Amazon Ember Medium,Noto Sans Medium | Amazon Ember Regular Italic,Noto Sans Italic | Amazon Ember Condensed RC Regular,Noto Sans Regular | Amazon Ember Condensed RC Bold,Noto Sans Bold

The fonts used by VectorOpenDataStandardLight are combined fonts that use Amazon Ember for most glyphs but Noto Sans for glyphs unsupported by Amazon Ember.

", + "documentation":"

A comma-separated list of fonts to load glyphs from in order of preference. For example, Noto Sans Regular, Arial Unicode.

Valid fonts stacks for Esri styles:

  • VectorEsriDarkGrayCanvas – Ubuntu Medium Italic | Ubuntu Medium | Ubuntu Italic | Ubuntu Regular | Ubuntu Bold

  • VectorEsriLightGrayCanvas – Ubuntu Italic | Ubuntu Regular | Ubuntu Light | Ubuntu Bold

  • VectorEsriTopographic – Noto Sans Italic | Noto Sans Regular | Noto Sans Bold | Noto Serif Regular | Roboto Condensed Light Italic

  • VectorEsriStreets – Arial Regular | Arial Italic | Arial Bold

  • VectorEsriNavigation – Arial Regular | Arial Italic | Arial Bold

Valid font stacks for HERE Technologies styles:

  • VectorHereContrast – Fira GO Regular | Fira GO Bold

  • VectorHereExplore, VectorHereExploreTruck, HybridHereExploreSatellite – Fira GO Italic | Fira GO Map | Fira GO Map Bold | Noto Sans CJK JP Bold | Noto Sans CJK JP Light | Noto Sans CJK JP Regular

Valid font stacks for GrabMaps styles:

  • VectorGrabStandardLight, VectorGrabStandardDark – Noto Sans Regular | Noto Sans Medium | Noto Sans Bold

Valid font stacks for Open Data styles:

  • VectorOpenDataStandardLight, VectorOpenDataStandardDark, VectorOpenDataVisualizationLight, VectorOpenDataVisualizationDark – Amazon Ember Regular,Noto Sans Regular | Amazon Ember Bold,Noto Sans Bold | Amazon Ember Medium,Noto Sans Medium | Amazon Ember Regular Italic,Noto Sans Italic | Amazon Ember Condensed RC Regular,Noto Sans Regular | Amazon Ember Condensed RC Bold,Noto Sans Bold

The fonts used by the Open Data map styles are combined fonts that use Amazon Ember for most glyphs but Noto Sans for glyphs unsupported by Amazon Ember.

", "location":"uri", "locationName":"FontStack" }, @@ -2892,6 +3186,12 @@ "location":"uri", "locationName":"FontUnicodeRange" }, + "Key":{ + "shape":"ApiKey", + "documentation":"

The optional API key to authorize the request.

", + "location":"querystring", + "locationName":"key" + }, "MapName":{ "shape":"ResourceName", "documentation":"

The map resource associated with the glyph file.

", @@ -2909,7 +3209,13 @@ "members":{ "Blob":{ "shape":"Blob", - "documentation":"

The blob's content type.

" + "documentation":"

The glyph, as binary blob.

" + }, + "CacheControl":{ + "shape":"String", + "documentation":"

The HTTP Cache-Control directive for the value.

", + "location":"header", + "locationName":"Cache-Control" }, "ContentType":{ "shape":"String", @@ -2933,6 +3239,12 @@ "location":"uri", "locationName":"FileName" }, + "Key":{ + "shape":"ApiKey", + "documentation":"

The optional API key to authorize the request.

", + "location":"querystring", + "locationName":"key" + }, "MapName":{ "shape":"ResourceName", "documentation":"

The map resource associated with the sprite file.

", @@ -2952,6 +3264,12 @@ "shape":"Blob", "documentation":"

Contains the body of the sprite sheet or JSON offset file.

" }, + "CacheControl":{ + "shape":"String", + "documentation":"

The HTTP Cache-Control directive for the value.

", + "location":"header", + "locationName":"Cache-Control" + }, "ContentType":{ "shape":"String", "documentation":"

The content type of the sprite sheet and offsets. For example, the sprite sheet content type is image/png, and the sprite offset JSON document is application/json.

", @@ -2965,6 +3283,12 @@ "type":"structure", "required":["MapName"], "members":{ + "Key":{ + "shape":"ApiKey", + "documentation":"

The optional API key to authorize the request.

", + "location":"querystring", + "locationName":"key" + }, "MapName":{ "shape":"ResourceName", "documentation":"

The map resource to retrieve the style descriptor from.

", @@ -2980,6 +3304,12 @@ "shape":"Blob", "documentation":"

Contains the body of the style descriptor.

" }, + "CacheControl":{ + "shape":"String", + "documentation":"

The HTTP Cache-Control directive for the value.

", + "location":"header", + "locationName":"Cache-Control" + }, "ContentType":{ "shape":"String", "documentation":"

The style descriptor's content type. For example, application/json.

", @@ -2998,6 +3328,12 @@ "Z" ], "members":{ + "Key":{ + "shape":"ApiKey", + "documentation":"

The optional API key to authorize the request.

", + "location":"querystring", + "locationName":"key" + }, "MapName":{ "shape":"ResourceName", "documentation":"

The map resource to retrieve the map tiles from.

", @@ -3043,6 +3379,12 @@ "shape":"Blob", "documentation":"

Contains Mapbox Vector Tile (MVT) data.

" }, + "CacheControl":{ + "shape":"String", + "documentation":"

The HTTP Cache-Control directive for the value.

", + "location":"header", + "locationName":"Cache-Control" + }, "ContentType":{ "shape":"String", "documentation":"

The map tile's content type. For example, application/vnd.mapbox-vector-tile.

", @@ -3307,7 +3649,7 @@ "members":{ "Entries":{ "shape":"ListGeofenceCollectionsResponseEntryList", - "documentation":"

Lists the geofence collections that exist in your AWS account.

" + "documentation":"

Lists the geofence collections that exist in your Amazon Web Services account.

" }, "NextToken":{ "shape":"Token", @@ -3436,6 +3778,81 @@ } } }, + "ListKeysRequest":{ + "type":"structure", + "members":{ + "Filter":{ + "shape":"ApiKeyFilter", + "documentation":"

Optionally filter the list to only Active or Expired API keys.

" + }, + "MaxResults":{ + "shape":"ListKeysRequestMaxResultsInteger", + "documentation":"

An optional limit for the number of resources returned in a single call.

Default value: 100

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.

Default value: null

" + } + } + }, + "ListKeysRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListKeysResponse":{ + "type":"structure", + "required":["Entries"], + "members":{ + "Entries":{ + "shape":"ListKeysResponseEntryList", + "documentation":"

Contains API key resources in your Amazon Web Services account. Details include API key name, allowed referers and timestamp for when the API key will expire.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results.

" + } + } + }, + "ListKeysResponseEntry":{ + "type":"structure", + "required":[ + "CreateTime", + "ExpireTime", + "KeyName", + "Restrictions", + "UpdateTime" + ], + "members":{ + "CreateTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the API key was created, in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + }, + "Description":{ + "shape":"ResourceDescription", + "documentation":"

The optional description for the API key resource.

" + }, + "ExpireTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the API key resource will expire, in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + }, + "KeyName":{ + "shape":"ResourceName", + "documentation":"

The name of the API key resource.

" + }, + "Restrictions":{"shape":"ApiKeyRestrictions"}, + "UpdateTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the API key was last updated, in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + } + }, + "documentation":"

An API key resource listed in your Amazon Web Services account.

" + }, + "ListKeysResponseEntryList":{ + "type":"list", + "member":{"shape":"ListKeysResponseEntry"} + }, "ListMapsRequest":{ "type":"structure", "members":{ @@ -3461,7 +3878,7 @@ "members":{ "Entries":{ "shape":"ListMapsResponseEntryList", - "documentation":"

Contains a list of maps in your AWS account

" + "documentation":"

Contains a list of maps in your Amazon Web Services account

" }, "NextToken":{ "shape":"Token", @@ -3506,7 +3923,7 @@ "documentation":"

The timestamp for when the map resource was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" } }, - "documentation":"

Contains details of an existing map resource in your AWS account.

" + "documentation":"

Contains details of an existing map resource in your Amazon Web Services account.

" }, "ListMapsResponseEntryList":{ "type":"list", @@ -3537,7 +3954,7 @@ "members":{ "Entries":{ "shape":"ListPlaceIndexesResponseEntryList", - "documentation":"

Lists the place index resources that exist in your AWS account

" + "documentation":"

Lists the place index resources that exist in your Amazon Web Services account

" }, "NextToken":{ "shape":"Token", @@ -3582,7 +3999,7 @@ "documentation":"

The timestamp for when the place index resource was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" } }, - "documentation":"

A place index resource listed in your AWS account.

" + "documentation":"

A place index resource listed in your Amazon Web Services account.

" }, "ListPlaceIndexesResponseEntryList":{ "type":"list", @@ -3613,7 +4030,7 @@ "members":{ "Entries":{ "shape":"ListRouteCalculatorsResponseEntryList", - "documentation":"

Lists the route calculator resources that exist in your AWS account

" + "documentation":"

Lists the route calculator resources that exist in your Amazon Web Services account

" }, "NextToken":{ "shape":"Token", @@ -3658,7 +4075,7 @@ "documentation":"

The timestamp when the route calculator resource was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

  • For example, 2020–07-2T12:15:20.000Z+01:00

" } }, - "documentation":"

A route calculator resource listed in your AWS account.

" + "documentation":"

A route calculator resource listed in your Amazon Web Services account.

" }, "ListRouteCalculatorsResponseEntryList":{ "type":"list", @@ -3750,7 +4167,7 @@ "members":{ "Entries":{ "shape":"ListTrackersResponseEntryList", - "documentation":"

Contains tracker resources in your AWS account. Details include tracker name, description and timestamps for when the tracker was created and last updated.

" + "documentation":"

Contains tracker resources in your Amazon Web Services account. Details include tracker name, description and timestamps for when the tracker was created and last updated.

" }, "NextToken":{ "shape":"Token", @@ -3808,7 +4225,7 @@ "members":{ "Style":{ "shape":"MapStyle", - "documentation":"

Specifies the map style selected from an available data provider.

Valid Esri map styles:

  • VectorEsriDarkGrayCanvas – The Esri Dark Gray Canvas map style. A vector basemap with a dark gray, neutral background with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • RasterEsriImagery – The Esri Imagery map style. A raster basemap that provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide.

  • VectorEsriLightGrayCanvas – The Esri Light Gray Canvas map style, which provides a detailed vector basemap with a light gray, neutral background style with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • VectorEsriTopographic – The Esri Light map style, which provides a detailed vector basemap with a classic Esri map style.

  • VectorEsriStreets – The Esri World Streets map style, which provides a detailed vector basemap for the world symbolized with a classic Esri street map style. The vector tile layer is similar in content and style to the World Street Map raster map.

  • VectorEsriNavigation – The Esri World Navigation map style, which provides a detailed basemap for the world symbolized with a custom navigation map style that's designed for use during the day in mobile devices.

Valid HERE Technologies map styles:

  • VectorHereContrast – The HERE Contrast (Berlin) map style is a high contrast detailed base map of the world that blends 3D and 2D rendering.

    The VectorHereContrast style has been renamed from VectorHereBerlin. VectorHereBerlin has been deprecated, but will continue to work in applications that use it.

  • VectorHereExplore – A default HERE map style containing a neutral, global map and its features including roads, buildings, landmarks, and water features. It also now includes a fully designed map of Japan.

  • VectorHereExploreTruck – A global map containing truck restrictions and attributes (e.g. width / height / HAZMAT) symbolized with highlighted segments and icons on top of HERE Explore to support use cases within transport and logistics.

  • RasterHereExploreSatellite – A global map containing high resolution satellite imagery.

  • HybridHereExploreSatellite – A global map displaying the road network, street names, and city labels over satellite imagery. This style will automatically retrieve both raster and vector tiles, and your charges will be based on total tiles retrieved.

    Hybrid styles use both vector and raster tiles when rendering the map that you see. This means that more tiles are retrieved than when using either vector or raster tiles alone. Your charges will include all tiles retrieved.

Valid GrabMaps map styles:

  • VectorGrabStandardLight – The Grab Standard Light map style provides a basemap with detailed land use coloring, area names, roads, landmarks, and points of interest covering Southeast Asia.

  • VectorGrabStandardDark – The Grab Standard Dark map style provides a dark variation of the standard basemap covering Southeast Asia.

Grab provides maps only for countries in Southeast Asia, and is only available in the Asia Pacific (Singapore) Region (ap-southeast-1). For more information, see GrabMaps countries and area covered.

Valid Open Data (Preview) map styles:

  • VectorOpenDataStandardLight – The Open Data Standard Light (preview) map style provides a detailed basemap for the world suitable for website and mobile application use. The map includes highways major roads, minor roads, railways, water features, cities, parks, landmarks, building footprints, and administrative boundaries.

    Open Data maps is in preview. We may add, change, or remove features before announcing general availability. For more information, see Open Data is in preview release.

" + "documentation":"

Specifies the map style selected from an available data provider.

Valid Esri map styles:

  • VectorEsriDarkGrayCanvas – The Esri Dark Gray Canvas map style. A vector basemap with a dark gray, neutral background with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • RasterEsriImagery – The Esri Imagery map style. A raster basemap that provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide.

  • VectorEsriLightGrayCanvas – The Esri Light Gray Canvas map style, which provides a detailed vector basemap with a light gray, neutral background style with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • VectorEsriTopographic – The Esri Light map style, which provides a detailed vector basemap with a classic Esri map style.

  • VectorEsriStreets – The Esri World Streets map style, which provides a detailed vector basemap for the world symbolized with a classic Esri street map style. The vector tile layer is similar in content and style to the World Street Map raster map.

  • VectorEsriNavigation – The Esri World Navigation map style, which provides a detailed basemap for the world symbolized with a custom navigation map style that's designed for use during the day in mobile devices.

Valid HERE Technologies map styles:

  • VectorHereContrast – The HERE Contrast (Berlin) map style is a high contrast detailed base map of the world that blends 3D and 2D rendering.

    The VectorHereContrast style has been renamed from VectorHereBerlin. VectorHereBerlin has been deprecated, but will continue to work in applications that use it.

  • VectorHereExplore – A default HERE map style containing a neutral, global map and its features including roads, buildings, landmarks, and water features. It also now includes a fully designed map of Japan.

  • VectorHereExploreTruck – A global map containing truck restrictions and attributes (e.g. width / height / HAZMAT) symbolized with highlighted segments and icons on top of HERE Explore to support use cases within transport and logistics.

  • RasterHereExploreSatellite – A global map containing high resolution satellite imagery.

  • HybridHereExploreSatellite – A global map displaying the road network, street names, and city labels over satellite imagery. This style will automatically retrieve both raster and vector tiles, and your charges will be based on total tiles retrieved.

    Hybrid styles use both vector and raster tiles when rendering the map that you see. This means that more tiles are retrieved than when using either vector or raster tiles alone. Your charges will include all tiles retrieved.

Valid GrabMaps map styles:

  • VectorGrabStandardLight – The Grab Standard Light map style provides a basemap with detailed land use coloring, area names, roads, landmarks, and points of interest covering Southeast Asia.

  • VectorGrabStandardDark – The Grab Standard Dark map style provides a dark variation of the standard basemap covering Southeast Asia.

Grab provides maps only for countries in Southeast Asia, and is only available in the Asia Pacific (Singapore) Region (ap-southeast-1). For more information, see GrabMaps countries and area covered.

Valid Open Data map styles:

  • VectorOpenDataStandardLight – The Open Data Standard Light map style provides a detailed basemap for the world suitable for website and mobile application use. The map includes highways major roads, minor roads, railways, water features, cities, parks, landmarks, building footprints, and administrative boundaries.

  • VectorOpenDataStandardDark – Open Data Standard Dark is a dark-themed map style that provides a detailed basemap for the world suitable for website and mobile application use. The map includes highways major roads, minor roads, railways, water features, cities, parks, landmarks, building footprints, and administrative boundaries.

  • VectorOpenDataVisualizationLight – The Open Data Visualization Light map style is a light-themed style with muted colors and fewer features that aids in understanding overlaid data.

  • VectorOpenDataVisualizationDark – The Open Data Visualization Dark map style is a dark-themed style with muted colors and fewer features that aids in understanding overlaid data.

" } }, "documentation":"

Specifies the map tile style selected from an available provider.

" @@ -4001,6 +4418,12 @@ } } }, + "RefererPattern":{ + "type":"string", + "max":253, + "min":0, + "pattern":"^([$\\-._+!*\\x{60}(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$" + }, "ResourceDescription":{ "type":"string", "max":1000, @@ -4479,6 +4902,13 @@ }, "exception":true }, + "Status":{ + "type":"string", + "enum":[ + "Active", + "Expired" + ] + }, "Step":{ "type":"structure", "required":[ @@ -4751,7 +5181,7 @@ "members":{ "CollectionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the updated geofence collection. Used to specify a resource across AWS.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection

" + "documentation":"

The Amazon Resource Name (ARN) of the updated geofence collection. Used to specify a resource across Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection

" }, "CollectionName":{ "shape":"ResourceName", @@ -4763,6 +5193,60 @@ } } }, + "UpdateKeyRequest":{ + "type":"structure", + "required":["KeyName"], + "members":{ + "Description":{ + "shape":"ResourceDescription", + "documentation":"

Updates the description for the API key resource.

" + }, + "ExpireTime":{ + "shape":"Timestamp", + "documentation":"

Updates the timestamp for when the API key resource will expire in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + }, + "ForceUpdate":{ + "shape":"Boolean", + "documentation":"

The boolean flag to be included for updating ExpireTime or Restrictions details.

Must be set to true to update an API key resource that has been used in the past 7 days.

False if force update is not preferred

Default value: False

" + }, + "KeyName":{ + "shape":"ResourceName", + "documentation":"

The name of the API key resource to update.

", + "location":"uri", + "locationName":"KeyName" + }, + "NoExpiry":{ + "shape":"Boolean", + "documentation":"

Whether the API key should expire. Set to true to set the API key to have no expiration time.

" + }, + "Restrictions":{ + "shape":"ApiKeyRestrictions", + "documentation":"

Updates the API key restrictions for the API key resource.

" + } + } + }, + "UpdateKeyResponse":{ + "type":"structure", + "required":[ + "KeyArn", + "KeyName", + "UpdateTime" + ], + "members":{ + "KeyArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the API key resource. Used when you need to specify a resource across all Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:key/ExampleKey

" + }, + "KeyName":{ + "shape":"ResourceName", + "documentation":"

The name of the API key resource.

" + }, + "UpdateTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the API key resource was last updated in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" + } + } + }, "UpdateMapRequest":{ "type":"structure", "required":["MapName"], @@ -4843,7 +5327,7 @@ "members":{ "IndexArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the upated place index resource. Used to specify a resource across AWS.

  • Format example: arn:aws:geo:region:account-id:place- index/ExamplePlaceIndex

" + "documentation":"

The Amazon Resource Name (ARN) of the upated place index resource. Used to specify a resource across Amazon Web Services.

  • Format example: arn:aws:geo:region:account-id:place- index/ExamplePlaceIndex

" }, "IndexName":{ "shape":"ResourceName", diff --git a/services/lookoutequipment/pom.xml b/services/lookoutequipment/pom.xml index 78a1a043e1ab..3c2c3ce686a9 100644 --- a/services/lookoutequipment/pom.xml +++ b/services/lookoutequipment/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lookoutequipment AWS Java SDK :: Services :: Lookout Equipment diff --git a/services/lookoutmetrics/pom.xml b/services/lookoutmetrics/pom.xml index 43ee9d0a3cc2..14251e8d8c9f 100644 --- a/services/lookoutmetrics/pom.xml +++ b/services/lookoutmetrics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lookoutmetrics AWS Java SDK :: Services :: Lookout Metrics diff --git a/services/lookoutvision/pom.xml b/services/lookoutvision/pom.xml index 6384319cb012..ca9bee577dc2 100644 --- a/services/lookoutvision/pom.xml +++ b/services/lookoutvision/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT lookoutvision AWS Java SDK :: Services :: Lookout Vision diff --git a/services/m2/pom.xml b/services/m2/pom.xml index 3615bd25ed96..70e6c48c4f9d 100644 --- a/services/m2/pom.xml +++ b/services/m2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT m2 AWS Java SDK :: Services :: M2 diff --git a/services/machinelearning/pom.xml b/services/machinelearning/pom.xml index eab1da7942fc..36f0175e1ffa 100644 --- a/services/machinelearning/pom.xml +++ b/services/machinelearning/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT machinelearning AWS Java SDK :: Services :: Amazon Machine Learning diff --git a/services/macie/pom.xml b/services/macie/pom.xml index 364b1ebbd189..d008879d90d1 100644 --- a/services/macie/pom.xml +++ b/services/macie/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT macie AWS Java SDK :: Services :: Macie diff --git a/services/macie2/pom.xml b/services/macie2/pom.xml index 41df2a755454..b53ec1527e78 100644 --- a/services/macie2/pom.xml +++ b/services/macie2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT macie2 AWS Java SDK :: Services :: Macie2 diff --git a/services/macie2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/macie2/src/main/resources/codegen-resources/endpoint-rule-set.json index 2366ba3ed8c3..cca5913612cb 100644 --- a/services/macie2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/macie2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://macie2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://macie2-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://macie2.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://macie2.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://macie2.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/macie2/src/main/resources/codegen-resources/endpoint-tests.json b/services/macie2/src/main/resources/codegen-resources/endpoint-tests.json index 04c290b5e718..26119b4ea3c0 100644 --- a/services/macie2/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/macie2/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1108 +1,536 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.eu-west-3.api.aws" + "url": "https://macie2.af-south-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true + "Region": "af-south-1" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.eu-west-3.amazonaws.com" + "url": "https://macie2.ap-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false + "Region": "ap-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.eu-west-2.api.aws" + "url": "https://macie2.ap-northeast-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.eu-west-2.amazonaws.com" + "url": "https://macie2.ap-northeast-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false + "Region": "ap-northeast-2" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.eu-west-1.api.aws" + "url": "https://macie2.ap-northeast-3.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true + "Region": "ap-northeast-3" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.eu-west-1.amazonaws.com" + "url": "https://macie2.ap-south-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true + "Region": "ap-south-1" } }, { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-northeast-3.amazonaws.com" + "url": "https://macie2.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-northeast-3.api.aws" + "url": "https://macie2.ap-southeast-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true + "Region": "ap-southeast-2" } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-northeast-3.amazonaws.com" + "url": "https://macie2.ca-central-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false + "Region": "ca-central-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-northeast-2.api.aws" + "url": "https://macie2.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-northeast-2.amazonaws.com" + "url": "https://macie2.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-northeast-2.api.aws" + "url": "https://macie2.eu-south-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true + "Region": "eu-south-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-northeast-2.amazonaws.com" + "url": "https://macie2.eu-west-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false + "Region": "eu-west-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-northeast-1.api.aws" + "url": "https://macie2.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-northeast-1.amazonaws.com" + "url": "https://macie2.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-northeast-1.api.aws" + "url": "https://macie2.me-south-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true + "Region": "me-south-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-northeast-1.amazonaws.com" + "url": "https://macie2.sa-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "Region": "sa-east-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.me-south-1.api.aws" + "url": "https://macie2.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.me-south-1.amazonaws.com" + "url": "https://macie2-fips.us-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true + "Region": "us-east-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.me-south-1.amazonaws.com" + "url": "https://macie2.us-east-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false + "Region": "us-east-2" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.sa-east-1.api.aws" + "url": "https://macie2-fips.us-east-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true + "Region": "us-east-2" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.sa-east-1.amazonaws.com" + "url": "https://macie2.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.sa-east-1.api.aws" + "url": "https://macie2-fips.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.sa-east-1.amazonaws.com" + "url": "https://macie2.us-west-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "Region": "us-west-2" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-east-1.api.aws" + "url": "https://macie2-fips.us-west-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "Region": "us-west-2" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-east-1.amazonaws.com" + "url": "https://macie2-fips.us-east-1.api.aws" } }, "params": { + "UseDualStack": true, "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://macie2.ap-east-1.amazonaws.com" + "url": "https://macie2.us-east-1.api.aws" } }, "params": { + "UseDualStack": true, "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-southeast-1.api.aws" + "url": "https://macie2-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-southeast-1.amazonaws.com" + "url": "https://macie2-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://macie2.ap-southeast-1.api.aws" + "url": "https://macie2.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-southeast-1.amazonaws.com" + "url": "https://macie2.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-southeast-2.api.aws" + "url": "https://macie2-fips.us-gov-east-1.api.aws" } }, "params": { + "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.ap-southeast-2.amazonaws.com" + "url": "https://macie2-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://macie2.ap-southeast-2.api.aws" + "url": "https://macie2.us-gov-east-1.api.aws" } }, "params": { + "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.ap-southeast-2.amazonaws.com" + "url": "https://macie2.us-gov-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.us-east-1.amazonaws.com" + "url": "https://macie2-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.us-east-1.amazonaws.com" + "url": "https://macie2.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://macie2-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2-fips.us-east-2.amazonaws.com" + "url": "https://macie2-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://macie2.us-east-2.api.aws" + "url": "https://macie2.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://macie2.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -1112,9 +540,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseDualStack": false, "UseFIPS": true, "Region": "us-east-1", - "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1124,9 +552,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseDualStack": true, "UseFIPS": false, "Region": "us-east-1", - "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/macie2/src/main/resources/codegen-resources/service-2.json b/services/macie2/src/main/resources/codegen-resources/service-2.json index d8dfbf345e3d..701a6efa4cda 100644 --- a/services/macie2/src/main/resources/codegen-resources/service-2.json +++ b/services/macie2/src/main/resources/codegen-resources/service-2.json @@ -3769,7 +3769,7 @@ "documentation": "

The total number of buckets that Amazon Macie wasn't able to evaluate permissions settings for. Macie can't determine whether these buckets are publicly accessible.

" } }, - "documentation": "

Provides information about the number of S3 buckets that are publicly accessible based on a combination of permissions settings for each bucket.

" + "documentation": "

Provides information about the number of S3 buckets that are publicly accessible due to a combination of permissions settings for each bucket.

" }, "BucketCountByEncryptionType": { "type": "structure", @@ -3777,17 +3777,17 @@ "kmsManaged": { "shape": "__long", "locationName": "kmsManaged", - "documentation": "

The total number of buckets that use an KMS key to encrypt new objects by default, either an Amazon Web Services managed key or a customer managed key. These buckets use KMS encryption (SSE-KMS) by default.

" + "documentation": "

The total number of buckets whose default encryption settings are configured to encrypt new objects with an Amazon Web Services managed KMS key or a customer managed KMS key. By default, these buckets encrypt new objects automatically using SSE-KMS encryption.

" }, "s3Managed": { "shape": "__long", "locationName": "s3Managed", - "documentation": "

The total number of buckets that use an Amazon S3 managed key to encrypt new objects by default. These buckets use Amazon S3 managed encryption (SSE-S3) by default.

" + "documentation": "

The total number of buckets whose default encryption settings are configured to encrypt new objects with an Amazon S3 managed key. By default, these buckets encrypt new objects automatically using SSE-S3 encryption.

" }, "unencrypted": { "shape": "__long", "locationName": "unencrypted", - "documentation": "

The total number of buckets that don't encrypt new objects by default. Default encryption is disabled for these buckets.

" + "documentation": "

The total number of buckets that don't specify default server-side encryption behavior for new objects. Default encryption settings aren't configured for these buckets.

" }, "unknown": { "shape": "__long", @@ -3795,7 +3795,7 @@ "documentation": "

The total number of buckets that Amazon Macie doesn't have current encryption metadata for. Macie can't provide current data about the default encryption settings for these buckets.

" } }, - "documentation": "

Provides information about the number of S3 buckets that use certain types of server-side encryption by default or don't encrypt new objects by default. For detailed information about these settings, see Setting default server-side encryption behavior for Amazon S3 buckets in the Amazon Simple Storage Service User Guide.

" + "documentation": "

Provides information about the number of S3 buckets whose settings do or don't specify default server-side encryption behavior for objects that are added to the buckets. For detailed information about these settings, see Setting default server-side encryption behavior for Amazon S3 buckets in the Amazon Simple Storage Service User Guide.

" }, "BucketCountBySharedAccessType": { "type": "structure", @@ -3803,25 +3803,25 @@ "external": { "shape": "__long", "locationName": "external", - "documentation": "

The total number of buckets that are shared with an Amazon Web Services account that isn't part of the same Amazon Macie organization.

" + "documentation": "

The total number of buckets that are shared with one or more of the following or any combination of the following: an Amazon CloudFront OAI, a CloudFront OAC, or an Amazon Web Services account that isn't in the same Amazon Macie organization.

" }, "internal": { "shape": "__long", "locationName": "internal", - "documentation": "

The total number of buckets that are shared with an Amazon Web Services account that's part of the same Amazon Macie organization.

" + "documentation": "

The total number of buckets that are shared with one or more Amazon Web Services accounts in the same Amazon Macie organization. These buckets aren't shared with Amazon CloudFront OAIs or OACs.

" }, "notShared": { "shape": "__long", "locationName": "notShared", - "documentation": "

The total number of buckets that aren't shared with other Amazon Web Services accounts.

" + "documentation": "

The total number of buckets that aren't shared with other Amazon Web Services accounts, Amazon CloudFront OAIs, or CloudFront OACs.

" }, "unknown": { "shape": "__long", "locationName": "unknown", - "documentation": "

The total number of buckets that Amazon Macie wasn't able to evaluate shared access settings for. Macie can't determine whether these buckets are shared with other Amazon Web Services accounts.

" + "documentation": "

The total number of buckets that Amazon Macie wasn't able to evaluate shared access settings for. Macie can't determine whether these buckets are shared with other Amazon Web Services accounts, Amazon CloudFront OAIs, or CloudFront OACs.

" } }, - "documentation": "

Provides information about the number of S3 buckets that are or aren't shared with other Amazon Web Services accounts.

" + "documentation": "

Provides information about the number of S3 buckets that are or aren't shared with other Amazon Web Services accounts, Amazon CloudFront origin access identities (OAIs), or CloudFront origin access controls (OACs). In this data, an Amazon Macie organization is defined as a set of Macie accounts that are centrally managed as a group of related accounts through Organizations or by Macie invitation.

" }, "BucketCountPolicyAllowsUnencryptedObjectUploads": { "type": "structure", @@ -3842,7 +3842,7 @@ "documentation": "

The total number of buckets that Amazon Macie wasn't able to evaluate server-side encryption requirements for. Macie can't determine whether the bucket policies for these buckets require server-side encryption of new objects.

" } }, - "documentation": "

Provides information about the number of S3 buckets whose bucket policies do or don't require server-side encryption of objects when objects are uploaded to the buckets.

" + "documentation": "

Provides information about the number of S3 buckets whose bucket policies do or don't require server-side encryption of objects when objects are added to the buckets.

" }, "BucketCriteria": { "type": "map", @@ -3927,7 +3927,7 @@ "allowsUnencryptedObjectUploads": { "shape": "AllowsUnencryptedObjectUploads", "locationName": "allowsUnencryptedObjectUploads", - "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are uploaded to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

" + "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are added to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

" }, "bucketArn": { "shape": "__string", @@ -3937,7 +3937,7 @@ "bucketCreatedAt": { "shape": "__timestampIso8601", "locationName": "bucketCreatedAt", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the bucket was created, or changes such as edits to the bucket's policy were most recently made to the bucket.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the bucket was created. This value can also indicate when changes such as edits to the bucket's policy were most recently made to the bucket.

" }, "bucketName": { "shape": "__string", @@ -3957,7 +3957,7 @@ "errorCode": { "shape": "BucketMetadataErrorCode", "locationName": "errorCode", - "documentation": "

Specifies the error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

" + "documentation": "

The error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

" }, "errorMessage": { "shape": "__string", @@ -3972,12 +3972,12 @@ "lastAutomatedDiscoveryTime": { "shape": "__timestampIso8601", "locationName": "lastAutomatedDiscoveryTime", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently performed automated sensitive data discovery for the bucket. This value is null if automated sensitive data discovery is currently disabled for your account.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently analyzed data in the bucket while performing automated sensitive data discovery for your account. This value is null if automated sensitive data discovery is currently disabled for your account.

" }, "lastUpdated": { "shape": "__timestampIso8601", "locationName": "lastUpdated", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently retrieved both bucket and object metadata from Amazon S3 for the bucket.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently retrieved bucket or object metadata from Amazon S3 for the bucket.

" }, "objectCount": { "shape": "__long", @@ -3987,7 +3987,7 @@ "objectCountByEncryptionType": { "shape": "ObjectCountByEncryptionType", "locationName": "objectCountByEncryptionType", - "documentation": "

The total number of objects that are in the bucket, grouped by server-side encryption type. This includes a grouping that reports the total number of objects that aren't encrypted or use client-side encryption.

" + "documentation": "

The total number of objects in the bucket, grouped by server-side encryption type. This includes a grouping that reports the total number of objects that aren't encrypted or use client-side encryption.

" }, "publicAccess": { "shape": "BucketPublicAccess", @@ -4007,17 +4007,17 @@ "sensitivityScore": { "shape": "__integer", "locationName": "sensitivityScore", - "documentation": "

The sensitivity score for the bucket, ranging from\u00a0-1\u00a0(no analysis due to an error) to\u00a0100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.

" + "documentation": "

The sensitivity score for the bucket, ranging from -1 (classification error) to 100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.

" }, "serverSideEncryption": { "shape": "BucketServerSideEncryption", "locationName": "serverSideEncryption", - "documentation": "

Specifies whether the bucket encrypts new objects by default and, if so, the type of server-side encryption that's used.

" + "documentation": "

The default server-side encryption settings for the bucket.

" }, "sharedAccess": { "shape": "SharedAccess", "locationName": "sharedAccess", - "documentation": "

Specifies whether the bucket is shared with another Amazon Web Services account. Possible values are:

  • EXTERNAL - The bucket is shared with an Amazon Web Services account that isn't part of the same Amazon Macie organization.

  • INTERNAL - The bucket is shared with an Amazon Web Services account that's part of the same Amazon Macie organization.

  • NOT_SHARED - The bucket isn't shared with other Amazon Web Services accounts.

  • UNKNOWN - Amazon Macie wasn't able to evaluate the shared access settings for the bucket.

" + "documentation": "

Specifies whether the bucket is shared with another Amazon Web Services account, an Amazon CloudFront origin access identity (OAI), or a CloudFront origin access control (OAC). Possible values are:

  • EXTERNAL - The bucket is shared with one or more of the following or any combination of the following: a CloudFront OAI, a CloudFront OAC, or an Amazon Web Services account that isn't part of your Amazon Macie organization.

  • INTERNAL - The bucket is shared with one or more Amazon Web Services accounts that are part of your Amazon Macie organization. It isn't shared with a CloudFront OAI or OAC.

  • NOT_SHARED - The bucket isn't shared with another Amazon Web Services account, a CloudFront OAI, or a CloudFront OAC.

  • UNKNOWN - Amazon Macie wasn't able to evaluate the shared access settings for the bucket.

An Amazon Macie organization is a set of Macie accounts that are centrally managed as a group of related accounts through Organizations or by Macie invitation.

" }, "sizeInBytes": { "shape": "__long", @@ -4050,7 +4050,7 @@ "documentation": "

Specifies whether versioning is enabled for the bucket.

" } }, - "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process metadata from Amazon S3 for the bucket and the bucket's objects, the value for the versioning property is false and the value for most other properties is null. Key exceptions are accountId, bucketArn, bucketCreatedAt, bucketName, lastUpdated, and region. To identify the cause of the error, refer to the errorCode and errorMessage values.

" + "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. By default, object count and storage size values include data for object parts that are the result of incomplete multipart uploads. For more information, see How Macie monitors Amazon S3 data security in the Amazon Macie User Guide.

If an error occurs when Macie attempts to retrieve and process metadata from Amazon S3 for the bucket or the bucket's objects, the value for the versioning property is false and the value for most other properties is null. Key exceptions are accountId, bucketArn, bucketCreatedAt, bucketName, lastUpdated, and region. To identify the cause of the error, refer to the errorCode and errorMessage values.

" }, "BucketMetadataErrorCode": { "type": "string", @@ -4113,12 +4113,12 @@ "kmsMasterKeyId": { "shape": "__string", "locationName": "kmsMasterKeyId", - "documentation": "

The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS key that's used by default to encrypt objects that are added to the bucket. This value is null if the bucket uses an Amazon S3 managed key to encrypt new objects or the bucket doesn't encrypt new objects by default.

" + "documentation": "

The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS key that's used by default to encrypt objects that are added to the bucket. This value is null if the bucket is configured to use an Amazon S3 managed key to encrypt new objects.

" }, "type": { "shape": "Type", "locationName": "type", - "documentation": "

The type of server-side encryption that's used by default when storing new objects in the bucket. Possible values are:

  • AES256 - New objects are encrypted with an Amazon S3 managed key. They use SSE-S3 encryption.

  • aws:kms - New objects are encrypted with an KMS key (kmsMasterKeyId), either an Amazon Web Services managed key or a customer managed key. They use SSE-KMS encryption.

  • NONE - New objects aren't encrypted by default. Default encryption is disabled for the bucket.

" + "documentation": "

The server-side encryption algorithm that's used by default to encrypt objects that are added to the bucket. Possible values are:

  • AES256 - New objects are encrypted with an Amazon S3 managed key. They use SSE-S3 encryption.

  • aws:kms - New objects are encrypted with an KMS key (kmsMasterKeyId), either an Amazon Web Services managed key or a customer managed key. They use SSE-KMS encryption.

  • NONE - The bucket's default encryption settings don't specify server-side encryption behavior for new objects.

" } }, "documentation": "

Provides information about the default server-side encryption settings for an S3 bucket. For detailed information about these settings, see Setting default server-side encryption behavior for Amazon S3 buckets in the Amazon Simple Storage Service User Guide.

" @@ -4155,7 +4155,7 @@ "notSensitive": { "shape": "SensitivityAggregations", "locationName": "notSensitive", - "documentation": "

The aggregated statistical data for all buckets that have a sensitivity score of 0-49.

" + "documentation": "

The aggregated statistical data for all buckets that have a sensitivity score of 1-49.

" }, "sensitive": { "shape": "SensitivityAggregations", @@ -4287,7 +4287,7 @@ "reason": { "shape": "__string", "locationName": "reason", - "documentation": "

A brief description of the status of the finding. This value is null if the status (code) of the finding is COMPLETE.

Amazon Macie uses this value to notify you of any errors, warnings, or considerations that might impact your analysis of the finding and the affected S3 object. Possible values are:

  • ARCHIVE_CONTAINS_UNPROCESSED_FILES - The object is an archive file and Macie extracted and analyzed only some or none of the files in the archive. To determine which files Macie analyzed, if any, you can refer to the corresponding sensitive data discovery result for the finding (ClassificationDetails.detailedResultsLocation).

  • ARCHIVE_EXCEEDS_SIZE_LIMIT - The object is an archive file whose total storage size exceeds the size quota for this type of archive.

  • ARCHIVE_NESTING_LEVEL_OVER_LIMIT - The object is an archive file whose nested depth exceeds the quota for the maximum number of nested levels that Macie analyzes for this type of archive.

  • ARCHIVE_TOTAL_BYTES_EXTRACTED_OVER_LIMIT - The object is an archive file that exceeds the quota for the maximum amount of data that Macie extracts and analyzes for this type of archive.

  • ARCHIVE_TOTAL_DOCUMENTS_PROCESSED_OVER_LIMIT - The object is an archive file that contains more than the maximum number of files that Macie extracts and analyzes for this type of archive.

  • FILE_EXCEEDS_SIZE_LIMIT - The storage size of the object exceeds the size quota for this type of file.

  • INVALID_ENCRYPTION - The object is encrypted using server-side encryption but Macie isn\u2019t allowed to use the key. Macie can\u2019t decrypt and analyze the object.

  • INVALID_KMS_KEY - The object is encrypted with an KMS key that was disabled or is being deleted. Macie can\u2019t decrypt and analyze the object.

  • INVALID_OBJECT_STATE - The object doesn\u2019t use a supported Amazon S3 storage class. For more information, see Discovering sensitive data in the Amazon Macie User Guide.

  • JSON_NESTING_LEVEL_OVER_LIMIT - The object contains JSON data and the nested depth of the data exceeds the quota for the number of nested levels that Macie analyzes for this type of file.

  • MALFORMED_FILE - The object is a malformed or corrupted file. An error occurred when Macie attempted to detect the file\u2019s type or extract data from the file.

  • OBJECT_VERSION_MISMATCH - The object was changed while Macie was analyzing it.

  • NO_SUCH_BUCKET_AVAILABLE - The object was in a bucket that was deleted shortly before or when Macie attempted to analyze the object.

  • MALFORMED_OR_FILE_SIZE_EXCEEDS_LIMIT - The object is a Microsoft Office file that is malformed or exceeds the size quota for this type of file. If the file is malformed, an error occurred when Macie attempted to extract data from the file.

  • OOXML_UNCOMPRESSED_SIZE_EXCEEDS_LIMIT - The object is an Office Open XML file that exceeds the size quota for this type of file.

  • OOXML_UNCOMPRESSED_RATIO_EXCEEDS_LIMIT - The object is an Office Open XML file whose compression ratio exceeds the compression quota for this type of file.

  • PERMISSION_DENIED - Macie isn\u2019t allowed to access the object. The object\u2019s permissions settings prevent Macie from analyzing the object.

  • SOURCE_OBJECT_NO_LONGER_AVAILABLE - The object was deleted shortly before or when Macie attempted to analyze it.

  • UNABLE_TO_PARSE_FILE - The object is a file that contains structured data and an error occurred when Macie attempted to parse the data.

  • UNSUPPORTED_FILE_TYPE_EXCEPTION - The object is a file that uses an unsupported file or storage format. For more information, see Supported file and storage formats in the Amazon Macie User Guide.

For information about sensitive data discovery quotas for files, see Amazon Macie quotas in the Amazon Macie User Guide.

" + "documentation": "

A brief description of the status of the finding. This value is null if the status (code) of the finding is COMPLETE.

Amazon Macie uses this value to notify you of any errors, warnings, or considerations that might impact your analysis of the finding and the affected S3 object. Possible values are:

  • ARCHIVE_CONTAINS_UNPROCESSED_FILES - The object is an archive file and Macie extracted and analyzed only some or none of the files in the archive. To determine which files Macie analyzed, if any, refer to the corresponding sensitive data discovery result for the finding (ClassificationDetails.detailedResultsLocation).

  • ARCHIVE_EXCEEDS_SIZE_LIMIT - The object is an archive file whose total storage size exceeds the size quota for this type of archive.

  • ARCHIVE_NESTING_LEVEL_OVER_LIMIT - The object is an archive file whose nested depth exceeds the quota for the maximum number of nested levels that Macie analyzes for this type of archive.

  • ARCHIVE_TOTAL_BYTES_EXTRACTED_OVER_LIMIT - The object is an archive file that exceeds the quota for the maximum amount of data that Macie extracts and analyzes for this type of archive.

  • ARCHIVE_TOTAL_DOCUMENTS_PROCESSED_OVER_LIMIT - The object is an archive file that contains more than the maximum number of files that Macie extracts and analyzes for this type of archive.

  • FILE_EXCEEDS_SIZE_LIMIT - The storage size of the object exceeds the size quota for this type of file.

  • INVALID_ENCRYPTION - The object is encrypted using server-side encryption but Macie isn't allowed to use the key. Macie can't decrypt and analyze the object.

  • INVALID_KMS_KEY - The object is encrypted with an KMS key that was disabled or is being deleted. Macie can't decrypt and analyze the object.

  • INVALID_OBJECT_STATE - The object doesn't use a supported Amazon S3 storage class.

  • JSON_NESTING_LEVEL_OVER_LIMIT - The object contains JSON data and the nested depth of the data exceeds the quota for the number of nested levels that Macie analyzes for this type of file.

  • MALFORMED_FILE - The object is a malformed or corrupted file. An error occurred when Macie attempted to detect the file's type or extract data from the file.

  • MALFORMED_OR_FILE_SIZE_EXCEEDS_LIMIT - The object is a Microsoft Office file that is malformed or exceeds the size quota for this type of file. If the file is malformed, an error occurred when Macie attempted to extract data from the file.

  • NO_SUCH_BUCKET_AVAILABLE - The object was in a bucket that was deleted shortly before or when Macie attempted to analyze the object.

  • OBJECT_VERSION_MISMATCH - The object was changed while Macie was analyzing it.

  • OOXML_UNCOMPRESSED_RATIO_EXCEEDS_LIMIT - The object is an Office Open XML file whose compression ratio exceeds the compression quota for this type of file.

  • OOXML_UNCOMPRESSED_SIZE_EXCEEDS_LIMIT - The object is an Office Open XML file that exceeds the size quota for this type of file.

  • PERMISSION_DENIED - Macie isn't allowed to access the object. The object's permissions settings prevent Macie from analyzing the object.

  • SOURCE_OBJECT_NO_LONGER_AVAILABLE - The object was deleted shortly before or when Macie attempted to analyze it.

  • TIME_CUT_OFF_REACHED - Macie started analyzing the object but additional analysis would exceed the time quota for analyzing an object.

  • UNABLE_TO_PARSE_FILE - The object is a file that contains structured data and an error occurred when Macie attempted to parse the data.

  • UNSUPPORTED_FILE_TYPE_EXCEPTION - The object is a file that uses an unsupported file or storage format.

For information about quotas, supported storage classes, and supported file and storage formats, see Quotas and Supported storage classes and formats in the Amazon Macie User Guide.

" } }, "documentation": "

Provides information about the status of a sensitive data finding.

" @@ -4313,7 +4313,7 @@ "name": { "shape": "ClassificationScopeName", "locationName": "name", - "documentation": "

The name of the classification scope.

" + "documentation": "

The name of the classification scope: automated-sensitive-data-discovery.

" } }, "documentation": "

Provides information about the classification scope for an Amazon Macie account. Macie uses the scope's settings when it performs automated sensitive data discovery for the account.

" @@ -4824,7 +4824,7 @@ "arn": { "shape": "__string", "locationName": "arn", - "documentation": "

The Amazon Resource Name (ARN) of the custom data identifier.

" + "documentation": "

The unique identifier for the custom data identifier.

" }, "count": { "shape": "__long", @@ -5405,7 +5405,7 @@ }, "EncryptionType": { "type": "string", - "documentation": "

The type of server-side encryption that's used to encrypt an S3 object or objects in an S3 bucket. Possible values are:

", + "documentation": "

The server-side encryption algorithm that was used to encrypt an S3 object or is used by default to encrypt objects that are added to an S3 bucket. Possible values are:

", "enum": [ "NONE", "AES256", @@ -5657,7 +5657,8 @@ "Policy:IAMUser/S3BucketSharedExternally", "Policy:IAMUser/S3BucketReplicatedExternally", "Policy:IAMUser/S3BucketEncryptionDisabled", - "Policy:IAMUser/S3BlockPublicAccessDisabled" + "Policy:IAMUser/S3BlockPublicAccessDisabled", + "Policy:IAMUser/S3BucketSharedWithCloudFront" ] }, "FindingsFilterAction": { @@ -5837,22 +5838,22 @@ "bucketCountByEffectivePermission": { "shape": "BucketCountByEffectivePermission", "locationName": "bucketCountByEffectivePermission", - "documentation": "

The total number of buckets that are publicly accessible based on a combination of permissions settings for each bucket.

" + "documentation": "

The total number of buckets that are publicly accessible due to a combination of permissions settings for each bucket.

" }, "bucketCountByEncryptionType": { "shape": "BucketCountByEncryptionType", "locationName": "bucketCountByEncryptionType", - "documentation": "

The total number of buckets that use certain types of server-side encryption to encrypt new objects by default. This object also reports the total number of buckets that don't encrypt new objects by default.

" + "documentation": "

The total number of buckets whose settings do or don't specify default server-side encryption behavior for objects that are added to the buckets.

" }, "bucketCountByObjectEncryptionRequirement": { "shape": "BucketCountPolicyAllowsUnencryptedObjectUploads", "locationName": "bucketCountByObjectEncryptionRequirement", - "documentation": "

The total number of buckets whose bucket policies do or don't require server-side encryption of objects when objects are uploaded to the buckets.

" + "documentation": "

The total number of buckets whose bucket policies do or don't require server-side encryption of objects when objects are added to the buckets.

" }, "bucketCountBySharedAccessType": { "shape": "BucketCountBySharedAccessType", "locationName": "bucketCountBySharedAccessType", - "documentation": "

The total number of buckets that are or aren't shared with another Amazon Web Services account.

" + "documentation": "

The total number of buckets that are or aren't shared with other Amazon Web Services accounts, Amazon CloudFront origin access identities (OAIs), or CloudFront origin access controls (OACs).

" }, "bucketStatisticsBySensitivity": { "shape": "BucketStatisticsBySensitivity", @@ -5872,7 +5873,7 @@ "lastUpdated": { "shape": "__timestampIso8601", "locationName": "lastUpdated", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently retrieved both bucket and object metadata from Amazon S3 for the buckets.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently retrieved bucket or object metadata from Amazon S3 for the buckets.

" }, "objectCount": { "shape": "__long", @@ -5940,7 +5941,7 @@ "name": { "shape": "ClassificationScopeName", "locationName": "name", - "documentation": "

The name of the classification scope.

" + "documentation": "

The name of the classification scope: automated-sensitive-data-discovery.

" }, "s3": { "shape": "S3ClassificationScope", @@ -6264,12 +6265,12 @@ "email": { "shape": "__string", "locationName": "email", - "documentation": "

The email address for the account.

" + "documentation": "

The email address for the account. This value is null if the account is associated with the administrator account through Organizations.

" }, "invitedAt": { "shape": "__timestampIso8601", "locationName": "invitedAt", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if an invitation hasn't been sent to the account.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie membership invitation hasn't been sent to the account.

" }, "masterAccountId": { "shape": "__string", @@ -6318,7 +6319,7 @@ "sensitivityScore": { "shape": "__integer", "locationName": "sensitivityScore", - "documentation": "

The current sensitivity score for the bucket, ranging from\u00a0-1\u00a0(no analysis due to an error) to\u00a0100 (sensitive). By default, this score is calculated automatically based on the amount of data that Amazon Macie has analyzed in the bucket and the amount of sensitive data that Macie has found in the bucket.

" + "documentation": "

The current sensitivity score for the bucket, ranging from -1 (classification error) to 100 (sensitive). By default, this score is calculated automatically based on the amount of data that Amazon Macie has analyzed in the bucket and the amount of sensitive data that Macie has found in the bucket.

" }, "sensitivityScoreOverridden": { "shape": "__boolean", @@ -6444,7 +6445,7 @@ "name": { "shape": "__string", "locationName": "name", - "documentation": "

The name of the template.

" + "documentation": "

The name of the template: automated-sensitive-data-discovery.

" }, "sensitivityInspectionTemplateId": { "shape": "SensitivityInspectionTemplateId", @@ -6575,7 +6576,7 @@ "userName": { "shape": "__string", "locationName": "userName", - "documentation": "

The user name of the IAM user who performed the action.

" + "documentation": "

The username of the IAM user who performed the action.

" } }, "documentation": "

Provides information about an Identity and Access Management (IAM) user who performed an action on an affected resource.

" @@ -7370,7 +7371,7 @@ "artifacts": { "shape": "__listOfResourceProfileArtifact", "locationName": "artifacts", - "documentation": "

An array of objects, one for each S3 object that Amazon Macie selected for analysis.

" + "documentation": "

An array of objects, one for each of 1-100 S3 objects that Amazon Macie selected for analysis.

If Macie has analyzed more than 100 objects in the bucket, Macie populates the array based on the value for the ResourceProfileArtifact.sensitive field for an object: true (sensitive), followed by false (not sensitive). Macie then populates any remaining items in the array with information about objects where the value for the ResourceProfileArtifact.classificationResultStatus field is SKIPPED.

" }, "nextToken": { "shape": "__string", @@ -7536,7 +7537,7 @@ "errorCode": { "shape": "BucketMetadataErrorCode", "locationName": "errorCode", - "documentation": "

Specifies the error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

" + "documentation": "

The error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

" }, "errorMessage": { "shape": "__string", @@ -7551,7 +7552,7 @@ "lastAutomatedDiscoveryTime": { "shape": "__timestampIso8601", "locationName": "lastAutomatedDiscoveryTime", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently performed automated sensitive data discovery for the bucket. This value is null if automated sensitive data discovery is currently disabled for your account.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently analyzed data in the bucket while performing automated sensitive data discovery for your account. This value is null if automated sensitive data discovery is currently disabled for your account.

" }, "objectCount": { "shape": "__long", @@ -7566,7 +7567,7 @@ "sensitivityScore": { "shape": "__integer", "locationName": "sensitivityScore", - "documentation": "

The current sensitivity score for the bucket, ranging from\u00a0-1\u00a0(no analysis due to an error) to\u00a0100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.

" + "documentation": "

The current sensitivity score for the bucket, ranging from -1 (classification error) to 100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.

" }, "sizeInBytes": { "shape": "__long", @@ -7589,7 +7590,7 @@ "documentation": "

The total storage size, in bytes, of the objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.

" } }, - "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process information about the bucket or the bucket's objects, the value for most of these properties is null. Key exceptions are accountId and bucketName. To identify the cause of the error, refer to the errorCode and errorMessage values.

" + "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. By default, object count and storage size values include data for object parts that are the result of incomplete multipart uploads. For more information, see How Macie monitors Amazon S3 data security in the Amazon Macie User Guide.

If an error occurs when Macie attempts to retrieve and process information about the bucket or the bucket's objects, the value for most of these properties is null. Key exceptions are accountId and bucketName. To identify the cause of the error, refer to the errorCode and errorMessage values.

" }, "MatchingResource": { "type": "structure", @@ -7628,12 +7629,12 @@ "email": { "shape": "__string", "locationName": "email", - "documentation": "

The email address for the account.

" + "documentation": "

The email address for the account. This value is null if the account is associated with the administrator account through Organizations.

" }, "invitedAt": { "shape": "__timestampIso8601", "locationName": "invitedAt", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if an invitation hasn't been sent to the account.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie membership invitation hasn't been sent to the account.

" }, "masterAccountId": { "shape": "__string", @@ -7695,7 +7696,7 @@ "unencrypted": { "shape": "__long", "locationName": "unencrypted", - "documentation": "

The total number of objects that aren't encrypted or use client-side encryption.

" + "documentation": "

The total number of objects that use client-side encryption or aren't encrypted.

" }, "unknown": { "shape": "__long", @@ -7737,7 +7738,7 @@ "lineRanges": { "shape": "Ranges", "locationName": "lineRanges", - "documentation": "

An array of objects, one for each occurrence of sensitive data in a non-binary text file, such as an HTML, TXT, or XML file. Each Range object specifies a line or inclusive range of lines that contains the sensitive data, and the position of the data on the specified line or lines.

This value is often null for file types that are supported by Cell, Page, or Record objects. Exceptions are the location of sensitive data in: unstructured sections of an otherwise structured file, such as a comment in a file; a malformed file that Amazon Macie analyzes as plain text; and, a CSV or TSV file that has any column names that contain sensitive data.

" + "documentation": "

An array of objects, one for each occurrence of sensitive data in an email message or a non-binary text file such as an HTML, TXT, or XML file. Each Range object specifies a line or inclusive range of lines that contains the sensitive data, and the position of the data on the specified line or lines.

This value is often null for file types that are supported by Cell, Page, or Record objects. Exceptions are the location of sensitive data in: unstructured sections of an otherwise structured file, such as a comment in a file; a malformed file that Amazon Macie analyzes as plain text; and, a CSV or TSV file that has any column names that contain sensitive data.

" }, "offsetRanges": { "shape": "Ranges", @@ -7878,7 +7879,7 @@ "documentation": "

The number of characters, with spaces and starting from 1, from the beginning of the first line that contains the sensitive data (start) to the beginning of the sensitive data.

" } }, - "documentation": "

Specifies the location of an occurrence of sensitive data in a non-binary text file, such as an HTML, TXT, or XML file.

" + "documentation": "

Specifies the location of an occurrence of sensitive data in an email message or a non-binary text file such as an HTML, TXT, or XML file.

" }, "Ranges": { "type": "list", @@ -7937,12 +7938,12 @@ "replicatedExternally": { "shape": "__boolean", "locationName": "replicatedExternally", - "documentation": "

Specifies whether the bucket is configured to replicate one or more objects to an Amazon Web Services account that isn't part of the same Amazon Macie organization.

" + "documentation": "

Specifies whether the bucket is configured to replicate one or more objects to a bucket for an Amazon Web Services account that isn't part of your Amazon Macie organization. An Amazon Macie organization is a set of Macie accounts that are centrally managed as a group of related accounts through Organizations or by Macie invitation.

" }, "replicationAccounts": { "shape": "__listOf__string", "locationName": "replicationAccounts", - "documentation": "

An array of Amazon Web Services account IDs, one for each Amazon Web Services account that the bucket is configured to replicate one or more objects to.

" + "documentation": "

An array of Amazon Web Services account IDs, one for each Amazon Web Services account that owns a bucket that the bucket is configured to replicate one or more objects to.

" } }, "documentation": "

Provides information about settings that define whether one or more objects in an S3 bucket are replicated to S3 buckets for other Amazon Web Services accounts and, if so, which accounts.

" @@ -8096,7 +8097,7 @@ "allowsUnencryptedObjectUploads": { "shape": "AllowsUnencryptedObjectUploads", "locationName": "allowsUnencryptedObjectUploads", - "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are uploaded to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

" + "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are added to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

" }, "arn": { "shape": "__string", @@ -8106,12 +8107,12 @@ "createdAt": { "shape": "__timestampIso8601", "locationName": "createdAt", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the bucket was created.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the bucket was created. This value can also indicate when changes such as edits to the bucket's policy were most recently made to the bucket, relative to when the finding was created or last updated.

" }, "defaultServerSideEncryption": { "shape": "ServerSideEncryption", "locationName": "defaultServerSideEncryption", - "documentation": "

The type of server-side encryption that's used by default to encrypt objects in the bucket.

" + "documentation": "

The default server-side encryption settings for the bucket.

" }, "name": { "shape": "__string", @@ -8342,7 +8343,7 @@ "serverSideEncryption": { "shape": "ServerSideEncryption", "locationName": "serverSideEncryption", - "documentation": "

The type of server-side encryption that's used to encrypt the object.

" + "documentation": "

The type of server-side encryption that was used to encrypt the object.

" }, "size": { "shape": "__long", @@ -8672,7 +8673,7 @@ "publiclyAccessibleCount": { "shape": "__long", "locationName": "publiclyAccessibleCount", - "documentation": "

The total number of buckets that are publicly accessible based on a combination of permissions settings for each bucket.

" + "documentation": "

The total number of buckets that are publicly accessible due to a combination of permissions settings for each bucket.

" }, "totalCount": { "shape": "__long", @@ -8729,12 +8730,12 @@ "id": { "shape": "__string", "locationName": "id", - "documentation": "

The unique identifier for the sensitivity inspection template for the account.

" + "documentation": "

The unique identifier for the sensitivity inspection template.

" }, "name": { "shape": "__string", "locationName": "name", - "documentation": "

The name of the sensitivity inspection template for the account.

" + "documentation": "

The name of the sensitivity inspection template: automated-sensitive-data-discovery.

" } }, "documentation": "

Provides information about the sensitivity inspection template for an Amazon Macie account. Macie uses the template's settings when it performs automated sensitive data discovery for the account.

" @@ -8745,7 +8746,7 @@ "encryptionType": { "shape": "EncryptionType", "locationName": "encryptionType", - "documentation": "

The server-side encryption algorithm that's used when storing data in the bucket or object. If default encryption is disabled for the bucket or the object isn't encrypted using server-side encryption, this value is NONE.

" + "documentation": "

The server-side encryption algorithm that's used when storing data in the bucket or object. If default encryption settings aren't configured for the bucket or the object isn't encrypted using server-side encryption, this value is NONE.

" }, "kmsMasterKeyId": { "shape": "__string", @@ -8753,7 +8754,7 @@ "documentation": "

The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS key that's used to encrypt data in the bucket or the object. This value is null if an KMS key isn't used to encrypt the data.

" } }, - "documentation": "

Provides information about the server-side encryption settings for an S3 bucket or S3 object.

" + "documentation": "

Provides information about the default server-side encryption settings for an S3 bucket or the encryption settings for an S3 object.

" }, "ServiceLimit": { "type": "structure", @@ -8834,7 +8835,7 @@ "arn": { "shape": "__string", "locationName": "arn", - "documentation": "

The Amazon Resource Name (ARN) of the source account, IAM user, or role that was used to get the credentials.

" + "documentation": "

The Amazon Resource Name (ARN) of the source account, Identity and Access Management (IAM) user, or role that was used to get the credentials.

" }, "principalId": { "shape": "__string", @@ -9433,7 +9434,7 @@ "description": { "shape": "__string", "locationName": "description", - "documentation": "

A custom description of the filter. The description can contain as many as 512 characters.

We strongly recommend that you avoid including any sensitive data in the description of a filter. Other users might be able to see this description, depending on the actions that they're allowed to perform in Amazon Macie.

" + "documentation": "

A custom description of the filter. The description can contain as many as 512 characters.

We strongly recommend that you avoid including any sensitive data in the description of a filter. Other users of your account might be able to see this description, depending on the actions that they're allowed to perform in Amazon Macie.

" }, "findingCriteria": { "shape": "FindingCriteria", @@ -9449,7 +9450,7 @@ "name": { "shape": "__string", "locationName": "name", - "documentation": "

A custom name for the filter. The name must contain at least 3 characters and can contain as many as 64 characters.

We strongly recommend that you avoid including any sensitive data in the name of a filter. Other users might be able to see this name, depending on the actions that they're allowed to perform in Amazon Macie.

" + "documentation": "

A custom name for the filter. The name must contain at least 3 characters and can contain as many as 64 characters.

We strongly recommend that you avoid including any sensitive data in the name of a filter. Other users of your account might be able to see this name, depending on the actions that they're allowed to perform in Amazon Macie.

" }, "position": { "shape": "__integer", @@ -9611,7 +9612,7 @@ "description": { "shape": "__string", "locationName": "description", - "documentation": "

A custom description of the template.

" + "documentation": "

A custom description of the template. The description can contain as many as 200 characters.

" }, "excludes": { "shape": "SensitivityInspectionTemplateExcludes", diff --git a/services/managedblockchain/pom.xml b/services/managedblockchain/pom.xml index 6069d0ba2344..60daefbb13f3 100644 --- a/services/managedblockchain/pom.xml +++ b/services/managedblockchain/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT managedblockchain AWS Java SDK :: Services :: ManagedBlockchain diff --git a/services/managedblockchain/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/managedblockchain/src/main/resources/codegen-resources/endpoint-rule-set.json index 08b193321195..f33cf19b95fa 100644 --- a/services/managedblockchain/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/managedblockchain/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://managedblockchain.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://managedblockchain.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://managedblockchain.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/managedblockchain/src/main/resources/codegen-resources/endpoint-tests.json b/services/managedblockchain/src/main/resources/codegen-resources/endpoint-tests.json index bd1d94336cf7..bb672b6a2283 100644 --- a/services/managedblockchain/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/managedblockchain/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,380 +1,346 @@ { "testCases": [ { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://managedblockchain-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://managedblockchain-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.eu-west-2.api.aws" + "url": "https://managedblockchain.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.eu-west-2.amazonaws.com" + "url": "https://managedblockchain.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.eu-west-1.api.aws" + "url": "https://managedblockchain.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.eu-west-1.amazonaws.com" + "url": "https://managedblockchain.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.eu-west-1.api.aws" + "url": "https://managedblockchain.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.eu-west-1.amazonaws.com" + "url": "https://managedblockchain.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.ap-northeast-2.api.aws" + "url": "https://managedblockchain-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-northeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.ap-northeast-2.amazonaws.com" + "url": "https://managedblockchain-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://managedblockchain.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://managedblockchain.ap-northeast-2.amazonaws.com" + "url": "https://managedblockchain.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.ap-northeast-1.api.aws" + "url": "https://managedblockchain-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.ap-northeast-1.amazonaws.com" + "url": "https://managedblockchain-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://managedblockchain.ap-northeast-1.api.aws" + "url": "https://managedblockchain.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.ap-northeast-1.amazonaws.com" + "url": "https://managedblockchain.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.us-gov-west-1.api.aws" + "url": "https://managedblockchain-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": true } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.us-gov-west-1.amazonaws.com" + "url": "https://managedblockchain-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://managedblockchain.us-gov-west-1.api.aws" + "url": "https://managedblockchain.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": true } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.us-gov-west-1.amazonaws.com" + "url": "https://managedblockchain.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://managedblockchain-fips.ap-southeast-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.ap-southeast-1.amazonaws.com" + "url": "https://managedblockchain-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://managedblockchain.ap-southeast-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.ap-southeast-1.amazonaws.com" + "url": "https://managedblockchain.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://managedblockchain-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain-fips.us-east-1.amazonaws.com" + "url": "https://managedblockchain-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.us-east-1.api.aws" + "url": "https://managedblockchain.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://managedblockchain.us-east-1.amazonaws.com" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -384,9 +350,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -396,11 +362,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/managedblockchain/src/main/resources/codegen-resources/service-2.json b/services/managedblockchain/src/main/resources/codegen-resources/service-2.json index f401ee8ae0d7..bcfb4e2e697e 100644 --- a/services/managedblockchain/src/main/resources/codegen-resources/service-2.json +++ b/services/managedblockchain/src/main/resources/codegen-resources/service-2.json @@ -27,9 +27,10 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"ThrottlingException"}, {"shape":"ResourceLimitExceededException"}, - {"shape":"InternalServiceErrorException"} + {"shape":"InternalServiceErrorException"}, + {"shape":"TooManyTagsException"} ], - "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Creates a new accessor for use with Managed Blockchain Ethereum nodes. An accessor object is a container that has the information required for token based access to your Ethereum nodes.

" + "documentation":"

Creates a new accessor for use with Managed Blockchain Ethereum nodes. An accessor contains information required for token based access to your Ethereum nodes.

" }, "CreateMember":{ "name":"CreateMember", @@ -126,7 +127,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Deletes an accessor that your Amazon Web Services account owns. An accessor object is a container that has the information required for token based access to your Ethereum nodes including, the BILLING_TOKEN. After an accessor is deleted, the status of the accessor changes from AVAILABLE to PENDING_DELETION. An accessor in the PENDING_DELETION state can’t be used for new WebSocket requests or HTTP requests. However, WebSocket connections that were initiated while the accessor was in the AVAILABLE state remain open until they expire (up to 2 hours).

" + "documentation":"

Deletes an accessor that your Amazon Web Services account owns. An accessor object is a container that has the information required for token based access to your Ethereum nodes including, the BILLING_TOKEN. After an accessor is deleted, the status of the accessor changes from AVAILABLE to PENDING_DELETION. An accessor in the PENDING_DELETION state can’t be used for new WebSocket requests or HTTP requests. However, WebSocket connections that were initiated while the accessor was in the AVAILABLE state remain open until they expire (up to 2 hours).

" }, "DeleteMember":{ "name":"DeleteMember", @@ -179,7 +180,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Returns detailed information about an accessor. An accessor object is a container that has the information required for token based access to your Ethereum nodes.

" + "documentation":"

Returns detailed information about an accessor. An accessor object is a container that has the information required for token based access to your Ethereum nodes.

" }, "GetMember":{ "name":"GetMember", @@ -263,7 +264,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Returns a list of the accessors and their properties. Accessor objects are containers that have the information required for token based access to your Ethereum nodes.

" + "documentation":"

Returns a list of the accessors and their properties. Accessor objects are containers that have the information required for token based access to your Ethereum nodes.

" }, "ListInvitations":{ "name":"ListInvitations", @@ -503,7 +504,7 @@ }, "Type":{ "shape":"AccessorType", - "documentation":"

The type of the accessor.

Currently accessor type is restricted to BILLING_TOKEN.

" + "documentation":"

The type of the accessor.

Currently, accessor type is restricted to BILLING_TOKEN.

" }, "BillingToken":{ "shape":"AccessorBillingTokenString", @@ -520,9 +521,13 @@ "Arn":{ "shape":"ArnString", "documentation":"

The Amazon Resource Name (ARN) of the accessor. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + }, + "Tags":{ + "shape":"OutputTagMap", + "documentation":"

The tags assigned to the Accessor.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" } }, - "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

The properties of the Accessor.

" + "documentation":"

The properties of the Accessor.

" }, "AccessorBillingTokenString":{ "type":"string", @@ -567,7 +572,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the accessor. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, - "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

A summary of accessor properties.

" + "documentation":"

A summary of accessor properties.

" }, "AccessorSummaryList":{ "type":"list", @@ -621,7 +626,11 @@ }, "AccessorType":{ "shape":"AccessorType", - "documentation":"

The type of accessor.

Currently accessor type is restricted to BILLING_TOKEN.

" + "documentation":"

The type of accessor.

Currently, accessor type is restricted to BILLING_TOKEN.

" + }, + "Tags":{ + "shape":"InputTagMap", + "documentation":"

Tags to assign to the Accessor.

Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" } } }, @@ -723,7 +732,7 @@ }, "Tags":{ "shape":"InputTagMap", - "documentation":"

Tags to assign to the network. Each tag consists of a key and optional value.

When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" + "documentation":"

Tags to assign to the network.

Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" } } }, @@ -755,7 +764,7 @@ }, "NetworkId":{ "shape":"ResourceIdString", - "documentation":"

The unique identifier of the network for the node.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-goerli

  • n-ethereum-rinkeby

  • n-ethereum-ropsten

", + "documentation":"

The unique identifier of the network for the node.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-goerli

  • n-ethereum-rinkeby

", "location":"uri", "locationName":"networkId" }, @@ -769,7 +778,7 @@ }, "Tags":{ "shape":"InputTagMap", - "documentation":"

Tags to assign to the node. Each tag consists of a key and optional value.

When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" + "documentation":"

Tags to assign to the node.

Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" } } }, @@ -816,7 +825,7 @@ }, "Tags":{ "shape":"InputTagMap", - "documentation":"

Tags to assign to the proposal. Each tag consists of a key and optional value.

When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource. If the proposal is for a network invitation, the invitation inherits the tags added to the proposal.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" + "documentation":"

Tags to assign to the proposal.

Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" } } }, @@ -881,7 +890,7 @@ "members":{ "NetworkId":{ "shape":"ResourceIdString", - "documentation":"

The unique identifier of the network that the node is on.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-goerli

  • n-ethereum-rinkeby

  • n-ethereum-ropsten

", + "documentation":"

The unique identifier of the network that the node is on.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-goerli

  • n-ethereum-rinkeby

", "location":"uri", "locationName":"networkId" }, @@ -1537,7 +1546,7 @@ }, "Tags":{ "shape":"OutputTagMap", - "documentation":"

Tags assigned to the member. Tags consist of a key and optional value. For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" + "documentation":"

Tags assigned to the member. Tags consist of a key and optional value.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" }, "Arn":{ "shape":"ArnString", @@ -1575,7 +1584,7 @@ }, "Tags":{ "shape":"InputTagMap", - "documentation":"

Tags assigned to the member. Tags consist of a key and optional value. For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.

" + "documentation":"

Tags assigned to the member. Tags consist of a key and optional value.

When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" }, "KmsKeyArn":{ "shape":"ArnString", @@ -1611,10 +1620,10 @@ }, "AdminPassword":{ "shape":"PasswordString", - "documentation":"

The password for the member's initial administrative user. The AdminPassword must be at least eight characters long and no more than 32 characters. It must contain at least one uppercase letter, one lowercase letter, and one digit. It cannot have a single quotation mark (‘), a double quotation marks (“), a forward slash(/), a backward slash(\\), @, or a space.

" + "documentation":"

The password for the member's initial administrative user. The AdminPassword must be at least 8 characters long and no more than 32 characters. It must contain at least one uppercase letter, one lowercase letter, and one digit. It cannot have a single quotation mark (‘), a double quotation marks (“), a forward slash(/), a backward slash(\\), @, or a space.

" } }, - "documentation":"

Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network using the Hyperledger Fabric framework.

" + "documentation":"

Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network that is using the Hyperledger Fabric framework.

" }, "MemberFabricLogPublishingConfiguration":{ "type":"structure", @@ -1751,7 +1760,7 @@ }, "VotingPolicy":{ "shape":"VotingPolicy", - "documentation":"

The voting rules for the network to decide if a proposal is accepted.

" + "documentation":"

The voting rules that the network uses to decide if a proposal is accepted.

" }, "Status":{ "shape":"NetworkStatus", @@ -1777,7 +1786,7 @@ "members":{ "ChainId":{ "shape":"String", - "documentation":"

The Ethereum CHAIN_ID associated with the Ethereum network. Chain IDs are as follows:

  • mainnet = 1

  • goerli = 5

  • rinkeby = 4

  • ropsten = 3

" + "documentation":"

The Ethereum CHAIN_ID associated with the Ethereum network. Chain IDs are as follows:

  • mainnet = 1

  • goerli = 5

  • rinkeby = 4

" } }, "documentation":"

Attributes of Ethereum for a network.

" diff --git a/services/marketplacecatalog/pom.xml b/services/marketplacecatalog/pom.xml index 8732e979dca0..c6e71df3abd3 100644 --- a/services/marketplacecatalog/pom.xml +++ b/services/marketplacecatalog/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT marketplacecatalog AWS Java SDK :: Services :: Marketplace Catalog diff --git a/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json index c7dcb3cfc458..918d585430fa 100644 --- a/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://catalog.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://catalog.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://catalog.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://catalog.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://catalog.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://catalog.marketplace.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://catalog.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://catalog.marketplace.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-tests.json b/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-tests.json index 0dd9c2795e8c..2b506d08d1fb 100644 --- a/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/marketplacecatalog/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,119 +1,280 @@ { "testCases": [ { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace-fips.us-west-2.api.aws" + "url": "https://catalog.marketplace-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-west-2", "UseDualStack": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace-fips.us-west-2.amazonaws.com" + "url": "https://catalog.marketplace-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-west-2", "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace.us-west-2.api.aws" + "url": "https://catalog.marketplace.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-west-2", "UseDualStack": true } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace.us-west-2.amazonaws.com" + "url": "https://catalog.marketplace-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "us-west-2", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace-fips.us-east-1.api.aws" + "url": "https://catalog.marketplace-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace-fips.us-east-1.amazonaws.com" + "url": "https://catalog.marketplace-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace.us-east-1.api.aws" + "url": "https://catalog.marketplace.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://catalog.marketplace.us-east-1.amazonaws.com" + "url": "https://catalog.marketplace.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://catalog.marketplace-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -124,8 +285,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -136,11 +297,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json b/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json index df4f5c09c8e0..d996c65f6a33 100644 --- a/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json +++ b/services/marketplacecatalog/src/main/resources/codegen-resources/service-2.json @@ -31,6 +31,23 @@ ], "documentation":"

Used to cancel an open change request. Must be sent before the status of the request changes to APPLYING, the final stage of completing your change request. You can describe a change during the 60-day request history retention period for API calls.

" }, + "DeleteResourcePolicy":{ + "name":"DeleteResourcePolicy", + "http":{ + "method":"DELETE", + "requestUri":"/DeleteResourcePolicy" + }, + "input":{"shape":"DeleteResourcePolicyRequest"}, + "output":{"shape":"DeleteResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes a resource-based policy on an Entity that is identified by its resource ARN.

" + }, "DescribeChangeSet":{ "name":"DescribeChangeSet", "http":{ @@ -66,6 +83,23 @@ ], "documentation":"

Returns the metadata and content of the entity.

" }, + "GetResourcePolicy":{ + "name":"GetResourcePolicy", + "http":{ + "method":"GET", + "requestUri":"/GetResourcePolicy" + }, + "input":{"shape":"GetResourcePolicyRequest"}, + "output":{"shape":"GetResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Gets a resource-based policy of an Entity that is identified by its resource ARN.

" + }, "ListChangeSets":{ "name":"ListChangeSets", "http":{ @@ -116,6 +150,23 @@ ], "documentation":"

Lists all tags that have been added to a resource (either an entity or change set).

" }, + "PutResourcePolicy":{ + "name":"PutResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/PutResourcePolicy" + }, + "input":{"shape":"PutResourcePolicyRequest"}, + "output":{"shape":"PutResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Attaches a resource-based policy to an Entity. Examples of an entity include: AmiProduct and ContainerProduct.

" + }, "StartChangeSet":{ "name":"StartChangeSet", "http":{ @@ -133,7 +184,7 @@ {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Allows you to request changes for your entities. Within a single ChangeSet, you can't start the same change type against the same entity multiple times. Additionally, when a ChangeSet is running, all the entities targeted by the different changes are locked until the change set has completed (either succeeded, cancelled, or failed). If you try to start a change set containing a change against an entity that is already locked, you will receive a ResourceInUseException error.

For example, you can't start the ChangeSet described in the example later in this topic because it contains two changes to run the same change type (AddRevisions) against the same entity (entity-id@1).

For more information about working with change sets, see Working with change sets.

" + "documentation":"

Allows you to request changes for your entities. Within a single ChangeSet, you can't start the same change type against the same entity multiple times. Additionally, when a ChangeSet is running, all the entities targeted by the different changes are locked until the change set has completed (either succeeded, cancelled, or failed). If you try to start a change set containing a change against an entity that is already locked, you will receive a ResourceInUseException error.

For example, you can't start the ChangeSet described in the example later in this topic because it contains two changes to run the same change type (AddRevisions) against the same entity (entity-id@1).

For more information about working with change sets, see Working with change sets. For information on change types for single-AMI products, see Working with single-AMI products. Als, for more information on change types available for container-based products, see Working with container products.

" }, "TagResource":{ "name":"TagResource", @@ -182,7 +233,7 @@ "members":{ "Message":{"shape":"ExceptionMessageContent"} }, - "documentation":"

Access is denied.

", + "documentation":"

Access is denied.

HTTP status code: 403

", "error":{"httpStatusCode":403}, "exception":true, "synthetic":true @@ -237,7 +288,7 @@ "members":{ "ChangeType":{ "shape":"ChangeType", - "documentation":"

Change types are single string values that describe your intention for the change. Each change type is unique for each EntityType provided in the change's scope.

" + "documentation":"

Change types are single string values that describe your intention for the change. Each change type is unique for each EntityType provided in the change's scope. For more information on change types available for single-AMI products, see Working with single-AMI products. Also, for more information on change types available for container-based products, see Working with container products.

" }, "Entity":{ "shape":"Entity", @@ -249,7 +300,7 @@ }, "Details":{ "shape":"Json", - "documentation":"

This object contains details specific to the change type of the requested change.

" + "documentation":"

This object contains details specific to the change type of the requested change. For more information on change types available for single-AMI products, see Working with single-AMI products. Also, for more information on change types available for container-based products, see Working with container products.

" }, "ChangeName":{ "shape":"ChangeName", @@ -370,6 +421,23 @@ "min":20, "pattern":"^([\\d]{4})\\-(1[0-2]|0[1-9])\\-(3[01]|0[1-9]|[12][\\d])T(2[0-3]|[01][\\d]):([0-5][\\d]):([0-5][\\d])Z$" }, + "DeleteResourcePolicyRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "documentation":"

The Amazon Resource Name (ARN) of the Entity resource that is associated with the resource policy.

", + "location":"querystring", + "locationName":"resourceArn" + } + } + }, + "DeleteResourcePolicyResponse":{ + "type":"structure", + "members":{ + } + }, "DescribeChangeSetRequest":{ "type":"structure", "required":[ @@ -608,6 +676,27 @@ "min":1, "pattern":"^(.)+$" }, + "GetResourcePolicyRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "documentation":"

The Amazon Resource Name (ARN) of the Entity resource that is associated with the resource policy.

", + "location":"querystring", + "locationName":"resourceArn" + } + } + }, + "GetResourcePolicyResponse":{ + "type":"structure", + "members":{ + "Policy":{ + "shape":"ResourcePolicyJson", + "documentation":"

The policy document to set; formatted in JSON.

" + } + } + }, "Identifier":{ "type":"string", "max":255, @@ -619,7 +708,7 @@ "members":{ "Message":{"shape":"ExceptionMessageContent"} }, - "documentation":"

There was an internal service exception.

", + "documentation":"

There was an internal service exception.

HTTP status code: 500

", "error":{"httpStatusCode":500}, "exception":true, "synthetic":true @@ -630,6 +719,12 @@ "min":2, "pattern":"^[\\s]*\\{[\\s\\S]*\\}[\\s]*$" }, + "ListChangeSetsMaxResultInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, "ListChangeSetsRequest":{ "type":"structure", "required":["Catalog"], @@ -647,7 +742,7 @@ "documentation":"

An object that contains two attributes, SortBy and SortOrder.

" }, "MaxResults":{ - "shape":"MaxResultInteger", + "shape":"ListChangeSetsMaxResultInteger", "documentation":"

The maximum number of results returned by a single call. This value must be provided in the next call to retrieve the next set of results. By default, this value is 20.

" }, "NextToken":{ @@ -669,6 +764,12 @@ } } }, + "ListEntitiesMaxResultInteger":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, "ListEntitiesRequest":{ "type":"structure", "required":[ @@ -697,9 +798,10 @@ "documentation":"

The value of the next token, if it exists. Null if there are no more results.

" }, "MaxResults":{ - "shape":"MaxResultInteger", + "shape":"ListEntitiesMaxResultInteger", "documentation":"

Specifies the upper limit of the elements on a single page. If a value isn't provided, the default value is 20.

" - } + }, + "OwnershipType":{"shape":"OwnershipType"} } }, "ListEntitiesResponse":{ @@ -738,18 +840,41 @@ } } }, - "MaxResultInteger":{ - "type":"integer", - "box":true, - "max":20, - "min":1 - }, "NextToken":{ "type":"string", "max":2048, "min":1, "pattern":"^[\\w+=.:@\\-\\/]$" }, + "OwnershipType":{ + "type":"string", + "enum":[ + "SELF", + "SHARED" + ] + }, + "PutResourcePolicyRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Policy" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "documentation":"

The Amazon Resource Name (ARN) of the Entity resource you want to associate with a resource policy.

" + }, + "Policy":{ + "shape":"ResourcePolicyJson", + "documentation":"

The policy document to set; formatted in JSON.

" + } + } + }, + "PutResourcePolicyResponse":{ + "type":"structure", + "members":{ + } + }, "RequestedChangeList":{ "type":"list", "member":{"shape":"Change"}, @@ -787,7 +912,7 @@ "members":{ "Message":{"shape":"ExceptionMessageContent"} }, - "documentation":"

The specified resource wasn't found.

", + "documentation":"

The specified resource wasn't found.

HTTP status code: 404

", "error":{"httpStatusCode":404}, "exception":true, "synthetic":true @@ -802,6 +927,12 @@ "exception":true, "synthetic":true }, + "ResourcePolicyJson":{ + "type":"string", + "max":10240, + "min":1, + "pattern":"^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$" + }, "ServiceQuotaExceededException":{ "type":"structure", "members":{ @@ -909,13 +1040,13 @@ "TagKeyList":{ "type":"list", "member":{"shape":"TagKey"}, - "max":50, + "max":200, "min":1 }, "TagList":{ "type":"list", "member":{"shape":"Tag"}, - "max":50, + "max":200, "min":1 }, "TagResourceRequest":{ @@ -951,7 +1082,7 @@ "members":{ "Message":{"shape":"ExceptionMessageContent"} }, - "documentation":"

Too many requests.

", + "documentation":"

Too many requests.

HTTP status code: 429

", "error":{"httpStatusCode":429}, "exception":true, "synthetic":true @@ -983,7 +1114,7 @@ "members":{ "Message":{"shape":"ExceptionMessageContent"} }, - "documentation":"

An error occurred during validation.

", + "documentation":"

An error occurred during validation.

HTTP status code: 422

", "error":{"httpStatusCode":422}, "exception":true, "synthetic":true diff --git a/services/marketplacecommerceanalytics/pom.xml b/services/marketplacecommerceanalytics/pom.xml index 59a4facbf4b5..b3f4d5e7d9be 100644 --- a/services/marketplacecommerceanalytics/pom.xml +++ b/services/marketplacecommerceanalytics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT marketplacecommerceanalytics AWS Java SDK :: Services :: AWS Marketplace Commerce Analytics diff --git a/services/marketplaceentitlement/pom.xml b/services/marketplaceentitlement/pom.xml index f8cffc1148eb..d39274e93895 100644 --- a/services/marketplaceentitlement/pom.xml +++ b/services/marketplaceentitlement/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT marketplaceentitlement AWS Java SDK :: Services :: AWS Marketplace Entitlement diff --git a/services/marketplacemetering/pom.xml b/services/marketplacemetering/pom.xml index e066ad372eca..8a3ce55becf9 100644 --- a/services/marketplacemetering/pom.xml +++ b/services/marketplacemetering/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT marketplacemetering AWS Java SDK :: Services :: AWS Marketplace Metering Service diff --git a/services/mediaconnect/pom.xml b/services/mediaconnect/pom.xml index b56c47566872..9a9e6e9b7b2f 100644 --- a/services/mediaconnect/pom.xml +++ b/services/mediaconnect/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT mediaconnect AWS Java SDK :: Services :: MediaConnect diff --git a/services/mediaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/mediaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json index e975a12e3153..278e6fff6ecc 100644 --- a/services/mediaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/mediaconnect/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://mediaconnect.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediaconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://mediaconnect.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/mediaconnect/src/main/resources/codegen-resources/endpoint-tests.json b/services/mediaconnect/src/main/resources/codegen-resources/endpoint-tests.json index 80881eff44c8..b255249b2619 100644 --- a/services/mediaconnect/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/mediaconnect/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,42 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-south-1.api.aws" + "url": "https://mediaconnect.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-south-1.amazonaws.com" + "url": "https://mediaconnect.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-south-1.api.aws" + "url": "https://mediaconnect.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -47,48 +47,35 @@ } }, "params": { - "UseDualStack": false, "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.eu-central-1.amazonaws.com" + "url": "https://mediaconnect.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.eu-central-1.api.aws" + "url": "https://mediaconnect.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -99,152 +86,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -255,152 +99,9 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { @@ -411,438 +112,365 @@ } }, "params": { - "UseDualStack": false, "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-northeast-2.amazonaws.com" + "url": "https://mediaconnect.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-northeast-2.api.aws" + "url": "https://mediaconnect.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-northeast-2.amazonaws.com" + "url": "https://mediaconnect.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-northeast-1.api.aws" + "url": "https://mediaconnect.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-northeast-1.amazonaws.com" + "url": "https://mediaconnect.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-northeast-1.api.aws" + "url": "https://mediaconnect.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-northeast-1.amazonaws.com" + "url": "https://mediaconnect.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.sa-east-1.api.aws" + "url": "https://mediaconnect-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.sa-east-1.amazonaws.com" + "url": "https://mediaconnect-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediaconnect.sa-east-1.api.aws" + "url": "https://mediaconnect.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediaconnect.sa-east-1.amazonaws.com" + "url": "https://mediaconnect-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-east-1.api.aws" + "url": "https://mediaconnect-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-east-1.amazonaws.com" + "url": "https://mediaconnect.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-east-1.api.aws" + "url": "https://mediaconnect.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-east-1.amazonaws.com" + "url": "https://mediaconnect-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-southeast-1.api.aws" + "url": "https://mediaconnect-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-southeast-1.amazonaws.com" + "url": "https://mediaconnect.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-southeast-1.api.aws" + "url": "https://mediaconnect.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://mediaconnect.ap-southeast-1.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.ap-southeast-2.api.aws" + "url": "https://mediaconnect-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.ap-southeast-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.ap-southeast-2.api.aws" + "url": "https://mediaconnect.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://mediaconnect.ap-southeast-2.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect-fips.us-east-1.api.aws" + "url": "https://mediaconnect-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.us-east-1.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.us-east-1.api.aws" + "url": "https://mediaconnect.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://mediaconnect.us-east-1.amazonaws.com" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediaconnect.us-east-2.amazonaws.com" - } - }, - "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -852,9 +480,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -864,11 +492,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/mediaconnect/src/main/resources/codegen-resources/paginators-1.json b/services/mediaconnect/src/main/resources/codegen-resources/paginators-1.json index e350ad5fa4fd..0ad312090f46 100644 --- a/services/mediaconnect/src/main/resources/codegen-resources/paginators-1.json +++ b/services/mediaconnect/src/main/resources/codegen-resources/paginators-1.json @@ -1,5 +1,11 @@ { "pagination" : { + "ListBridges" : { + "input_token" : "NextToken", + "output_token" : "NextToken", + "limit_key" : "MaxResults", + "result_key" : "Bridges" + }, "ListEntitlements" : { "input_token" : "NextToken", "output_token" : "NextToken", @@ -12,6 +18,18 @@ "limit_key" : "MaxResults", "result_key" : "Flows" }, + "ListGatewayInstances" : { + "input_token" : "NextToken", + "output_token" : "NextToken", + "limit_key" : "MaxResults", + "result_key" : "Instances" + }, + "ListGateways" : { + "input_token" : "NextToken", + "output_token" : "NextToken", + "limit_key" : "MaxResults", + "result_key" : "Gateways" + }, "ListOfferings" : { "input_token" : "NextToken", "output_token" : "NextToken", diff --git a/services/mediaconnect/src/main/resources/codegen-resources/service-2.json b/services/mediaconnect/src/main/resources/codegen-resources/service-2.json index 86ebd5aeda32..159adf0ed985 100644 --- a/services/mediaconnect/src/main/resources/codegen-resources/service-2.json +++ b/services/mediaconnect/src/main/resources/codegen-resources/service-2.json @@ -11,6 +11,98 @@ "signatureVersion": "v4" }, "operations": { + "AddBridgeOutputs": { + "name": "AddBridgeOutputs", + "http": { + "method": "POST", + "requestUri": "/v1/bridges/{bridgeArn}/outputs", + "responseCode": 202 + }, + "input": { + "shape": "AddBridgeOutputsRequest" + }, + "output": { + "shape": "AddBridgeOutputsResponse", + "documentation": "AWS Elemental MediaConnect added the bridge outputs successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Adds outputs to an existing bridge." + }, + "AddBridgeSources": { + "name": "AddBridgeSources", + "http": { + "method": "POST", + "requestUri": "/v1/bridges/{bridgeArn}/sources", + "responseCode": 202 + }, + "input": { + "shape": "AddBridgeSourcesRequest" + }, + "output": { + "shape": "AddBridgeSourcesResponse", + "documentation": "AWS Elemental MediaConnect added the bridge sources successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Adds sources to an existing bridge." + }, "AddFlowMediaStreams": { "name": "AddFlowMediaStreams", "http": { @@ -183,6 +275,52 @@ ], "documentation": "Adds VPC interfaces to flow" }, + "CreateBridge": { + "name": "CreateBridge", + "http": { + "method": "POST", + "requestUri": "/v1/bridges", + "responseCode": 201 + }, + "input": { + "shape": "CreateBridgeRequest" + }, + "output": { + "shape": "CreateBridgeResponse", + "documentation": "AWS Elemental MediaConnect created the new bridge successfully." + }, + "errors": [ + { + "shape": "CreateBridge420Exception", + "documentation": "Your account already contains the maximum number of bridges per account, per Region. For more information, contact AWS Customer Support." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Creates a new bridge. The request must include one source." + }, "CreateFlow": { "name": "CreateFlow", "http": { @@ -225,21 +363,25 @@ ], "documentation": "Creates a new flow. The request must include one source. The request optionally can include outputs (up to 50) and entitlements (up to 50)." }, - "DeleteFlow": { - "name": "DeleteFlow", + "CreateGateway": { + "name": "CreateGateway", "http": { - "method": "DELETE", - "requestUri": "/v1/flows/{flowArn}", - "responseCode": 202 + "method": "POST", + "requestUri": "/v1/gateways", + "responseCode": 201 }, "input": { - "shape": "DeleteFlowRequest" + "shape": "CreateGatewayRequest" }, "output": { - "shape": "DeleteFlowResponse", - "documentation": "AWS Elemental MediaConnect is deleting the flow." + "shape": "CreateGatewayResponse", + "documentation": "AWS Elemental MediaConnect created the new gateway successfully." }, "errors": [ + { + "shape": "CreateGateway420Exception", + "documentation": "Your account already contains the maximum number of gateways per account, per Region. For more information, contact AWS Customer Support." + }, { "shape": "BadRequestException", "documentation": "The request that you submitted is not valid." @@ -252,10 +394,6 @@ "shape": "ForbiddenException", "documentation": "You don't have the required permissions to perform this operation." }, - { - "shape": "NotFoundException", - "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." - }, { "shape": "ServiceUnavailableException", "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." @@ -263,23 +401,27 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Deletes a flow. Before you can delete a flow, you must stop the flow." + "documentation": "Creates a new gateway. The request must include at least one network (up to 4)." }, - "DescribeFlow": { - "name": "DescribeFlow", + "DeleteBridge": { + "name": "DeleteBridge", "http": { - "method": "GET", - "requestUri": "/v1/flows/{flowArn}", + "method": "DELETE", + "requestUri": "/v1/bridges/{bridgeArn}", "responseCode": 200 }, "input": { - "shape": "DescribeFlowRequest" + "shape": "DeleteBridgeRequest" }, "output": { - "shape": "DescribeFlowResponse", - "documentation": "AWS Elemental MediaConnect returned the flow details successfully." + "shape": "DeleteBridgeResponse", + "documentation": "AWS Elemental MediaConnect deleted the bridge." }, "errors": [ { @@ -305,25 +447,41 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Displays the details of a flow. The response includes the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements." + "documentation": "Deletes a bridge. Before you can delete a bridge, you must stop the bridge." }, - "DescribeOffering": { - "name": "DescribeOffering", + "DeleteFlow": { + "name": "DeleteFlow", "http": { - "method": "GET", - "requestUri": "/v1/offerings/{offeringArn}", - "responseCode": 200 + "method": "DELETE", + "requestUri": "/v1/flows/{flowArn}", + "responseCode": 202 }, "input": { - "shape": "DescribeOfferingRequest" + "shape": "DeleteFlowRequest" }, "output": { - "shape": "DescribeOfferingResponse", - "documentation": "MediaConnect returned the offering details successfully." + "shape": "DeleteFlowResponse", + "documentation": "AWS Elemental MediaConnect is deleting the flow." }, "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, { "shape": "NotFoundException", "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." @@ -335,33 +493,37 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." - }, - { - "shape": "BadRequestException", - "documentation": "The request that you submitted is not valid." - }, - { - "shape": "InternalServerErrorException", - "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." } ], - "documentation": "Displays the details of an offering. The response includes the offering description, duration, outbound bandwidth, price, and Amazon Resource Name (ARN)." + "documentation": "Deletes a flow. Before you can delete a flow, you must stop the flow." }, - "DescribeReservation": { - "name": "DescribeReservation", + "DeleteGateway": { + "name": "DeleteGateway", "http": { - "method": "GET", - "requestUri": "/v1/reservations/{reservationArn}", + "method": "DELETE", + "requestUri": "/v1/gateways/{gatewayArn}", "responseCode": 200 }, "input": { - "shape": "DescribeReservationRequest" + "shape": "DeleteGatewayRequest" }, "output": { - "shape": "DescribeReservationResponse", - "documentation": "MediaConnect returned the reservation details successfully." + "shape": "DeleteGatewayResponse", + "documentation": "AWS Elemental MediaConnect deleted the gateway." }, "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, { "shape": "NotFoundException", "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." @@ -375,35 +537,27 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." }, { - "shape": "BadRequestException", - "documentation": "The request that you submitted is not valid." - }, - { - "shape": "InternalServerErrorException", - "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Displays the details of a reservation. The response includes the reservation name, state, start date and time, and the details of the offering that make up the rest of the reservation (such as price, duration, and outbound bandwidth)." + "documentation": "Deletes a gateway. Before you can delete a gateway, you must deregister its instances and delete its bridges." }, - "GrantFlowEntitlements": { - "name": "GrantFlowEntitlements", + "DeregisterGatewayInstance": { + "name": "DeregisterGatewayInstance", "http": { - "method": "POST", - "requestUri": "/v1/flows/{flowArn}/entitlements", - "responseCode": 200 + "method": "DELETE", + "requestUri": "/v1/gateway-instances/{gatewayInstanceArn}", + "responseCode": 202 }, "input": { - "shape": "GrantFlowEntitlementsRequest" + "shape": "DeregisterGatewayInstanceRequest" }, "output": { - "shape": "GrantFlowEntitlementsResponse", - "documentation": "AWS Elemental MediaConnect granted the entitlements successfully." + "shape": "DeregisterGatewayInstanceResponse", + "documentation": "AWS Elemental MediaConnect is deleting the instance." }, "errors": [ - { - "shape": "GrantFlowEntitlements420Exception", - "documentation": "AWS Elemental MediaConnect can't complete this request because this flow already has the maximum number of allowed entitlements (50). For more information, contact AWS Customer Support." - }, { "shape": "BadRequestException", "documentation": "The request that you submitted is not valid." @@ -427,25 +581,45 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Grants entitlements to an existing flow." + "documentation": "Deregisters an instance. Before you deregister an instance, all bridges running on the instance must be stopped. If you want to deregister an instance without stopping the bridges, you must use the --force option." }, - "ListEntitlements": { - "name": "ListEntitlements", + "DescribeBridge": { + "name": "DescribeBridge", "http": { "method": "GET", - "requestUri": "/v1/entitlements", + "requestUri": "/v1/bridges/{bridgeArn}", "responseCode": 200 }, "input": { - "shape": "ListEntitlementsRequest" + "shape": "DescribeBridgeRequest" }, "output": { - "shape": "ListEntitlementsResponse", - "documentation": "AWS Elemental MediaConnect returned the list of entitlements successfully." + "shape": "DescribeBridgeResponse", + "documentation": "AWS Elemental MediaConnect returned the bridge details successfully." }, "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, { "shape": "ServiceUnavailableException", "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." @@ -455,31 +629,667 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." }, { - "shape": "BadRequestException", - "documentation": "The request that you submitted is not valid." - }, - { - "shape": "InternalServerErrorException", - "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Displays a list of all entitlements that have been granted to this account. This request returns 20 results per page." + "documentation": "Displays the details of a bridge." }, - "ListFlows": { - "name": "ListFlows", + "DescribeFlow": { + "name": "DescribeFlow", "http": { "method": "GET", - "requestUri": "/v1/flows", + "requestUri": "/v1/flows/{flowArn}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeFlowRequest" + }, + "output": { + "shape": "DescribeFlowResponse", + "documentation": "AWS Elemental MediaConnect returned the flow details successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + } + ], + "documentation": "Displays the details of a flow. The response includes the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements." + }, + "DescribeGateway": { + "name": "DescribeGateway", + "http": { + "method": "GET", + "requestUri": "/v1/gateways/{gatewayArn}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeGatewayRequest" + }, + "output": { + "shape": "DescribeGatewayResponse", + "documentation": "AWS Elemental MediaConnect returned the gateway details successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Displays the details of a gateway. The response includes the gateway ARN, name, and CIDR blocks, as well as details about the networks." + }, + "DescribeGatewayInstance": { + "name": "DescribeGatewayInstance", + "http": { + "method": "GET", + "requestUri": "/v1/gateway-instances/{gatewayInstanceArn}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeGatewayInstanceRequest" + }, + "output": { + "shape": "DescribeGatewayInstanceResponse", + "documentation": "AWS Elemental MediaConnect returned the instance details successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Displays the details of an instance." + }, + "DescribeOffering": { + "name": "DescribeOffering", + "http": { + "method": "GET", + "requestUri": "/v1/offerings/{offeringArn}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeOfferingRequest" + }, + "output": { + "shape": "DescribeOfferingResponse", + "documentation": "MediaConnect returned the offering details successfully." + }, + "errors": [ + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + } + ], + "documentation": "Displays the details of an offering. The response includes the offering description, duration, outbound bandwidth, price, and Amazon Resource Name (ARN)." + }, + "DescribeReservation": { + "name": "DescribeReservation", + "http": { + "method": "GET", + "requestUri": "/v1/reservations/{reservationArn}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeReservationRequest" + }, + "output": { + "shape": "DescribeReservationResponse", + "documentation": "MediaConnect returned the reservation details successfully." + }, + "errors": [ + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + } + ], + "documentation": "Displays the details of a reservation. The response includes the reservation name, state, start date and time, and the details of the offering that make up the rest of the reservation (such as price, duration, and outbound bandwidth)." + }, + "GrantFlowEntitlements": { + "name": "GrantFlowEntitlements", + "http": { + "method": "POST", + "requestUri": "/v1/flows/{flowArn}/entitlements", + "responseCode": 200 + }, + "input": { + "shape": "GrantFlowEntitlementsRequest" + }, + "output": { + "shape": "GrantFlowEntitlementsResponse", + "documentation": "AWS Elemental MediaConnect granted the entitlements successfully." + }, + "errors": [ + { + "shape": "GrantFlowEntitlements420Exception", + "documentation": "AWS Elemental MediaConnect can't complete this request because this flow already has the maximum number of allowed entitlements (50). For more information, contact AWS Customer Support." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + } + ], + "documentation": "Grants entitlements to an existing flow." + }, + "ListBridges": { + "name": "ListBridges", + "http": { + "method": "GET", + "requestUri": "/v1/bridges", + "responseCode": 200 + }, + "input": { + "shape": "ListBridgesRequest" + }, + "output": { + "shape": "ListBridgesResponse", + "documentation": "AWS Elemental MediaConnect returned the list of bridges successfully." + }, + "errors": [ + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Displays a list of bridges that are associated with this account and an optionally specified Arn. This request returns a paginated result." + }, + "ListEntitlements": { + "name": "ListEntitlements", + "http": { + "method": "GET", + "requestUri": "/v1/entitlements", + "responseCode": 200 + }, + "input": { + "shape": "ListEntitlementsRequest" + }, + "output": { + "shape": "ListEntitlementsResponse", + "documentation": "AWS Elemental MediaConnect returned the list of entitlements successfully." + }, + "errors": [ + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + } + ], + "documentation": "Displays a list of all entitlements that have been granted to this account. This request returns 20 results per page." + }, + "ListFlows": { + "name": "ListFlows", + "http": { + "method": "GET", + "requestUri": "/v1/flows", "responseCode": 200 }, "input": { "shape": "ListFlowsRequest" }, "output": { - "shape": "ListFlowsResponse", - "documentation": "AWS Elemental MediaConnect returned the list of flows successfully." + "shape": "ListFlowsResponse", + "documentation": "AWS Elemental MediaConnect returned the list of flows successfully." + }, + "errors": [ + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + } + ], + "documentation": "Displays a list of flows that are associated with this account. This request returns a paginated result." + }, + "ListGatewayInstances": { + "name": "ListGatewayInstances", + "http": { + "method": "GET", + "requestUri": "/v1/gateway-instances", + "responseCode": 200 + }, + "input": { + "shape": "ListGatewayInstancesRequest" + }, + "output": { + "shape": "ListGatewayInstancesResponse", + "documentation": "AWS Elemental MediaConnect returned the list of instances in the gateway successfully." + }, + "errors": [ + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Displays a list of instances associated with the AWS account. This request returns a paginated result. You can use the filterArn property to display only the instances associated with the selected Gateway Amazon Resource Name (ARN)." + }, + "ListGateways": { + "name": "ListGateways", + "http": { + "method": "GET", + "requestUri": "/v1/gateways", + "responseCode": 200 + }, + "input": { + "shape": "ListGatewaysRequest" + }, + "output": { + "shape": "ListGatewaysResponse", + "documentation": "AWS Elemental MediaConnect returned the list of gateways successfully." + }, + "errors": [ + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Displays a list of gateways that are associated with this account. This request returns a paginated result." + }, + "ListOfferings": { + "name": "ListOfferings", + "http": { + "method": "GET", + "requestUri": "/v1/offerings", + "responseCode": 200 + }, + "input": { + "shape": "ListOfferingsRequest" + }, + "output": { + "shape": "ListOfferingsResponse", + "documentation": "MediaConnect returned the list of offerings successfully." + }, + "errors": [ + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + } + ], + "documentation": "Displays a list of all offerings that are available to this account in the current AWS Region. If you have an active reservation (which means you've purchased an offering that has already started and hasn't expired yet), your account isn't eligible for other offerings." + }, + "ListReservations": { + "name": "ListReservations", + "http": { + "method": "GET", + "requestUri": "/v1/reservations", + "responseCode": 200 + }, + "input": { + "shape": "ListReservationsRequest" + }, + "output": { + "shape": "ListReservationsResponse", + "documentation": "MediaConnect returned the list of reservations successfully." + }, + "errors": [ + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + } + ], + "documentation": "Displays a list of all reservations that have been purchased by this account in the current AWS Region. This list includes all reservations in all states (such as active and expired)." + }, + "ListTagsForResource": { + "name": "ListTagsForResource", + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "shape": "ListTagsForResourceRequest" + }, + "output": { + "shape": "ListTagsForResourceResponse", + "documentation": "The tags for the resource" + }, + "errors": [ + { + "shape": "NotFoundException", + "documentation": "The requested resource was not found" + }, + { + "shape": "BadRequestException", + "documentation": "The client performed an invalid request" + }, + { + "shape": "InternalServerErrorException", + "documentation": "Internal service error" + } + ], + "documentation": "List all tags on an AWS Elemental MediaConnect resource" + }, + "PurchaseOffering": { + "name": "PurchaseOffering", + "http": { + "method": "POST", + "requestUri": "/v1/offerings/{offeringArn}", + "responseCode": 201 + }, + "input": { + "shape": "PurchaseOfferingRequest" + }, + "output": { + "shape": "PurchaseOfferingResponse", + "documentation": "AWS Elemental MediaConnect purchased offering successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + } + ], + "documentation": "Submits a request to purchase an offering. If you already have an active reservation, you can't purchase another offering." + }, + "RemoveBridgeOutput": { + "name": "RemoveBridgeOutput", + "http": { + "method": "DELETE", + "requestUri": "/v1/bridges/{bridgeArn}/outputs/{outputName}", + "responseCode": 202 + }, + "input": { + "shape": "RemoveBridgeOutputRequest" + }, + "output": { + "shape": "RemoveBridgeOutputResponse", + "documentation": "The output was successfully removed from the bridge." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Removes an output from a bridge." + }, + "RemoveBridgeSource": { + "name": "RemoveBridgeSource", + "http": { + "method": "DELETE", + "requestUri": "/v1/bridges/{bridgeArn}/sources/{sourceName}", + "responseCode": 202 + }, + "input": { + "shape": "RemoveBridgeSourceRequest" + }, + "output": { + "shape": "RemoveBridgeSourceResponse", + "documentation": "The bridge source was successfully removed from the flow." }, "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, { "shape": "ServiceUnavailableException", "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." @@ -489,39 +1299,27 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." }, { - "shape": "BadRequestException", - "documentation": "The request that you submitted is not valid." - }, - { - "shape": "InternalServerErrorException", - "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Displays a list of flows that are associated with this account. This request returns a paginated result." + "documentation": "Removes a source from a bridge." }, - "ListOfferings": { - "name": "ListOfferings", + "RemoveFlowMediaStream": { + "name": "RemoveFlowMediaStream", "http": { - "method": "GET", - "requestUri": "/v1/offerings", + "method": "DELETE", + "requestUri": "/v1/flows/{flowArn}/mediaStreams/{mediaStreamName}", "responseCode": 200 }, "input": { - "shape": "ListOfferingsRequest" + "shape": "RemoveFlowMediaStreamRequest" }, "output": { - "shape": "ListOfferingsResponse", - "documentation": "MediaConnect returned the list of offerings successfully." + "shape": "RemoveFlowMediaStreamResponse", + "documentation": "The media stream was successfully removed from the flow." }, "errors": [ - { - "shape": "ServiceUnavailableException", - "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." - }, - { - "shape": "TooManyRequestsException", - "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." - }, { "shape": "BadRequestException", "documentation": "The request that you submitted is not valid." @@ -529,33 +1327,41 @@ { "shape": "InternalServerErrorException", "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Displays a list of all offerings that are available to this account in the current AWS Region. If you have an active reservation (which means you've purchased an offering that has already started and hasn't expired yet), your account isn't eligible for other offerings." + "documentation": "Removes a media stream from a flow. This action is only available if the media stream is not associated with a source or output." }, - "ListReservations": { - "name": "ListReservations", + "RemoveFlowOutput": { + "name": "RemoveFlowOutput", "http": { - "method": "GET", - "requestUri": "/v1/reservations", - "responseCode": 200 + "method": "DELETE", + "requestUri": "/v1/flows/{flowArn}/outputs/{outputArn}", + "responseCode": 202 }, "input": { - "shape": "ListReservationsRequest" + "shape": "RemoveFlowOutputRequest" }, "output": { - "shape": "ListReservationsResponse", - "documentation": "MediaConnect returned the list of reservations successfully." + "shape": "RemoveFlowOutputResponse", + "documentation": "output successfully removed from flow configuration." }, "errors": [ - { - "shape": "ServiceUnavailableException", - "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." - }, - { - "shape": "TooManyRequestsException", - "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." - }, { "shape": "BadRequestException", "documentation": "The request that you submitted is not valid." @@ -563,53 +1369,81 @@ { "shape": "InternalServerErrorException", "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Displays a list of all reservations that have been purchased by this account in the current AWS Region. This list includes all reservations in all states (such as active and expired)." + "documentation": "Removes an output from an existing flow. This request can be made only on an output that does not have an entitlement associated with it. If the output has an entitlement, you must revoke the entitlement instead. When an entitlement is revoked from a flow, the service automatically removes the associated output." }, - "ListTagsForResource": { - "name": "ListTagsForResource", + "RemoveFlowSource": { + "name": "RemoveFlowSource", "http": { - "method": "GET", - "requestUri": "/tags/{resourceArn}", - "responseCode": 200 + "method": "DELETE", + "requestUri": "/v1/flows/{flowArn}/source/{sourceArn}", + "responseCode": 202 }, "input": { - "shape": "ListTagsForResourceRequest" + "shape": "RemoveFlowSourceRequest" }, "output": { - "shape": "ListTagsForResourceResponse", - "documentation": "The tags for the resource" + "shape": "RemoveFlowSourceResponse", + "documentation": "source successfully removed from flow configuration." }, "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, { "shape": "NotFoundException", - "documentation": "The requested resource was not found" + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." }, { - "shape": "BadRequestException", - "documentation": "The client performed an invalid request" + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." }, { - "shape": "InternalServerErrorException", - "documentation": "Internal service error" + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "List all tags on an AWS Elemental MediaConnect resource" + "documentation": "Removes a source from an existing flow. This request can be made only if there is more than one source on the flow." }, - "PurchaseOffering": { - "name": "PurchaseOffering", + "RemoveFlowVpcInterface": { + "name": "RemoveFlowVpcInterface", "http": { - "method": "POST", - "requestUri": "/v1/offerings/{offeringArn}", - "responseCode": 201 + "method": "DELETE", + "requestUri": "/v1/flows/{flowArn}/vpcInterfaces/{vpcInterfaceName}", + "responseCode": 200 }, "input": { - "shape": "PurchaseOfferingRequest" + "shape": "RemoveFlowVpcInterfaceRequest" }, "output": { - "shape": "PurchaseOfferingResponse", - "documentation": "AWS Elemental MediaConnect purchased offering successfully." + "shape": "RemoveFlowVpcInterfaceResponse", + "documentation": "VPC interface successfully removed from flow configuration." }, "errors": [ { @@ -637,21 +1471,21 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Submits a request to purchase an offering. If you already have an active reservation, you can't purchase another offering." + "documentation": "Removes a VPC Interface from an existing flow. This request can be made only on a VPC interface that does not have a Source or Output associated with it. If the VPC interface is referenced by a Source or Output, you must first delete or update the Source or Output to no longer reference the VPC interface." }, - "RemoveFlowMediaStream": { - "name": "RemoveFlowMediaStream", + "RevokeFlowEntitlement": { + "name": "RevokeFlowEntitlement", "http": { "method": "DELETE", - "requestUri": "/v1/flows/{flowArn}/mediaStreams/{mediaStreamName}", - "responseCode": 200 + "requestUri": "/v1/flows/{flowArn}/entitlements/{entitlementArn}", + "responseCode": 202 }, "input": { - "shape": "RemoveFlowMediaStreamRequest" + "shape": "RevokeFlowEntitlementRequest" }, "output": { - "shape": "RemoveFlowMediaStreamResponse", - "documentation": "The media stream was successfully removed from the flow." + "shape": "RevokeFlowEntitlementResponse", + "documentation": "AWS Elemental MediaConnect revoked the entitlement successfully." }, "errors": [ { @@ -679,21 +1513,21 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Removes a media stream from a flow. This action is only available if the media stream is not associated with a source or output." + "documentation": "Revokes an entitlement from a flow. Once an entitlement is revoked, the content becomes unavailable to the subscriber and the associated output is removed." }, - "RemoveFlowOutput": { - "name": "RemoveFlowOutput", + "StartFlow": { + "name": "StartFlow", "http": { - "method": "DELETE", - "requestUri": "/v1/flows/{flowArn}/outputs/{outputArn}", + "method": "POST", + "requestUri": "/v1/flows/start/{flowArn}", "responseCode": 202 }, "input": { - "shape": "RemoveFlowOutputRequest" + "shape": "StartFlowRequest" }, "output": { - "shape": "RemoveFlowOutputResponse", - "documentation": "output successfully removed from flow configuration." + "shape": "StartFlowResponse", + "documentation": "AWS Elemental MediaConnect is starting the flow." }, "errors": [ { @@ -721,21 +1555,21 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Removes an output from an existing flow. This request can be made only on an output that does not have an entitlement associated with it. If the output has an entitlement, you must revoke the entitlement instead. When an entitlement is revoked from a flow, the service automatically removes the associated output." + "documentation": "Starts a flow." }, - "RemoveFlowSource": { - "name": "RemoveFlowSource", + "StopFlow": { + "name": "StopFlow", "http": { - "method": "DELETE", - "requestUri": "/v1/flows/{flowArn}/source/{sourceArn}", + "method": "POST", + "requestUri": "/v1/flows/stop/{flowArn}", "responseCode": 202 }, "input": { - "shape": "RemoveFlowSourceRequest" + "shape": "StopFlowRequest" }, "output": { - "shape": "RemoveFlowSourceResponse", - "documentation": "source successfully removed from flow configuration." + "shape": "StopFlowResponse", + "documentation": "AWS Elemental MediaConnect is stopping the flow." }, "errors": [ { @@ -763,21 +1597,73 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Removes a source from an existing flow. This request can be made only if there is more than one source on the flow." + "documentation": "Stops a flow." }, - "RemoveFlowVpcInterface": { - "name": "RemoveFlowVpcInterface", + "TagResource": { + "name": "TagResource", + "http": { + "method": "POST", + "requestUri": "/tags/{resourceArn}", + "responseCode": 204 + }, + "input": { + "shape": "TagResourceRequest" + }, + "errors": [ + { + "shape": "NotFoundException", + "documentation": "The requested resource was not found" + }, + { + "shape": "BadRequestException", + "documentation": "The client performed an invalid request" + }, + { + "shape": "InternalServerErrorException", + "documentation": "Internal service error" + } + ], + "documentation": "Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well." + }, + "UntagResource": { + "name": "UntagResource", "http": { "method": "DELETE", - "requestUri": "/v1/flows/{flowArn}/vpcInterfaces/{vpcInterfaceName}", - "responseCode": 200 + "requestUri": "/tags/{resourceArn}", + "responseCode": 204 + }, + "input": { + "shape": "UntagResourceRequest" + }, + "errors": [ + { + "shape": "NotFoundException", + "documentation": "The requested resource was not found" + }, + { + "shape": "BadRequestException", + "documentation": "The client performed an invalid request" + }, + { + "shape": "InternalServerErrorException", + "documentation": "Internal service error" + } + ], + "documentation": "Deletes specified tags from a resource." + }, + "UpdateBridge": { + "name": "UpdateBridge", + "http": { + "method": "PUT", + "requestUri": "/v1/bridges/{bridgeArn}", + "responseCode": 202 }, "input": { - "shape": "RemoveFlowVpcInterfaceRequest" + "shape": "UpdateBridgeRequest" }, "output": { - "shape": "RemoveFlowVpcInterfaceResponse", - "documentation": "VPC interface successfully removed from flow configuration." + "shape": "UpdateBridgeResponse", + "documentation": "AWS Elemental MediaConnect updated the bridge successfully." }, "errors": [ { @@ -803,23 +1689,27 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Removes a VPC Interface from an existing flow. This request can be made only on a VPC interface that does not have a Source or Output associated with it. If the VPC interface is referenced by a Source or Output, you must first delete or update the Source or Output to no longer reference the VPC interface." + "documentation": "Updates the bridge" }, - "RevokeFlowEntitlement": { - "name": "RevokeFlowEntitlement", + "UpdateBridgeOutput": { + "name": "UpdateBridgeOutput", "http": { - "method": "DELETE", - "requestUri": "/v1/flows/{flowArn}/entitlements/{entitlementArn}", + "method": "PUT", + "requestUri": "/v1/bridges/{bridgeArn}/outputs/{outputName}", "responseCode": 202 }, "input": { - "shape": "RevokeFlowEntitlementRequest" + "shape": "UpdateBridgeOutputRequest" }, "output": { - "shape": "RevokeFlowEntitlementResponse", - "documentation": "AWS Elemental MediaConnect revoked the entitlement successfully." + "shape": "UpdateBridgeOutputResponse", + "documentation": "MediaConnect is updating the bridge output." }, "errors": [ { @@ -845,23 +1735,27 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Revokes an entitlement from a flow. Once an entitlement is revoked, the content becomes unavailable to the subscriber and the associated output is removed." + "documentation": "Updates an existing bridge output." }, - "StartFlow": { - "name": "StartFlow", + "UpdateBridgeSource": { + "name": "UpdateBridgeSource", "http": { - "method": "POST", - "requestUri": "/v1/flows/start/{flowArn}", + "method": "PUT", + "requestUri": "/v1/bridges/{bridgeArn}/sources/{sourceName}", "responseCode": 202 }, "input": { - "shape": "StartFlowRequest" + "shape": "UpdateBridgeSourceRequest" }, "output": { - "shape": "StartFlowResponse", - "documentation": "AWS Elemental MediaConnect is starting the flow." + "shape": "UpdateBridgeSourceResponse", + "documentation": "MediaConnect is updating the bridge source." }, "errors": [ { @@ -887,23 +1781,27 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Starts a flow." + "documentation": "Updates an existing bridge source." }, - "StopFlow": { - "name": "StopFlow", + "UpdateBridgeState": { + "name": "UpdateBridgeState", "http": { - "method": "POST", - "requestUri": "/v1/flows/stop/{flowArn}", + "method": "PUT", + "requestUri": "/v1/bridges/{bridgeArn}/state", "responseCode": 202 }, "input": { - "shape": "StopFlowRequest" + "shape": "UpdateBridgeStateRequest" }, "output": { - "shape": "StopFlowResponse", - "documentation": "AWS Elemental MediaConnect is stopping the flow." + "shape": "UpdateBridgeStateResponse", + "documentation": "AWS Elemental MediaConnect updated the bridge successfully." }, "errors": [ { @@ -929,61 +1827,13 @@ { "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." - } - ], - "documentation": "Stops a flow." - }, - "TagResource": { - "name": "TagResource", - "http": { - "method": "POST", - "requestUri": "/tags/{resourceArn}", - "responseCode": 204 - }, - "input": { - "shape": "TagResourceRequest" - }, - "errors": [ - { - "shape": "NotFoundException", - "documentation": "The requested resource was not found" - }, - { - "shape": "BadRequestException", - "documentation": "The client performed an invalid request" - }, - { - "shape": "InternalServerErrorException", - "documentation": "Internal service error" - } - ], - "documentation": "Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well." - }, - "UntagResource": { - "name": "UntagResource", - "http": { - "method": "DELETE", - "requestUri": "/tags/{resourceArn}", - "responseCode": 204 - }, - "input": { - "shape": "UntagResourceRequest" - }, - "errors": [ - { - "shape": "NotFoundException", - "documentation": "The requested resource was not found" - }, - { - "shape": "BadRequestException", - "documentation": "The client performed an invalid request" }, { - "shape": "InternalServerErrorException", - "documentation": "Internal service error" + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." } ], - "documentation": "Deletes specified tags from a resource." + "documentation": "Updates the bridge state" }, "UpdateFlow": { "name": "UpdateFlow", @@ -1192,11 +2042,276 @@ "shape": "TooManyRequestsException", "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } - ], - "documentation": "Updates the source of a flow." - } - }, - "shapes": { + ], + "documentation": "Updates the source of a flow." + }, + "UpdateGatewayInstance": { + "name": "UpdateGatewayInstance", + "http": { + "method": "PUT", + "requestUri": "/v1/gateway-instances/{gatewayInstanceArn}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateGatewayInstanceRequest" + }, + "output": { + "shape": "UpdateGatewayInstanceResponse", + "documentation": "AWS Elemental MediaConnect is applying the instance state." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + }, + { + "shape": "ConflictException", + "documentation": "The request could not be completed due to a conflict with the current state of the target resource." + } + ], + "documentation": "Updates the configuration of an existing Gateway Instance." + } + }, + "shapes": { + "AddBridgeFlowSourceRequest": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", + "locationName": "flowArn", + "documentation": "The Amazon Resource Number (ARN) of the cloud flow to use as a source of this bridge." + }, + "FlowVpcInterfaceAttachment": { + "shape": "VpcInterfaceAttachment", + "locationName": "flowVpcInterfaceAttachment", + "documentation": "The name of the VPC interface attachment to use for this source." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the flow source. This name is used to reference the source and must be unique among sources in this bridge." + } + }, + "documentation": "Add a flow source to an existing bridge.", + "required": [ + "FlowArn", + "Name" + ] + }, + "AddBridgeNetworkOutputRequest": { + "type": "structure", + "members": { + "IpAddress": { + "shape": "__string", + "locationName": "ipAddress", + "documentation": "The network output IP Address." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The network output name. This name is used to reference the output and must be unique among outputs in this bridge." + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName", + "documentation": "The network output's gateway network name." + }, + "Port": { + "shape": "__integer", + "locationName": "port", + "documentation": "The network output port." + }, + "Protocol": { + "shape": "Protocol", + "locationName": "protocol", + "documentation": "The network output protocol." + }, + "Ttl": { + "shape": "__integer", + "locationName": "ttl", + "documentation": "The network output TTL." + } + }, + "documentation": "Add a network output to an existing bridge.", + "required": [ + "NetworkName", + "Port", + "IpAddress", + "Protocol", + "Ttl", + "Name" + ] + }, + "AddBridgeNetworkSourceRequest": { + "type": "structure", + "members": { + "MulticastIp": { + "shape": "__string", + "locationName": "multicastIp", + "documentation": "The network source multicast IP." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the network source. This name is used to reference the source and must be unique among sources in this bridge." + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName", + "documentation": "The network source's gateway network name." + }, + "Port": { + "shape": "__integer", + "locationName": "port", + "documentation": "The network source port." + }, + "Protocol": { + "shape": "Protocol", + "locationName": "protocol", + "documentation": "The network source protocol." + } + }, + "documentation": "Add a network source to an existing bridge.", + "required": [ + "NetworkName", + "MulticastIp", + "Port", + "Protocol", + "Name" + ] + }, + "AddBridgeOutputRequest": { + "type": "structure", + "members": { + "NetworkOutput": { + "shape": "AddBridgeNetworkOutputRequest", + "locationName": "networkOutput" + } + }, + "documentation": "Add an output to a bridge." + }, + "AddBridgeOutputsRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to update." + }, + "Outputs": { + "shape": "__listOfAddBridgeOutputRequest", + "locationName": "outputs", + "documentation": "The outputs that you want to add to this bridge." + } + }, + "documentation": "A request to add outputs to the specified bridge.", + "required": [ + "BridgeArn", + "Outputs" + ] + }, + "AddBridgeOutputsResponse": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the bridge." + }, + "Outputs": { + "shape": "__listOfBridgeOutput", + "locationName": "outputs", + "documentation": "The outputs that you added to this bridge." + } + } + }, + "AddBridgeSourceRequest": { + "type": "structure", + "members": { + "FlowSource": { + "shape": "AddBridgeFlowSourceRequest", + "locationName": "flowSource" + }, + "NetworkSource": { + "shape": "AddBridgeNetworkSourceRequest", + "locationName": "networkSource" + } + }, + "documentation": "Add a source to an existing bridge." + }, + "AddBridgeSourcesRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to update." + }, + "Sources": { + "shape": "__listOfAddBridgeSourceRequest", + "locationName": "sources", + "documentation": "The sources that you want to add to this bridge." + } + }, + "documentation": "A request to add sources to the specified bridge.", + "required": [ + "BridgeArn", + "Sources" + ] + }, + "AddBridgeSourcesResponse": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the bridge." + }, + "Sources": { + "shape": "__listOfBridgeSource", + "locationName": "sources", + "documentation": "The sources that you added to this bridge." + } + } + }, + "AddEgressGatewayBridgeRequest": { + "type": "structure", + "members": { + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate", + "documentation": "The maximum expected bitrate (in bps)." + } + }, + "required": [ + "MaxBitrate" + ] + }, "AddFlowMediaStreamsRequest": { "type": "structure", "members": { @@ -1257,6 +2372,7 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to add outputs to." @@ -1293,6 +2409,7 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to mutate." @@ -1329,6 +2446,7 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to mutate." @@ -1360,6 +2478,25 @@ } } }, + "AddIngressGatewayBridgeRequest": { + "type": "structure", + "members": { + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate", + "documentation": "The maximum expected bitrate (in bps)." + }, + "MaxOutputs": { + "shape": "__integer", + "locationName": "maxOutputs", + "documentation": "The maximum number of expected outputs." + } + }, + "required": [ + "MaxOutputs", + "MaxBitrate" + ] + }, "AddMaintenance": { "type": "structure", "members": { @@ -1447,7 +2584,7 @@ "Encryption": { "shape": "Encryption", "locationName": "encryption", - "documentation": "The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key)." + "documentation": "The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key). Allowable encryption types: static-key." }, "MaxLatency": { "shape": "__integer", @@ -1497,7 +2634,7 @@ "StreamId": { "shape": "__string", "locationName": "streamId", - "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams." + "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi and SRT caller-based streams." }, "VpcInterfaceAttachment": { "shape": "VpcInterfaceAttachment", @@ -1526,28 +2663,373 @@ "locationName": "message", "documentation": "The error message returned by AWS Elemental MediaConnect." } - }, - "documentation": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", - "required": [ - "Message" - ], - "exception": true, - "error": { - "httpStatusCode": 400 + }, + "documentation": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", + "required": [ + "Message" + ], + "exception": true, + "error": { + "httpStatusCode": 400 + } + }, + "Bridge": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the bridge." + }, + "BridgeMessages": { + "shape": "__listOfMessageDetail", + "locationName": "bridgeMessages" + }, + "BridgeState": { + "shape": "BridgeState", + "locationName": "bridgeState" + }, + "EgressGatewayBridge": { + "shape": "EgressGatewayBridge", + "locationName": "egressGatewayBridge" + }, + "IngressGatewayBridge": { + "shape": "IngressGatewayBridge", + "locationName": "ingressGatewayBridge" + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the bridge." + }, + "Outputs": { + "shape": "__listOfBridgeOutput", + "locationName": "outputs", + "documentation": "The outputs on this bridge." + }, + "PlacementArn": { + "shape": "__string", + "locationName": "placementArn", + "documentation": "The placement Amazon Resource Number (ARN) of the bridge." + }, + "SourceFailoverConfig": { + "shape": "FailoverConfig", + "locationName": "sourceFailoverConfig" + }, + "Sources": { + "shape": "__listOfBridgeSource", + "locationName": "sources", + "documentation": "The sources on this bridge." + } + }, + "documentation": "A Bridge is the connection between your datacenter's Instances and the AWS cloud. A bridge can be used to send video from the AWS cloud to your datacenter or from your datacenter to the AWS cloud.", + "required": [ + "BridgeArn", + "BridgeState", + "PlacementArn", + "Name" + ] + }, + "BridgeFlowOutput": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "locationName": "flowArn", + "documentation": "The Amazon Resource Number (ARN) of the cloud flow." + }, + "FlowSourceArn": { + "shape": "__string", + "locationName": "flowSourceArn", + "documentation": "The Amazon Resource Number (ARN) of the flow source." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the bridge's output." + } + }, + "documentation": "The output of the bridge. A flow output is delivered to the AWS cloud.", + "required": [ + "FlowSourceArn", + "FlowArn", + "Name" + ] + }, + "BridgeFlowSource": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "locationName": "flowArn", + "documentation": "The ARN of the cloud flow used as a source of this bridge." + }, + "FlowVpcInterfaceAttachment": { + "shape": "VpcInterfaceAttachment", + "locationName": "flowVpcInterfaceAttachment", + "documentation": "The name of the VPC interface attachment to use for this source." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the flow source." + }, + "OutputArn": { + "shape": "__string", + "locationName": "outputArn", + "documentation": "The Amazon Resource Number (ARN) of the output." + } + }, + "documentation": "The source of the bridge. A flow source originates in MediaConnect as an existing cloud flow.", + "required": [ + "FlowArn", + "Name" + ] + }, + "BridgeNetworkOutput": { + "type": "structure", + "members": { + "IpAddress": { + "shape": "__string", + "locationName": "ipAddress", + "documentation": "The network output IP Address." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The network output name." + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName", + "documentation": "The network output's gateway network name." + }, + "Port": { + "shape": "__integer", + "locationName": "port", + "documentation": "The network output port." + }, + "Protocol": { + "shape": "Protocol", + "locationName": "protocol", + "documentation": "The network output protocol." + }, + "Ttl": { + "shape": "__integer", + "locationName": "ttl", + "documentation": "The network output TTL." + } + }, + "documentation": "The output of the bridge. A network output is delivered to your premises.", + "required": [ + "NetworkName", + "Port", + "IpAddress", + "Protocol", + "Ttl", + "Name" + ] + }, + "BridgeNetworkSource": { + "type": "structure", + "members": { + "MulticastIp": { + "shape": "__string", + "locationName": "multicastIp", + "documentation": "The network source multicast IP." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the network source." + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName", + "documentation": "The network source's gateway network name." + }, + "Port": { + "shape": "__integer", + "locationName": "port", + "documentation": "The network source port." + }, + "Protocol": { + "shape": "Protocol", + "locationName": "protocol", + "documentation": "The network source protocol." + } + }, + "documentation": "The source of the bridge. A network source originates at your premises.", + "required": [ + "NetworkName", + "MulticastIp", + "Port", + "Protocol", + "Name" + ] + }, + "BridgeOutput": { + "type": "structure", + "members": { + "FlowOutput": { + "shape": "BridgeFlowOutput", + "locationName": "flowOutput" + }, + "NetworkOutput": { + "shape": "BridgeNetworkOutput", + "locationName": "networkOutput" + } + }, + "documentation": "The output of the bridge." + }, + "BridgePlacement": { + "type": "string", + "enum": [ + "AVAILABLE", + "LOCKED" + ] + }, + "BridgeSource": { + "type": "structure", + "members": { + "FlowSource": { + "shape": "BridgeFlowSource", + "locationName": "flowSource" + }, + "NetworkSource": { + "shape": "BridgeNetworkSource", + "locationName": "networkSource" + } + }, + "documentation": "The bridge's source." + }, + "BridgeState": { + "type": "string", + "enum": [ + "CREATING", + "STANDBY", + "STARTING", + "DEPLOYING", + "ACTIVE", + "STOPPING", + "DELETING", + "DELETED", + "START_FAILED", + "START_PENDING", + "STOP_FAILED", + "UPDATING" + ] + }, + "Colorimetry": { + "type": "string", + "enum": [ + "BT601", + "BT709", + "BT2020", + "BT2100", + "ST2065-1", + "ST2065-3", + "XYZ" + ] + }, + "ConflictException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message", + "documentation": "The error message returned by AWS Elemental MediaConnect." + } + }, + "documentation": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", + "required": [ + "Message" + ], + "exception": true, + "error": { + "httpStatusCode": 409 + } + }, + "ConnectionStatus": { + "type": "string", + "enum": [ + "CONNECTED", + "DISCONNECTED" + ] + }, + "CreateBridge420Exception": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message", + "documentation": "The error message returned by AWS Elemental MediaConnect." + } + }, + "documentation": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", + "required": [ + "Message" + ], + "exception": true, + "error": { + "httpStatusCode": 420 + } + }, + "CreateBridgeRequest": { + "type": "structure", + "members": { + "EgressGatewayBridge": { + "shape": "AddEgressGatewayBridgeRequest", + "locationName": "egressGatewayBridge", + "documentation": "Create a bridge with the egress bridge type. An egress bridge is a cloud-to-ground bridge. The content comes from an existing MediaConnect flow and is delivered to your premises." + }, + "IngressGatewayBridge": { + "shape": "AddIngressGatewayBridgeRequest", + "locationName": "ingressGatewayBridge", + "documentation": "Create a bridge with the ingress bridge type. An ingress bridge is a ground-to-cloud bridge. The content originates at your premises and is delivered to the cloud." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the bridge. This name can not be modified after the bridge is created." + }, + "Outputs": { + "shape": "__listOfAddBridgeOutputRequest", + "locationName": "outputs", + "documentation": "The outputs that you want to add to this bridge." + }, + "PlacementArn": { + "shape": "__string", + "locationName": "placementArn", + "documentation": "The bridge placement Amazon Resource Number (ARN)." + }, + "SourceFailoverConfig": { + "shape": "FailoverConfig", + "locationName": "sourceFailoverConfig", + "documentation": "The settings for source failover." + }, + "Sources": { + "shape": "__listOfAddBridgeSourceRequest", + "locationName": "sources", + "documentation": "The sources that you want to add to this bridge." + } + }, + "documentation": "Creates a new bridge. The request must include one source.", + "required": [ + "Sources", + "PlacementArn", + "Name" + ] + }, + "CreateBridgeResponse": { + "type": "structure", + "members": { + "Bridge": { + "shape": "Bridge", + "locationName": "bridge" + } } }, - "Colorimetry": { - "type": "string", - "enum": [ - "BT601", - "BT709", - "BT2020", - "BT2100", - "ST2065-1", - "ST2065-3", - "XYZ" - ] - }, "CreateFlow420Exception": { "type": "structure", "members": { @@ -1630,11 +3112,90 @@ } } }, + "CreateGateway420Exception": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message", + "documentation": "The error message returned by AWS Elemental MediaConnect." + } + }, + "documentation": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", + "required": [ + "Message" + ], + "exception": true, + "error": { + "httpStatusCode": 420 + } + }, + "CreateGatewayRequest": { + "type": "structure", + "members": { + "EgressCidrBlocks": { + "shape": "__listOf__string", + "locationName": "egressCidrBlocks", + "documentation": "The range of IP addresses that are allowed to contribute content or initiate output requests for flows communicating with this gateway. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the gateway. This name can not be modified after the gateway is created." + }, + "Networks": { + "shape": "__listOfGatewayNetwork", + "locationName": "networks", + "documentation": "The list of networks that you want to add." + } + }, + "documentation": "Creates a new gateway. The request must include at least one network (up to 4).", + "required": [ + "Networks", + "EgressCidrBlocks", + "Name" + ] + }, + "CreateGatewayResponse": { + "type": "structure", + "members": { + "Gateway": { + "shape": "Gateway", + "locationName": "gateway" + } + } + }, + "DeleteBridgeRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to delete." + } + }, + "required": [ + "BridgeArn" + ] + }, + "DeleteBridgeResponse": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the deleted bridge." + } + } + }, "DeleteFlowRequest": { "type": "structure", "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The ARN of the flow that you want to delete." @@ -1659,11 +3220,97 @@ } } }, + "DeleteGatewayRequest": { + "type": "structure", + "members": { + "GatewayArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:gateway:.+$", + "location": "uri", + "locationName": "gatewayArn", + "documentation": "The ARN of the gateway that you want to delete." + } + }, + "required": [ + "GatewayArn" + ] + }, + "DeleteGatewayResponse": { + "type": "structure", + "members": { + "GatewayArn": { + "shape": "__string", + "locationName": "gatewayArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway that was deleted." + } + } + }, + "DeregisterGatewayInstanceRequest": { + "type": "structure", + "members": { + "Force": { + "shape": "__boolean", + "location": "querystring", + "locationName": "force", + "documentation": "Force the deregistration of an instance. Force will deregister an instance, even if there are bridges running on it." + }, + "GatewayInstanceArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:gateway:.+:instance:.+$", + "location": "uri", + "locationName": "gatewayInstanceArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway that contains the instance that you want to deregister." + } + }, + "required": [ + "GatewayInstanceArn" + ] + }, + "DeregisterGatewayInstanceResponse": { + "type": "structure", + "members": { + "GatewayInstanceArn": { + "shape": "__string", + "locationName": "gatewayInstanceArn", + "documentation": "The Amazon Resource Name (ARN) of the instance." + }, + "InstanceState": { + "shape": "InstanceState", + "locationName": "instanceState", + "documentation": "The status of the instance." + } + } + }, + "DescribeBridgeRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to describe." + } + }, + "required": [ + "BridgeArn" + ] + }, + "DescribeBridgeResponse": { + "type": "structure", + "members": { + "Bridge": { + "shape": "Bridge", + "locationName": "bridge" + } + } + }, "DescribeFlowRequest": { "type": "structure", "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The ARN of the flow that you want to describe." @@ -1686,6 +3333,54 @@ } } }, + "DescribeGatewayInstanceRequest": { + "type": "structure", + "members": { + "GatewayInstanceArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:gateway:.+:instance:.+$", + "location": "uri", + "locationName": "gatewayInstanceArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway instance that you want to describe." + } + }, + "required": [ + "GatewayInstanceArn" + ] + }, + "DescribeGatewayInstanceResponse": { + "type": "structure", + "members": { + "GatewayInstance": { + "shape": "GatewayInstance", + "locationName": "gatewayInstance" + } + } + }, + "DescribeGatewayRequest": { + "type": "structure", + "members": { + "GatewayArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:gateway:.+$", + "location": "uri", + "locationName": "gatewayArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway that you want to describe." + } + }, + "required": [ + "GatewayArn" + ] + }, + "DescribeGatewayResponse": { + "type": "structure", + "members": { + "Gateway": { + "shape": "Gateway", + "locationName": "gateway" + } + } + }, "DescribeOfferingRequest": { "type": "structure", "members": { @@ -1732,6 +3427,14 @@ } } }, + "DesiredState": { + "type": "string", + "enum": [ + "ACTIVE", + "STANDBY", + "DELETED" + ] + }, "DestinationConfiguration": { "type": "structure", "members": { @@ -1796,6 +3499,24 @@ "MONTHS" ] }, + "EgressGatewayBridge": { + "type": "structure", + "members": { + "InstanceId": { + "shape": "__string", + "locationName": "instanceId", + "documentation": "The ID of the instance running this bridge." + }, + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate", + "documentation": "The maximum expected bitrate (in bps) of the egress bridge." + } + }, + "required": [ + "MaxBitrate" + ] + }, "EncoderProfile": { "type": "string", "enum": [ @@ -2017,7 +3738,7 @@ "FlowArn": { "shape": "__string", "locationName": "flowArn", - "documentation": "The Amazon Resource Name (ARN), a unique identifier for any AWS resource, of the flow." + "documentation": "The Amazon Resource Name (ARN) of the flow." }, "MediaStreams": { "shape": "__listOfMediaStream", @@ -2064,12 +3785,12 @@ "documentation": "The settings for a flow, including its source, outputs, and entitlements.", "required": [ "Status", - "Entitlements", - "Outputs", "AvailabilityZone", - "FlowArn", "Source", - "Name" + "Name", + "Entitlements", + "Outputs", + "FlowArn" ] }, "Fmtp": { @@ -2128,49 +3849,194 @@ }, "ExactFramerate": { "shape": "__string", - "locationName": "exactFramerate", - "documentation": "The frame rate for the video stream, in frames/second. For example: 60000/1001. If you specify a whole number, MediaConnect uses a ratio of N/1. For example, if you specify 60, MediaConnect uses 60/1 as the exactFramerate." + "locationName": "exactFramerate", + "documentation": "The frame rate for the video stream, in frames/second. For example: 60000/1001. If you specify a whole number, MediaConnect uses a ratio of N/1. For example, if you specify 60, MediaConnect uses 60/1 as the exactFramerate." + }, + "Par": { + "shape": "__string", + "locationName": "par", + "documentation": "The pixel aspect ratio (PAR) of the video." + }, + "Range": { + "shape": "Range", + "locationName": "range", + "documentation": "The encoding range of the video." + }, + "ScanMode": { + "shape": "ScanMode", + "locationName": "scanMode", + "documentation": "The type of compression that was used to smooth the video\u2019s appearance." + }, + "Tcs": { + "shape": "Tcs", + "locationName": "tcs", + "documentation": "The transfer characteristic system (TCS) that is used in the video." + } + }, + "documentation": "The settings that you want to use to define the media stream." + }, + "ForbiddenException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "locationName": "message", + "documentation": "The error message returned by AWS Elemental MediaConnect." + } + }, + "documentation": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", + "required": [ + "Message" + ], + "exception": true, + "error": { + "httpStatusCode": 403 + } + }, + "Gateway": { + "type": "structure", + "members": { + "EgressCidrBlocks": { + "shape": "__listOf__string", + "locationName": "egressCidrBlocks", + "documentation": "The range of IP addresses that contribute content or initiate output requests for flows communicating with this gateway. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16." + }, + "GatewayArn": { + "shape": "__string", + "locationName": "gatewayArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway." + }, + "GatewayMessages": { + "shape": "__listOfMessageDetail", + "locationName": "gatewayMessages" + }, + "GatewayState": { + "shape": "GatewayState", + "locationName": "gatewayState", + "documentation": "The current status of the gateway." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the gateway. This name can not be modified after the gateway is created." + }, + "Networks": { + "shape": "__listOfGatewayNetwork", + "locationName": "networks", + "documentation": "The list of networks in the gateway." + } + }, + "documentation": "The settings for a gateway, including its networks.", + "required": [ + "GatewayArn", + "Networks", + "EgressCidrBlocks", + "Name" + ] + }, + "GatewayBridgeSource": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge feeding this flow." + }, + "VpcInterfaceAttachment": { + "shape": "VpcInterfaceAttachment", + "locationName": "vpcInterfaceAttachment", + "documentation": "The name of the VPC interface attachment to use for this bridge source." + } + }, + "documentation": "The source configuration for cloud flows receiving a stream from a bridge.", + "required": [ + "BridgeArn" + ] + }, + "GatewayInstance": { + "type": "structure", + "members": { + "BridgePlacement": { + "shape": "BridgePlacement", + "locationName": "bridgePlacement", + "documentation": "The availability of the instance to host new bridges. The bridgePlacement property can be LOCKED or AVAILABLE. If it is LOCKED, no new bridges can be deployed to this instance. If it is AVAILABLE, new bridges can be added to this instance." + }, + "ConnectionStatus": { + "shape": "ConnectionStatus", + "locationName": "connectionStatus", + "documentation": "The connection state of the instance." + }, + "GatewayArn": { + "shape": "__string", + "locationName": "gatewayArn", + "documentation": "The Amazon Resource Name (ARN) of the instance." + }, + "GatewayInstanceArn": { + "shape": "__string", + "locationName": "gatewayInstanceArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway." }, - "Par": { + "InstanceId": { "shape": "__string", - "locationName": "par", - "documentation": "The pixel aspect ratio (PAR) of the video." + "locationName": "instanceId", + "documentation": "The managed instance ID generated by the SSM install. This will begin with \"mi-\"." }, - "Range": { - "shape": "Range", - "locationName": "range", - "documentation": "The encoding range of the video." + "InstanceMessages": { + "shape": "__listOfMessageDetail", + "locationName": "instanceMessages" }, - "ScanMode": { - "shape": "ScanMode", - "locationName": "scanMode", - "documentation": "The type of compression that was used to smooth the video\u2019s appearance." + "InstanceState": { + "shape": "InstanceState", + "locationName": "instanceState", + "documentation": "The status of the instance." }, - "Tcs": { - "shape": "Tcs", - "locationName": "tcs", - "documentation": "The transfer characteristic system (TCS) that is used in the video." + "RunningBridgeCount": { + "shape": "__integer", + "locationName": "runningBridgeCount", + "documentation": "The running bridge count." } }, - "documentation": "The settings that you want to use to define the media stream." + "documentation": "The settings for an instance in a gateway.", + "required": [ + "GatewayArn", + "InstanceState", + "GatewayInstanceArn", + "InstanceId", + "RunningBridgeCount", + "BridgePlacement", + "ConnectionStatus" + ] }, - "ForbiddenException": { + "GatewayNetwork": { "type": "structure", "members": { - "Message": { + "CidrBlock": { "shape": "__string", - "locationName": "message", - "documentation": "The error message returned by AWS Elemental MediaConnect." + "locationName": "cidrBlock", + "documentation": "A unique IP address range to use for this network. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the network. This name is used to reference the network and must be unique among networks in this gateway." } }, - "documentation": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", + "documentation": "The network settings for a gateway.", "required": [ - "Message" - ], - "exception": true, - "error": { - "httpStatusCode": 403 - } + "CidrBlock", + "Name" + ] + }, + "GatewayState": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "ERROR", + "DELETING", + "DELETED" + ] }, "GrantEntitlementRequest": { "type": "structure", @@ -2188,7 +4054,7 @@ "Encryption": { "shape": "Encryption", "locationName": "encryption", - "documentation": "The type of encryption that will be used on the output that is associated with this entitlement." + "documentation": "The type of encryption that will be used on the output that is associated with this entitlement. Allowable encryption types: static-key, speke." }, "EntitlementStatus": { "shape": "EntitlementStatus", @@ -2239,6 +4105,7 @@ }, "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to grant entitlements on." @@ -2265,6 +4132,30 @@ } } }, + "IngressGatewayBridge": { + "type": "structure", + "members": { + "InstanceId": { + "shape": "__string", + "locationName": "instanceId", + "documentation": "The ID of the instance running this bridge." + }, + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate", + "documentation": "The maximum expected bitrate (in bps) of the ingress bridge." + }, + "MaxOutputs": { + "shape": "__integer", + "locationName": "maxOutputs", + "documentation": "The maximum number of outputs on the ingress bridge." + } + }, + "required": [ + "MaxOutputs", + "MaxBitrate" + ] + }, "InputConfiguration": { "type": "structure", "members": { @@ -2311,6 +4202,17 @@ "Interface" ] }, + "InstanceState": { + "type": "string", + "enum": [ + "REGISTERING", + "ACTIVE", + "DEREGISTERING", + "DEREGISTERED", + "REGISTRATION_ERROR", + "DEREGISTRATION_ERROR" + ] + }, "Interface": { "type": "structure", "members": { @@ -2365,6 +4267,44 @@ "srt-password" ] }, + "ListBridgesRequest": { + "type": "structure", + "members": { + "FilterArn": { + "shape": "__string", + "location": "querystring", + "locationName": "filterArn", + "documentation": "Filter the list results to display only the bridges associated with the selected Amazon Resource Name (ARN)." + }, + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults", + "documentation": "The maximum number of results to return per API request. For example, you submit a ListBridges request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.) The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page." + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "The token that identifies which batch of results that you want to see. For example, you submit a ListBridges request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListBridges request a second time and specify the NextToken value." + } + } + }, + "ListBridgesResponse": { + "type": "structure", + "members": { + "Bridges": { + "shape": "__listOfListedBridge", + "locationName": "bridges", + "documentation": "A list of bridge summaries." + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken", + "documentation": "The token that identifies which batch of results that you want to see. For example, you submit a ListBridges request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListBridges request a second time and specify the NextToken value." + } + } + }, "ListEntitlementsRequest": { "type": "structure", "members": { @@ -2429,6 +4369,76 @@ } } }, + "ListGatewayInstancesRequest": { + "type": "structure", + "members": { + "FilterArn": { + "shape": "__string", + "location": "querystring", + "locationName": "filterArn", + "documentation": "Filter the list results to display only the instances associated with the selected Gateway Amazon Resource Name (ARN)." + }, + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults", + "documentation": "The maximum number of results to return per API request. For example, you submit a ListInstances request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.) The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page." + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "The token that identifies which batch of results that you want to see. For example, you submit a ListInstances request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListInstances request a second time and specify the NextToken value." + } + } + }, + "ListGatewayInstancesResponse": { + "type": "structure", + "members": { + "Instances": { + "shape": "__listOfListedGatewayInstance", + "locationName": "instances", + "documentation": "A list of instance summaries." + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken", + "documentation": "The token that identifies which batch of results that you want to see. For example, you submit a ListInstances request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListInstances request a second time and specify the NextToken value." + } + } + }, + "ListGatewaysRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults", + "documentation": "The maximum number of results to return per API request. For example, you submit a ListGateways request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.) The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page." + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "The token that identifies which batch of results that you want to see. For example, you submit a ListGateways request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListGateways request a second time and specify the NextToken value." + } + } + }, + "ListGatewaysResponse": { + "type": "structure", + "members": { + "Gateways": { + "shape": "__listOfListedGateway", + "locationName": "gateways", + "documentation": "A list of gateway summaries." + }, + "NextToken": { + "shape": "__string", + "locationName": "nextToken", + "documentation": "The token that identifies which batch of results that you want to see. For example, you submit a ListGateways request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListGateways request a second time and specify the NextToken value." + } + } + }, "ListOfferingsRequest": { "type": "structure", "members": { @@ -2517,6 +4527,43 @@ } } }, + "ListedBridge": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge." + }, + "BridgeState": { + "shape": "BridgeState", + "locationName": "bridgeState" + }, + "BridgeType": { + "shape": "__string", + "locationName": "bridgeType", + "documentation": "The type of the bridge." + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the bridge." + }, + "PlacementArn": { + "shape": "__string", + "locationName": "placementArn", + "documentation": "The ARN of the gateway associated with the bridge." + } + }, + "documentation": "Displays details of the selected bridge.", + "required": [ + "BridgeArn", + "BridgeState", + "PlacementArn", + "BridgeType", + "Name" + ] + }, "ListedEntitlement": { "type": "structure", "members": { @@ -2590,6 +4637,62 @@ "Name" ] }, + "ListedGateway": { + "type": "structure", + "members": { + "GatewayArn": { + "shape": "__string", + "locationName": "gatewayArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway." + }, + "GatewayState": { + "shape": "GatewayState", + "locationName": "gatewayState" + }, + "Name": { + "shape": "__string", + "locationName": "name", + "documentation": "The name of the gateway." + } + }, + "documentation": "Provides a summary of a gateway, including its name, ARN, and status.", + "required": [ + "GatewayArn", + "GatewayState", + "Name" + ] + }, + "ListedGatewayInstance": { + "type": "structure", + "members": { + "GatewayArn": { + "shape": "__string", + "locationName": "gatewayArn", + "documentation": "The Amazon Resource Name (ARN) of the gateway." + }, + "GatewayInstanceArn": { + "shape": "__string", + "locationName": "gatewayInstanceArn", + "documentation": "The Amazon Resource Name (ARN) of the instance." + }, + "InstanceId": { + "shape": "__string", + "locationName": "instanceId", + "documentation": "The managed instance ID generated by the SSM install. This will begin with \"mi-\"." + }, + "InstanceState": { + "shape": "InstanceState", + "locationName": "instanceState", + "documentation": "The status of the instance." + } + }, + "documentation": "Provides a summary of an instance.", + "required": [ + "GatewayArn", + "GatewayInstanceArn", + "InstanceId" + ] + }, "Maintenance": { "type": "structure", "members": { @@ -2838,6 +4941,30 @@ "ancillary-data" ] }, + "MessageDetail": { + "type": "structure", + "members": { + "Code": { + "shape": "__string", + "locationName": "code", + "documentation": "The error code." + }, + "Message": { + "shape": "__string", + "locationName": "message", + "documentation": "The specific error message that MediaConnect returns to help you understand the reason that the request did not succeed." + }, + "ResourceName": { + "shape": "__string", + "locationName": "resourceName", + "documentation": "The name of the resource." + } + }, + "required": [ + "Message", + "Code" + ] + }, "Messages": { "type": "structure", "members": { @@ -3000,6 +5127,16 @@ "shape": "VpcInterfaceAttachment", "locationName": "vpcInterfaceAttachment", "documentation": "The name of the VPC interface attachment to use for this output." + }, + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that added this output." + }, + "BridgePorts": { + "shape": "__listOf__integer", + "locationName": "bridgePorts", + "documentation": "The bridge output ports currently in use." } }, "documentation": "The settings for an output.", @@ -3026,7 +5163,8 @@ "cdi", "srt-listener", "srt-caller", - "fujitsu-qos" + "fujitsu-qos", + "udp" ] }, "PurchaseOfferingRequest": { @@ -3049,30 +5187,100 @@ "documentation": "The date and time that you want the reservation to begin, in Coordinated Universal Time (UTC). You can specify any date and time between 12:00am on the first day of the current month to the current time on today's date, inclusive. Specify the start in a 24-hour notation. Use the following format: YYYY-MM-DDTHH:mm:SSZ, where T and Z are literal characters. For example, to specify 11:30pm on March 5, 2020, enter 2020-03-05T23:30:00Z." } }, - "documentation": "A request to purchase a offering.", + "documentation": "A request to purchase a offering.", + "required": [ + "OfferingArn", + "Start", + "ReservationName" + ] + }, + "PurchaseOfferingResponse": { + "type": "structure", + "members": { + "Reservation": { + "shape": "Reservation", + "locationName": "reservation" + } + } + }, + "Range": { + "type": "string", + "enum": [ + "NARROW", + "FULL", + "FULLPROTECT" + ] + }, + "RemoveBridgeOutputRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to update." + }, + "OutputName": { + "shape": "__string", + "location": "uri", + "locationName": "outputName", + "documentation": "The name of the bridge output that you want to remove." + } + }, + "required": [ + "OutputName", + "BridgeArn" + ] + }, + "RemoveBridgeOutputResponse": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn" + }, + "OutputName": { + "shape": "__string", + "locationName": "outputName" + } + } + }, + "RemoveBridgeSourceRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to update." + }, + "SourceName": { + "shape": "__string", + "location": "uri", + "locationName": "sourceName", + "documentation": "The name of the bridge source that you want to remove." + } + }, "required": [ - "OfferingArn", - "Start", - "ReservationName" + "BridgeArn", + "SourceName" ] }, - "PurchaseOfferingResponse": { + "RemoveBridgeSourceResponse": { "type": "structure", "members": { - "Reservation": { - "shape": "Reservation", - "locationName": "reservation" + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn" + }, + "SourceName": { + "shape": "__string", + "locationName": "sourceName" } } }, - "Range": { - "type": "string", - "enum": [ - "NARROW", - "FULL", - "FULLPROTECT" - ] - }, "RemoveFlowMediaStreamRequest": { "type": "structure", "members": { @@ -3115,12 +5323,14 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to remove an output from." }, "OutputArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:output:.+$", "location": "uri", "locationName": "outputArn", "documentation": "The ARN of the output that you want to remove." @@ -3151,12 +5361,14 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to remove a source from." }, "SourceArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:source:.+$", "location": "uri", "locationName": "sourceArn", "documentation": "The ARN of the source that you want to remove." @@ -3187,6 +5399,7 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to remove a VPC interface from." @@ -3362,12 +5575,14 @@ "members": { "EntitlementArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:entitlement:.+$", "location": "uri", "locationName": "entitlementArn", "documentation": "The ARN of the entitlement that you want to revoke." }, "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to revoke an entitlement from." @@ -3419,13 +5634,33 @@ "httpStatusCode": 503 } }, + "SetGatewayBridgeSourceRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge feeding this flow." + }, + "VpcInterfaceAttachment": { + "shape": "VpcInterfaceAttachment", + "locationName": "vpcInterfaceAttachment", + "documentation": "The name of the VPC interface attachment to use for this bridge source." + } + }, + "documentation": "The source configuration for cloud flows receiving a stream from a bridge.", + "required": [ + "BridgeArn" + ] + }, "SetSourceRequest": { "type": "structure", "members": { "Decryption": { "shape": "Encryption", "locationName": "decryption", - "documentation": "The type of encryption that is used on the content ingested from this source." + "documentation": "The type of encryption that is used on the content ingested from this source. Allowable encryption types: static-key." }, "Description": { "shape": "__string", @@ -3434,6 +5669,7 @@ }, "EntitlementArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:entitlement:.+$", "locationName": "entitlementArn", "documentation": "The ARN of the entitlement that allows you to subscribe to this flow. The entitlement is set by the flow originator, and the ARN is generated as part of the originator's flow." }, @@ -3445,7 +5681,7 @@ "MaxBitrate": { "shape": "__integer", "locationName": "maxBitrate", - "documentation": "The smoothing max bitrate for RIST, RTP, and RTP-FEC streams." + "documentation": "The smoothing max bitrate (in bps) for RIST, RTP, and RTP-FEC streams." }, "MaxLatency": { "shape": "__integer", @@ -3500,7 +5736,7 @@ "StreamId": { "shape": "__string", "locationName": "streamId", - "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams." + "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi and SRT caller-based streams." }, "VpcInterfaceName": { "shape": "__string", @@ -3511,6 +5747,11 @@ "shape": "__string", "locationName": "whitelistCidr", "documentation": "The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16." + }, + "GatewayBridgeSource": { + "shape": "SetGatewayBridgeSourceRequest", + "locationName": "gatewayBridgeSource", + "documentation": "The source configuration for cloud flows receiving a stream from a bridge." } }, "documentation": "The settings for the source of the flow." @@ -3587,12 +5828,17 @@ "shape": "__string", "locationName": "whitelistCidr", "documentation": "The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16." + }, + "GatewayBridgeSource": { + "shape": "GatewayBridgeSource", + "locationName": "gatewayBridgeSource", + "documentation": "The source configuration for cloud flows receiving a stream from a bridge." } }, "documentation": "The settings for the source of the flow.", "required": [ - "SourceArn", - "Name" + "Name", + "SourceArn" ] }, "SourcePriority": { @@ -3618,6 +5864,7 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The ARN of the flow that you want to start." @@ -3666,6 +5913,7 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The ARN of the flow that you want to stop." @@ -3754,7 +6002,7 @@ "MaxBitrate": { "shape": "__integer", "locationName": "maxBitrate", - "documentation": "The smoothing max bitrate for RIST, RTP, and RTP-FEC streams." + "documentation": "The smoothing max bitrate (in bps) for RIST, RTP, and RTP-FEC streams." }, "MaxLatency": { "shape": "__integer", @@ -3809,7 +6057,7 @@ "StreamId": { "shape": "__string", "locationName": "streamId", - "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams." + "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi and SRT caller-based streams." } }, "documentation": "Attributes related to the transport stream that are used in a source or output.", @@ -3838,6 +6086,250 @@ "ResourceArn" ] }, + "UpdateBridgeFlowSourceRequest": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", + "locationName": "flowArn", + "documentation": "The ARN of the cloud flow to use as a source of this bridge." + }, + "FlowVpcInterfaceAttachment": { + "shape": "VpcInterfaceAttachment", + "locationName": "flowVpcInterfaceAttachment", + "documentation": "The name of the VPC interface attachment to use for this source." + } + }, + "documentation": "Update the flow source of the bridge." + }, + "UpdateBridgeNetworkOutputRequest": { + "type": "structure", + "members": { + "IpAddress": { + "shape": "__string", + "locationName": "ipAddress", + "documentation": "The network output IP Address." + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName", + "documentation": "The network output's gateway network name." + }, + "Port": { + "shape": "__integer", + "locationName": "port", + "documentation": "The network output port." + }, + "Protocol": { + "shape": "Protocol", + "locationName": "protocol", + "documentation": "The network output protocol." + }, + "Ttl": { + "shape": "__integer", + "locationName": "ttl", + "documentation": "The network output TTL." + } + }, + "documentation": "Update an existing network output." + }, + "UpdateBridgeNetworkSourceRequest": { + "type": "structure", + "members": { + "MulticastIp": { + "shape": "__string", + "locationName": "multicastIp", + "documentation": "The network source multicast IP." + }, + "NetworkName": { + "shape": "__string", + "locationName": "networkName", + "documentation": "The network source's gateway network name." + }, + "Port": { + "shape": "__integer", + "locationName": "port", + "documentation": "The network source port." + }, + "Protocol": { + "shape": "Protocol", + "locationName": "protocol", + "documentation": "The network source protocol." + } + }, + "documentation": "Update the network source of the bridge." + }, + "UpdateBridgeOutputRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to update." + }, + "NetworkOutput": { + "shape": "UpdateBridgeNetworkOutputRequest", + "locationName": "networkOutput" + }, + "OutputName": { + "shape": "__string", + "location": "uri", + "locationName": "outputName", + "documentation": "The name of the bridge output that you want to update." + } + }, + "documentation": "The fields that you want to update in the bridge output.", + "required": [ + "OutputName", + "BridgeArn" + ] + }, + "UpdateBridgeOutputResponse": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the bridge." + }, + "Output": { + "shape": "BridgeOutput", + "locationName": "output", + "documentation": "The output that you updated." + } + } + }, + "UpdateBridgeRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the bridge that you want to update." + }, + "EgressGatewayBridge": { + "shape": "UpdateEgressGatewayBridgeRequest", + "locationName": "egressGatewayBridge" + }, + "IngressGatewayBridge": { + "shape": "UpdateIngressGatewayBridgeRequest", + "locationName": "ingressGatewayBridge" + }, + "SourceFailoverConfig": { + "shape": "UpdateFailoverConfig", + "locationName": "sourceFailoverConfig" + } + }, + "documentation": "A request to update the bridge.", + "required": [ + "BridgeArn" + ] + }, + "UpdateBridgeResponse": { + "type": "structure", + "members": { + "Bridge": { + "shape": "Bridge", + "locationName": "bridge" + } + } + }, + "UpdateBridgeSourceRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to update." + }, + "FlowSource": { + "shape": "UpdateBridgeFlowSourceRequest", + "locationName": "flowSource" + }, + "NetworkSource": { + "shape": "UpdateBridgeNetworkSourceRequest", + "locationName": "networkSource" + }, + "SourceName": { + "shape": "__string", + "location": "uri", + "locationName": "sourceName", + "documentation": "The name of the source that you want to update." + } + }, + "documentation": "The fields that you want to update in the bridge source.", + "required": [ + "BridgeArn", + "SourceName" + ] + }, + "UpdateBridgeSourceResponse": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the bridge." + }, + "Source": { + "shape": "BridgeSource", + "locationName": "source" + } + } + }, + "UpdateBridgeStateRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "location": "uri", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge that you want to update." + }, + "DesiredState": { + "shape": "DesiredState", + "locationName": "desiredState" + } + }, + "documentation": "A request to update the bridge state.", + "required": [ + "BridgeArn", + "DesiredState" + ] + }, + "UpdateBridgeStateResponse": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "locationName": "bridgeArn", + "documentation": "The Amazon Resource Number (ARN) of the bridge." + }, + "DesiredState": { + "shape": "DesiredState", + "locationName": "desiredState", + "documentation": "The state of the bridge. ACTIVE or STANDBY." + } + } + }, + "UpdateEgressGatewayBridgeRequest": { + "type": "structure", + "members": { + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate", + "documentation": "Update an existing egress-type bridge." + } + } + }, "UpdateEncryption": { "type": "structure", "members": { @@ -3925,10 +6417,11 @@ "Encryption": { "shape": "UpdateEncryption", "locationName": "encryption", - "documentation": "The type of encryption that will be used on the output associated with this entitlement." + "documentation": "The type of encryption that will be used on the output associated with this entitlement. Allowable encryption types: static-key, speke." }, "EntitlementArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:entitlement:.+$", "location": "uri", "locationName": "entitlementArn", "documentation": "The ARN of the entitlement that you want to update." @@ -3940,6 +6433,7 @@ }, "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that is associated with the entitlement that you want to update." @@ -4055,10 +6549,11 @@ "Encryption": { "shape": "UpdateEncryption", "locationName": "encryption", - "documentation": "The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key)." + "documentation": "The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key). Allowable encryption types: static-key." }, "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that is associated with the output that you want to update." @@ -4080,6 +6575,7 @@ }, "OutputArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:output:.+$", "location": "uri", "locationName": "outputArn", "documentation": "The ARN of the output that you want to update." @@ -4117,7 +6613,7 @@ "StreamId": { "shape": "__string", "locationName": "streamId", - "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams." + "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi and SRT caller-based streams." }, "VpcInterfaceAttachment": { "shape": "VpcInterfaceAttachment", @@ -4151,6 +6647,7 @@ "members": { "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that you want to update." @@ -4184,7 +6681,7 @@ "Decryption": { "shape": "UpdateEncryption", "locationName": "decryption", - "documentation": "The type of encryption used on the content ingested from this source." + "documentation": "The type of encryption used on the content ingested from this source. Allowable encryption types: static-key." }, "Description": { "shape": "__string", @@ -4193,11 +6690,13 @@ }, "EntitlementArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:entitlement:.+$", "locationName": "entitlementArn", "documentation": "The ARN of the entitlement that allows you to subscribe to this flow. The entitlement is set by the flow originator, and the ARN is generated as part of the originator's flow." }, "FlowArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:flow:.+$", "location": "uri", "locationName": "flowArn", "documentation": "The flow that is associated with the source that you want to update." @@ -4210,7 +6709,7 @@ "MaxBitrate": { "shape": "__integer", "locationName": "maxBitrate", - "documentation": "The smoothing max bitrate for RIST, RTP, and RTP-FEC streams." + "documentation": "The smoothing max bitrate (in bps) for RIST, RTP, and RTP-FEC streams." }, "MaxLatency": { "shape": "__integer", @@ -4249,6 +6748,7 @@ }, "SourceArn": { "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:source:.+$", "location": "uri", "locationName": "sourceArn", "documentation": "The ARN of the source that you want to update." @@ -4266,7 +6766,7 @@ "StreamId": { "shape": "__string", "locationName": "streamId", - "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams." + "documentation": "The stream ID that you want to use for this transport. This parameter applies only to Zixi and SRT caller-based streams." }, "VpcInterfaceName": { "shape": "__string", @@ -4277,6 +6777,11 @@ "shape": "__string", "locationName": "whitelistCidr", "documentation": "The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16." + }, + "GatewayBridgeSource": { + "shape": "UpdateGatewayBridgeSourceRequest", + "locationName": "gatewayBridgeSource", + "documentation": "The source configuration for cloud flows receiving a stream from a bridge." } }, "documentation": "A request to update the source of a flow.", @@ -4300,6 +6805,74 @@ } } }, + "UpdateGatewayBridgeSourceRequest": { + "type": "structure", + "members": { + "BridgeArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:bridge:.+$", + "locationName": "bridgeArn", + "documentation": "The ARN of the bridge feeding this flow." + }, + "VpcInterfaceAttachment": { + "shape": "VpcInterfaceAttachment", + "locationName": "vpcInterfaceAttachment", + "documentation": "The name of the VPC interface attachment to use for this bridge source." + } + }, + "documentation": "The source configuration for cloud flows receiving a stream from a bridge." + }, + "UpdateGatewayInstanceRequest": { + "type": "structure", + "members": { + "BridgePlacement": { + "shape": "BridgePlacement", + "locationName": "bridgePlacement", + "documentation": "The availability of the instance to host new bridges. The bridgePlacement property can be LOCKED or AVAILABLE. If it is LOCKED, no new bridges can be deployed to this instance. If it is AVAILABLE, new bridges can be added to this instance." + }, + "GatewayInstanceArn": { + "shape": "__string", + "pattern": "^arn:.+:mediaconnect.+:gateway:.+:instance:.+$", + "location": "uri", + "locationName": "gatewayInstanceArn", + "documentation": "The Amazon Resource Name (ARN) of the instance that you want to update." + } + }, + "documentation": "A request to update gateway instance state.", + "required": [ + "GatewayInstanceArn" + ] + }, + "UpdateGatewayInstanceResponse": { + "type": "structure", + "members": { + "BridgePlacement": { + "shape": "BridgePlacement", + "locationName": "bridgePlacement", + "documentation": "The availability of the instance to host new bridges. The bridgePlacement property can be LOCKED or AVAILABLE. If it is LOCKED, no new bridges can be deployed to this instance. If it is AVAILABLE, new bridges can be added to this instance." + }, + "GatewayInstanceArn": { + "shape": "__string", + "locationName": "gatewayInstanceArn", + "documentation": "The Amazon Resource Name (ARN) of the instance." + } + } + }, + "UpdateIngressGatewayBridgeRequest": { + "type": "structure", + "members": { + "MaxBitrate": { + "shape": "__integer", + "locationName": "maxBitrate", + "documentation": "The maximum expected bitrate (in bps)." + }, + "MaxOutputs": { + "shape": "__integer", + "locationName": "maxOutputs", + "documentation": "The maximum number of expected outputs." + } + } + }, "UpdateMaintenance": { "type": "structure", "members": { @@ -4371,10 +6944,10 @@ "VpcInterfaceName": { "shape": "__string", "locationName": "vpcInterfaceName", - "documentation": "The name of the VPC interface to use for this output." + "documentation": "The name of the VPC interface to use for this resource." } }, - "documentation": "The settings for attaching a VPC interface to an output." + "documentation": "The settings for attaching a VPC interface to an resource." }, "VpcInterfaceRequest": { "type": "structure", @@ -4422,6 +6995,18 @@ "__integer": { "type": "integer" }, + "__listOfAddBridgeOutputRequest": { + "type": "list", + "member": { + "shape": "AddBridgeOutputRequest" + } + }, + "__listOfAddBridgeSourceRequest": { + "type": "list", + "member": { + "shape": "AddBridgeSourceRequest" + } + }, "__listOfAddMediaStreamRequest": { "type": "list", "member": { @@ -4434,6 +7019,18 @@ "shape": "AddOutputRequest" } }, + "__listOfBridgeOutput": { + "type": "list", + "member": { + "shape": "BridgeOutput" + } + }, + "__listOfBridgeSource": { + "type": "list", + "member": { + "shape": "BridgeSource" + } + }, "__listOfDestinationConfiguration": { "type": "list", "member": { @@ -4452,6 +7049,12 @@ "shape": "Entitlement" } }, + "__listOfGatewayNetwork": { + "type": "list", + "member": { + "shape": "GatewayNetwork" + } + }, "__listOfGrantEntitlementRequest": { "type": "list", "member": { @@ -4470,6 +7073,12 @@ "shape": "InputConfigurationRequest" } }, + "__listOfListedBridge": { + "type": "list", + "member": { + "shape": "ListedBridge" + } + }, "__listOfListedEntitlement": { "type": "list", "member": { @@ -4482,6 +7091,18 @@ "shape": "ListedFlow" } }, + "__listOfListedGateway": { + "type": "list", + "member": { + "shape": "ListedGateway" + } + }, + "__listOfListedGatewayInstance": { + "type": "list", + "member": { + "shape": "ListedGatewayInstance" + } + }, "__listOfMediaStream": { "type": "list", "member": { @@ -4512,6 +7133,12 @@ "shape": "MediaStreamSourceConfigurationRequest" } }, + "__listOfMessageDetail": { + "type": "list", + "member": { + "shape": "MessageDetail" + } + }, "__listOfOffering": { "type": "list", "member": { @@ -4591,4 +7218,4 @@ } }, "documentation": "API for AWS Elemental MediaConnect" -} \ No newline at end of file +} diff --git a/services/mediaconvert/pom.xml b/services/mediaconvert/pom.xml index 72de78d87126..949c77071e02 100644 --- a/services/mediaconvert/pom.xml +++ b/services/mediaconvert/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 mediaconvert diff --git a/services/mediaconvert/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/mediaconvert/src/main/resources/codegen-resources/endpoint-rule-set.json index e301f85aedff..dcc0061568b6 100644 --- a/services/mediaconvert/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/mediaconvert/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,187 +111,267 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconvert-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://mediaconvert-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://mediaconvert.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://mediaconvert.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://mediaconvert-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://mediaconvert-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconvert.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + } + ], + "endpoint": { + "url": "https://subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { - "url": "https://mediaconvert.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://mediaconvert.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,66 +380,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "cn-northwest-1" - ] - } - ], - "endpoint": { - "url": "https://subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://mediaconvert.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://mediaconvert.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/mediaconvert/src/main/resources/codegen-resources/endpoint-tests.json b/services/mediaconvert/src/main/resources/codegen-resources/endpoint-tests.json index 02932fc3da05..eb99a1eda3a5 100644 --- a/services/mediaconvert/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/mediaconvert/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { @@ -21,9 +21,9 @@ } }, "params": { - "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-2" } }, { @@ -34,9 +34,9 @@ } }, "params": { - "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-south-1" } }, { @@ -47,9 +47,9 @@ } }, "params": { - "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { @@ -60,9 +60,9 @@ } }, "params": { - "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { @@ -73,9 +73,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ca-central-1" } }, { @@ -86,9 +86,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ca-central-1" } }, { @@ -99,9 +99,9 @@ } }, "params": { - "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-central-1" } }, { @@ -112,9 +112,9 @@ } }, "params": { - "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-north-1" } }, { @@ -125,9 +125,9 @@ } }, "params": { - "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-1" } }, { @@ -138,9 +138,9 @@ } }, "params": { - "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-2" } }, { @@ -151,9 +151,9 @@ } }, "params": { - "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-3" } }, { @@ -164,9 +164,9 @@ } }, "params": { - "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "sa-east-1" } }, { @@ -177,9 +177,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -190,9 +190,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -203,9 +203,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-2" } }, { @@ -216,9 +216,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-2" } }, { @@ -229,9 +229,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-1" } }, { @@ -242,9 +242,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-1" } }, { @@ -255,9 +255,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-2" } }, { @@ -268,9 +268,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-2" } }, { @@ -281,9 +281,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -294,9 +294,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -307,9 +307,9 @@ } }, "params": { - "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-northwest-1" } }, { @@ -320,9 +320,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -333,9 +333,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -346,9 +346,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -359,9 +359,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -372,9 +372,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-west-1" } }, { @@ -385,9 +385,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-west-1" } }, { @@ -398,9 +398,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -411,9 +411,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -424,9 +424,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { @@ -437,9 +437,20 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { @@ -450,9 +461,20 @@ } }, "params": { - "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { @@ -463,9 +485,20 @@ } }, "params": { - "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { @@ -476,9 +509,20 @@ } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { @@ -489,20 +533,33 @@ } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseDualStack": false, + "UseFIPS": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" @@ -514,9 +571,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -526,11 +583,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/mediaconvert/src/main/resources/codegen-resources/service-2.json b/services/mediaconvert/src/main/resources/codegen-resources/service-2.json index ff51bde280c6..9d294d71ac47 100644 --- a/services/mediaconvert/src/main/resources/codegen-resources/service-2.json +++ b/services/mediaconvert/src/main/resources/codegen-resources/service-2.json @@ -1849,7 +1849,7 @@ "documentation": "Enable this setting on one audio selector to set it as the default for the job. The service uses this default for outputs where it can't find the specified input audio. If you don't set a default, those outputs have no audio." }, "ExternalAudioFileInput": { - "shape": "__stringPatternS3MM2PPWWEEBBMMMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCFFLLAAAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMAAAACCAAIIFFFFMMPP2AACC3EECC3DDTTSSEEAATTMMOOSSOOGGGGaAHttpsMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMAAAACCAAIIFFFFMMPP2AACC3EECC3DDTTSSEEAATTMMOOSSOOGGGGaA", + "shape": "__stringPatternS3Https", "locationName": "externalAudioFileInput", "documentation": "Specifies audio data from an external file source." }, @@ -2294,6 +2294,43 @@ }, "documentation": "The service can't process your request because of a problem in the request. Please check your request form and syntax." }, + "BandwidthReductionFilter": { + "type": "structure", + "members": { + "Sharpening": { + "shape": "BandwidthReductionFilterSharpening", + "locationName": "sharpening", + "documentation": "Optionally specify the level of sharpening to apply when you use the Bandwidth reduction filter. Sharpening adds contrast to the edges of your video content and can reduce softness. Keep the default value Off to apply no sharpening. Set Sharpening strength to Low to apply a minimal amount of sharpening, or High to apply a maximum amount of sharpening." + }, + "Strength": { + "shape": "BandwidthReductionFilterStrength", + "locationName": "strength", + "documentation": "Specify the strength of the Bandwidth reduction filter. For most workflows, we recommend that you choose Auto to reduce the bandwidth of your output with little to no perceptual decrease in video quality. For high quality and high bitrate outputs, choose Low. For the most bandwidth reduction, choose High. We recommend that you choose High for low bitrate outputs. Note that High may incur a slight increase in the softness of your output." + } + }, + "documentation": "The Bandwidth reduction filter increases the video quality of your output relative to its bitrate. Use to lower the bitrate of your constant quality QVBR output, with little or no perceptual decrease in quality. Or, use to increase the video quality of outputs with other rate control modes relative to the bitrate that you specify. Bandwidth reduction increases further when your input is low quality or noisy. Outputs that use this feature incur pro-tier pricing. When you include Bandwidth reduction filter, you cannot include the Noise reducer preprocessor." + }, + "BandwidthReductionFilterSharpening": { + "type": "string", + "documentation": "Optionally specify the level of sharpening to apply when you use the Bandwidth reduction filter. Sharpening adds contrast to the edges of your video content and can reduce softness. Keep the default value Off to apply no sharpening. Set Sharpening strength to Low to apply a minimal amount of sharpening, or High to apply a maximum amount of sharpening.", + "enum": [ + "LOW", + "MEDIUM", + "HIGH", + "OFF" + ] + }, + "BandwidthReductionFilterStrength": { + "type": "string", + "documentation": "Specify the strength of the Bandwidth reduction filter. For most workflows, we recommend that you choose Auto to reduce the bandwidth of your output with little to no perceptual decrease in video quality. For high quality and high bitrate outputs, choose Low. For the most bandwidth reduction, choose High. We recommend that you choose High for low bitrate outputs. Note that High may incur a slight increase in the softness of your output.", + "enum": [ + "LOW", + "MEDIUM", + "HIGH", + "AUTO", + "OFF" + ] + }, "BillingTagsSource": { "type": "string", "documentation": "The tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert costs on any billing report that you set up.", @@ -3319,12 +3356,12 @@ "TimedMetadataSchemeIdUri": { "shape": "__stringMax1000", "locationName": "timedMetadataSchemeIdUri", - "documentation": "Specify the event message box (eMSG) scheme ID URI (scheme_id_uri) for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3 metadata (timedMetadata) to Passthrough." + "documentation": "Specify the event message box (eMSG) scheme ID URI (scheme_id_uri) for ID3 timed metadata in your output. For more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3 metadata (timedMetadata) to Passthrough." }, "TimedMetadataValue": { "shape": "__stringMax1000", "locationName": "timedMetadataValue", - "documentation": "Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also set ID3 metadata (timedMetadata) to Passthrough." + "documentation": "Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also set ID3 metadata (timedMetadata) to Passthrough." } }, "documentation": "These settings relate to the fragmented MP4 container for the segments in your CMAF outputs." @@ -3361,7 +3398,7 @@ "ColorSpaceConversion": { "shape": "ColorSpaceConversion", "locationName": "colorSpaceConversion", - "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR. Select Force P3D65 (SDR) to set the output color space metadata to the following: * Color primaries: Display P3 * Transfer characteristics: SMPTE 428M * Matrix coefficients: BT.709" + "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses tone mapping to approximate the outcome of manually regrading from HDR to SDR. When you specify an output color space, MediaConvert uses the following color space metadata, which includes color primaries, transfer characteristics, and matrix coefficients:\n * HDR 10: BT.2020, PQ, BT.2020 non-constant\n * HLG 2020: BT.2020, HLG, BT.2020 non-constant\n * P3DCI (Theater): DCIP3, SMPTE 428M, BT.709\n * P3D65 (SDR): Display P3, sRGB, BT.709\n * P3D65 (HDR): Display P3, PQ, BT.709" }, "Contrast": { "shape": "__integerMin1Max100", @@ -3373,6 +3410,11 @@ "locationName": "hdr10Metadata", "documentation": "Use these settings when you convert to the HDR 10 color space. Specify the SMPTE ST 2086 Mastering Display Color Volume static metadata that you want signaled in the output. These values don't affect the pixel values that are encoded in the video stream. They are intended to help the downstream video player display content in a way that reflects the intentions of the the content creator. When you set Color space conversion (ColorSpaceConversion) to HDR 10 (FORCE_HDR10), these settings are required. You must set values for Max frame average light level (maxFrameAverageLightLevel) and Max content light level (maxContentLightLevel); these settings don't have a default value. The default values for the other HDR 10 metadata settings are defined by the P3D65 color space. For more information about MediaConvert HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr." }, + "HdrToSdrToneMapper": { + "shape": "HDRToSDRToneMapper", + "locationName": "hdrToSdrToneMapper", + "documentation": "Specify how MediaConvert maps brightness and colors from your HDR input to your SDR output. The mode that you select represents a creative choice, with different tradeoffs in the details and tones of your output. To maintain details in bright or saturated areas of your output: Choose Preserve details. For some sources, your SDR output may look less bright and less saturated when compared to your HDR source. MediaConvert automatically applies this mode for HLG sources, regardless of your choice. For a bright and saturated output: Choose Vibrant. We recommend that you choose this mode when any of your source content is HDR10, and for the best results when it is mastered for 1000 nits. You may notice loss of details in bright or saturated areas of your output. HDR to SDR tone mapping has no effect when your input is SDR." + }, "Hue": { "shape": "__integerMinNegative180Max180", "locationName": "hue", @@ -3406,7 +3448,7 @@ }, "ColorSpace": { "type": "string", - "documentation": "If your input video has accurate color space metadata, or if you don't know about color space, leave this set to the default value Follow. The service will automatically detect your input color space. If your input video has metadata indicating the wrong color space, specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate, choose Force HDR 10 here and specify correct values in the input HDR 10 metadata settings. For more information about MediaConvert HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr. Select P3D65 (SDR) to set the input color space metadata to the following:\n * Color primaries: Display P3\n * Transfer characteristics: SMPTE 428M\n * Matrix coefficients: BT.709", + "documentation": "If your input video has accurate color space metadata, or if you don't know about color space: Keep the default value, Follow. MediaConvert will automatically detect your input color space. If your input video has metadata indicating the wrong color space, or has missing metadata: Specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate: Choose Force HDR 10. Specify correct values in the input HDR 10 metadata settings. For more information about HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr. When you specify an input color space, MediaConvert uses the following color space metadata, which includes color primaries, transfer characteristics, and matrix coefficients:\n * HDR 10: BT.2020, PQ, BT.2020 non-constant\n * HLG 2020: BT.2020, HLG, BT.2020 non-constant\n * P3DCI (Theater): DCIP3, SMPTE 428M, BT.709\n * P3D65 (SDR): Display P3, sRGB, BT.709\n * P3D65 (HDR): Display P3, PQ, BT.709", "enum": [ "FOLLOW", "REC_601", @@ -3414,12 +3456,13 @@ "HDR10", "HLG_2020", "P3DCI", - "P3D65_SDR" + "P3D65_SDR", + "P3D65_HDR" ] }, "ColorSpaceConversion": { "type": "string", - "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR. Select Force P3D65 (SDR) to set the output color space metadata to the following: * Color primaries: Display P3 * Transfer characteristics: SMPTE 428M * Matrix coefficients: BT.709", + "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses tone mapping to approximate the outcome of manually regrading from HDR to SDR. When you specify an output color space, MediaConvert uses the following color space metadata, which includes color primaries, transfer characteristics, and matrix coefficients:\n * HDR 10: BT.2020, PQ, BT.2020 non-constant\n * HLG 2020: BT.2020, HLG, BT.2020 non-constant\n * P3DCI (Theater): DCIP3, SMPTE 428M, BT.709\n * P3D65 (SDR): Display P3, sRGB, BT.709\n * P3D65 (HDR): Display P3, PQ, BT.709", "enum": [ "NONE", "FORCE_601", @@ -3427,7 +3470,8 @@ "FORCE_HDR10", "FORCE_HLG_2020", "FORCE_P3DCI", - "FORCE_P3D65_SDR" + "FORCE_P3D65_SDR", + "FORCE_P3D65_HDR" ] }, "ColorSpaceUsage": { @@ -3529,7 +3573,7 @@ }, "CopyProtectionAction": { "type": "string", - "documentation": "The action to take on content advisory XDS packets. If you select PASSTHROUGH, packets will not be changed. If you select STRIP, any packets will be removed in output captions.", + "documentation": "The action to take on copy and redistribution control XDS packets. If you select PASSTHROUGH, packets will not be changed. If you select STRIP, any packets will be removed in output captions.", "enum": [ "PASSTHROUGH", "STRIP" @@ -4413,7 +4457,7 @@ "DdsHandling": { "shape": "DvbddsHandling", "locationName": "ddsHandling", - "documentation": "Specify how MediaConvert handles the display definition segment (DDS). Keep the default, None (NONE), to exclude the DDS from this set of captions. Choose No display window (NO_DISPLAY_WINDOW) to have MediaConvert include the DDS but not include display window data. In this case, MediaConvert writes that information to the page composition segment (PCS) instead. Choose Specify (SPECIFIED) to have MediaConvert set up the display window based on the values that you specify in related job settings. For video resolutions that are 576 pixels or smaller in height, MediaConvert doesn't include the DDS, regardless of the value you choose for DDS handling (ddsHandling). In this case, it doesn't write the display window data to the PCS either. Related settings: Use the settings DDS x-coordinate (ddsXCoordinate) and DDS y-coordinate (ddsYCoordinate) to specify the offset between the top left corner of the display window and the top left corner of the video frame. All burn-in and DVB-Sub font settings must match." + "documentation": "Specify how MediaConvert handles the display definition segment (DDS). To exclude the DDS from this set of captions: Keep the default, None. To include the DDS: Choose Specified. When you do, also specify the offset coordinates of the display window with DDS x-coordinate and DDS y-coordinate. To include the DDS, but not include display window data: Choose No display window. When you do, you can write position metadata to the page composition segment (PCS) with DDS x-coordinate and DDS y-coordinate. For video resolutions with a height of 576 pixels or less, MediaConvert doesn't include the DDS, regardless of the value you choose for DDS handling. All burn-in and DVB-Sub font settings must match." }, "DdsXCoordinate": { "shape": "__integerMin0Max2147483647", @@ -4652,7 +4696,7 @@ }, "DvbddsHandling": { "type": "string", - "documentation": "Specify how MediaConvert handles the display definition segment (DDS). Keep the default, None (NONE), to exclude the DDS from this set of captions. Choose No display window (NO_DISPLAY_WINDOW) to have MediaConvert include the DDS but not include display window data. In this case, MediaConvert writes that information to the page composition segment (PCS) instead. Choose Specify (SPECIFIED) to have MediaConvert set up the display window based on the values that you specify in related job settings. For video resolutions that are 576 pixels or smaller in height, MediaConvert doesn't include the DDS, regardless of the value you choose for DDS handling (ddsHandling). In this case, it doesn't write the display window data to the PCS either. Related settings: Use the settings DDS x-coordinate (ddsXCoordinate) and DDS y-coordinate (ddsYCoordinate) to specify the offset between the top left corner of the display window and the top left corner of the video frame. All burn-in and DVB-Sub font settings must match.", + "documentation": "Specify how MediaConvert handles the display definition segment (DDS). To exclude the DDS from this set of captions: Keep the default, None. To include the DDS: Choose Specified. When you do, also specify the offset coordinates of the display window with DDS x-coordinate and DDS y-coordinate. To include the DDS, but not include display window data: Choose No display window. When you do, you can write position metadata to the page composition segment (PCS) with DDS x-coordinate and DDS y-coordinate. For video resolutions with a height of 576 pixels or less, MediaConvert doesn't include the DDS, regardless of the value you choose for DDS handling. All burn-in and DVB-Sub font settings must match.", "enum": [ "NONE", "SPECIFIED", @@ -5219,7 +5263,7 @@ "CopyProtectionAction": { "shape": "CopyProtectionAction", "locationName": "copyProtectionAction", - "documentation": "The action to take on content advisory XDS packets. If you select PASSTHROUGH, packets will not be changed. If you select STRIP, any packets will be removed in output captions." + "documentation": "The action to take on copy and redistribution control XDS packets. If you select PASSTHROUGH, packets will not be changed. If you select STRIP, any packets will be removed in output captions." }, "VchipAction": { "shape": "VchipAction", @@ -5693,6 +5737,11 @@ "locationName": "adaptiveQuantization", "documentation": "Keep the default value, Auto (AUTO), for this setting to have MediaConvert automatically apply the best types of quantization for your video content. When you want to apply your quantization settings manually, you must set H264AdaptiveQuantization to a value other than Auto (AUTO). Use this setting to specify the strength of any adaptive quantization filters that you enable. If you don't want MediaConvert to do any adaptive quantization in this transcode, set Adaptive quantization (H264AdaptiveQuantization) to Off (OFF). Related settings: The value that you choose here applies to the following settings: H264FlickerAdaptiveQuantization, H264SpatialAdaptiveQuantization, and H264TemporalAdaptiveQuantization." }, + "BandwidthReductionFilter": { + "shape": "BandwidthReductionFilter", + "locationName": "bandwidthReductionFilter", + "documentation": "The Bandwidth reduction filter increases the video quality of your output relative to its bitrate. Use to lower the bitrate of your constant quality QVBR output, with little or no perceptual decrease in quality. Or, use to increase the video quality of outputs with other rate control modes relative to the bitrate that you specify. Bandwidth reduction increases further when your input is low quality or noisy. Outputs that use this feature incur pro-tier pricing. When you include Bandwidth reduction filter, you cannot include the Noise reducer preprocessor." + }, "Bitrate": { "shape": "__integerMin1000Max1152000000", "locationName": "bitrate", @@ -6410,6 +6459,14 @@ "HEV1" ] }, + "HDRToSDRToneMapper": { + "type": "string", + "documentation": "Specify how MediaConvert maps brightness and colors from your HDR input to your SDR output. The mode that you select represents a creative choice, with different tradeoffs in the details and tones of your output. To maintain details in bright or saturated areas of your output: Choose Preserve details. For some sources, your SDR output may look less bright and less saturated when compared to your HDR source. MediaConvert automatically applies this mode for HLG sources, regardless of your choice. For a bright and saturated output: Choose Vibrant. We recommend that you choose this mode when any of your source content is HDR10, and for the best results when it is mastered for 1000 nits. You may notice loss of details in bright or saturated areas of your output. HDR to SDR tone mapping has no effect when your input is SDR.", + "enum": [ + "PRESERVE_DETAILS", + "VIBRANT" + ] + }, "Hdr10Metadata": { "type": "structure", "members": { @@ -7064,7 +7121,7 @@ "WaitMinutes": { "shape": "__integer", "locationName": "waitMinutes", - "documentation": "Required for setting up a job to use queue hopping. Minimum wait time in minutes until the job can hop to the destination queue. Valid range is 1 to 1440 minutes, inclusive." + "documentation": "Required for setting up a job to use queue hopping. Minimum wait time in minutes until the job can hop to the destination queue. Valid range is 1 to 4320 minutes, inclusive." } }, "documentation": "Optional. Configuration for a destination queue to which the job can hop once a customer-defined minimum wait time has passed." @@ -7177,7 +7234,7 @@ "documentation": "Use this setting only when your video source has Dolby Vision studio mastering metadata that is carried in a separate XML file. Specify the Amazon S3 location for the metadata XML file. MediaConvert uses this file to provide global and frame-level metadata for Dolby Vision preprocessing. When you specify a file here and your input also has interleaved global and frame level metadata, MediaConvert ignores the interleaved metadata and uses only the the metadata from this external XML file. Note that your IAM service role must grant MediaConvert read permissions to this file. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html." }, "FileInput": { - "shape": "__stringPatternS3MM2PPMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCFFLLAAAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8WWEEBBMMLLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLLOOGGGGaAAATTMMOOSSHttpsMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8WWEEBBMMLLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLLOOGGGGaAAATTMMOOSS", + "shape": "__stringPatternS3Https", "locationName": "fileInput", "documentation": "Specify the source file for your transcoding job. You can use multiple inputs in a single job. The service concatenates these inputs, in the order that you specify them in the job, to create the outputs. If your input format is IMF, specify your input by providing the path to your CPL. For example, \"s3://bucket/vf/cpl.xml\". If the CPL is in an incomplete IMP, make sure to use *Supplemental IMPs* (SupplementalImps) to specify any supplemental IMPs that contain assets referenced by the CPL." }, @@ -7574,6 +7631,11 @@ "locationName": "billingTagsSource", "documentation": "The tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert costs on any billing report that you set up." }, + "ClientRequestToken": { + "shape": "__string", + "locationName": "clientRequestToken", + "documentation": "Prevent duplicate jobs from being created and ensure idempotency for your requests. A client request token can be any string that includes up to 64 ASCII characters. If you reuse a client request token within one minute of a successful request, the API returns the job details of the original request instead. For more information see https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html." + }, "CreatedAt": { "shape": "__timestampUnix", "locationName": "createdAt", @@ -7678,12 +7740,17 @@ "shape": "__mapOf__string", "locationName": "userMetadata", "documentation": "User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs." + }, + "Warnings": { + "shape": "__listOfWarningGroup", + "locationName": "warnings", + "documentation": "Contains any warning messages for the job. Use to help identify potential issues with your input, output, or job. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/warning_codes.html" } }, "documentation": "Each job converts an input file into an output file or files. For more information, see the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html", "required": [ - "Role", - "Settings" + "Settings", + "Role" ] }, "JobMessages": { @@ -9044,7 +9111,7 @@ }, "MovPaddingControl": { "type": "string", - "documentation": "To make this output compatible with Omenon, keep the default value, OMNEON. Unless you need Omneon compatibility, set this value to NONE. When you keep the default value, OMNEON, MediaConvert increases the length of the edit list atom. This might cause file rejections when a recipient of the output file doesn't expct this extra padding.", + "documentation": "Unless you need Omneon compatibility: Keep the default value, None. To make this output compatible with Omneon: Choose Omneon. When you do, MediaConvert increases the length of the 'elst' edit list atom. Note that this might cause file rejections when a recipient of the output file doesn't expect this extra padding.", "enum": [ "OMNEON", "NONE" @@ -9079,7 +9146,7 @@ "PaddingControl": { "shape": "MovPaddingControl", "locationName": "paddingControl", - "documentation": "To make this output compatible with Omenon, keep the default value, OMNEON. Unless you need Omneon compatibility, set this value to NONE. When you keep the default value, OMNEON, MediaConvert increases the length of the edit list atom. This might cause file rejections when a recipient of the output file doesn't expct this extra padding." + "documentation": "Unless you need Omneon compatibility: Keep the default value, None. To make this output compatible with Omneon: Choose Omneon. When you do, MediaConvert increases the length of the 'elst' edit list atom. Note that this might cause file rejections when a recipient of the output file doesn't expect this extra padding." }, "Reference": { "shape": "MovReference", @@ -9316,12 +9383,12 @@ "TimedMetadataSchemeIdUri": { "shape": "__stringMax1000", "locationName": "timedMetadataSchemeIdUri", - "documentation": "Specify the event message box (eMSG) scheme ID URI (scheme_id_uri) for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3 metadata (timedMetadata) to Passthrough." + "documentation": "Specify the event message box (eMSG) scheme ID URI (scheme_id_uri) for ID3 timed metadata in your output. For more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3 metadata (timedMetadata) to Passthrough." }, "TimedMetadataValue": { "shape": "__stringMax1000", "locationName": "timedMetadataValue", - "documentation": "Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also set ID3 metadata (timedMetadata) to Passthrough." + "documentation": "Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also set ID3 metadata (timedMetadata) to Passthrough." } }, "documentation": "These settings relate to the fragmented MP4 container for the segments in your DASH outputs." @@ -10008,7 +10075,7 @@ "documentation": "Noise reducer filter settings for temporal filter." } }, - "documentation": "Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default. When you enable Noise reducer (NoiseReducer), you must also select a value for Noise reducer filter (NoiseReducerFilter)." + "documentation": "Enable the Noise reducer feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default. When you enable Noise reducer, you must also select a value for Noise reducer filter. For AVC outputs, when you include Noise reducer, you cannot include the Bandwidth reduction filter." }, "NoiseReducerFilter": { "type": "string", @@ -11848,7 +11915,7 @@ "NoiseReducer": { "shape": "NoiseReducer", "locationName": "noiseReducer", - "documentation": "Enable the Noise reducer (NoiseReducer) feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default." + "documentation": "Enable the Noise reducer feature to remove noise from your video output if necessary. Enable or disable this feature for each output individually. This setting is disabled by default. When you enable Noise reducer, you must also select a value for Noise reducer filter. For AVC outputs, when you include Noise reducer, you cannot include the Bandwidth reduction filter." }, "PartnerWatermarking": { "shape": "PartnerWatermarking", @@ -11874,7 +11941,7 @@ "ColorSpace": { "shape": "ColorSpace", "locationName": "colorSpace", - "documentation": "If your input video has accurate color space metadata, or if you don't know about color space, leave this set to the default value Follow. The service will automatically detect your input color space. If your input video has metadata indicating the wrong color space, specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate, choose Force HDR 10 here and specify correct values in the input HDR 10 metadata settings. For more information about MediaConvert HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr. Select P3D65 (SDR) to set the input color space metadata to the following:\n * Color primaries: Display P3\n * Transfer characteristics: SMPTE 428M\n * Matrix coefficients: BT.709" + "documentation": "If your input video has accurate color space metadata, or if you don't know about color space: Keep the default value, Follow. MediaConvert will automatically detect your input color space. If your input video has metadata indicating the wrong color space, or has missing metadata: Specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate: Choose Force HDR 10. Specify correct values in the input HDR 10 metadata settings. For more information about HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr. When you specify an input color space, MediaConvert uses the following color space metadata, which includes color primaries, transfer characteristics, and matrix coefficients:\n * HDR 10: BT.2020, PQ, BT.2020 non-constant\n * HLG 2020: BT.2020, HLG, BT.2020 non-constant\n * P3DCI (Theater): DCIP3, SMPTE 428M, BT.709\n * P3D65 (SDR): Display P3, sRGB, BT.709\n * P3D65 (HDR): Display P3, PQ, BT.709" }, "ColorSpaceUsage": { "shape": "ColorSpaceUsage", @@ -12170,6 +12237,26 @@ }, "documentation": "Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value VP9." }, + "WarningGroup": { + "type": "structure", + "members": { + "Code": { + "shape": "__integer", + "locationName": "code", + "documentation": "Warning code that identifies a specific warning in the job. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/warning_codes.html" + }, + "Count": { + "shape": "__integer", + "locationName": "count", + "documentation": "The number of times this warning occurred in the job." + } + }, + "documentation": "Contains any warning codes and their count for the job.", + "required": [ + "Count", + "Code" + ] + }, "WatermarkingStrength": { "type": "string", "documentation": "Optional. Ignore this setting unless Nagra support directs you to specify a value. When you don't specify a value here, the Nagra NexGuard library uses its default value.", @@ -13371,6 +13458,12 @@ "shape": "TeletextPageType" } }, + "__listOfWarningGroup": { + "type": "list", + "member": { + "shape": "WarningGroup" + } + }, "__listOf__doubleMinNegative60Max6": { "type": "list", "member": { @@ -13655,13 +13748,9 @@ "type": "string", "pattern": "^s3:\\/\\/.*\\/(ASSETMAP.xml)?$" }, - "__stringPatternS3MM2PPMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCFFLLAAAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8WWEEBBMMLLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLLOOGGGGaAAATTMMOOSSHttpsMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8WWEEBBMMLLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMXXMMLLOOGGGGaAAATTMMOOSS": { - "type": "string", - "pattern": "^((s3://([^\\/]+\\/+)+([^\\/\\.]+|(([^\\/]*)\\.([mM]2[pP]|[mM]2[vV]|[mM][pP][eE][gG]|[mM][pP]3|[aA][vV][iI]|[mM][pP]4|[fF][lL][vV]|[mM][pP][tT]|[mM][pP][gG]|[mM]4[vV]|[tT][rR][pP]|[fF]4[vV]|[mM]2[tT][sS]|[tT][sS]|264|[hH]264|[mM][kK][vV]|[mM][kK][aA]|[mM][oO][vV]|[mM][tT][sS]|[mM]2[tT]|[wW][mM][vVaA]|[fF][lL][aA][cC]|[fF][lL][aA]|[aA][sS][fF]|[vV][oO][bB]|3[gG][pP]|3[gG][pP][pP]|[mM][xX][fF]|[dD][iI][vV][xX]|[xX][vV][iI][dD]|[rR][aA][wW]|[dD][vV]|[gG][xX][fF]|[mM]1[vV]|3[gG]2|[vV][mM][fF]|[mM]3[uU]8|[wW][eE][bB][mM]|[lL][cC][hH]|[gG][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF][hH][dD]|[wW][aA][vV]|[yY]4[mM]|[xX][mM][lL]|[oO][gG][gGaA]|[aA][tT][mM][oO][sS]))))|(https?://([^\\/]+\\/+)+([^\\/\\.]+|(([^\\/]*)\\.([mM]2[vV]|[mM][pP][eE][gG]|[mM][pP]3|[aA][vV][iI]|[mM][pP]4|[fF][lL][vV]|[mM][pP][tT]|[mM][pP][gG]|[mM]4[vV]|[tT][rR][pP]|[fF]4[vV]|[mM]2[tT][sS]|[tT][sS]|264|[hH]264|[mM][kK][vV]|[mM][kK][aA]|[mM][oO][vV]|[mM][tT][sS]|[mM]2[tT]|[wW][mM][vVaA]|[fF][lL][aA][cC]|[aA][sS][fF]|[vV][oO][bB]|3[gG][pP]|3[gG][pP][pP]|[mM][xX][fF]|[dD][iI][vV][xX]|[xX][vV][iI][dD]|[rR][aA][wW]|[dD][vV]|[gG][xX][fF]|[mM]1[vV]|3[gG]2|[vV][mM][fF]|[mM]3[uU]8|[wW][eE][bB][mM]|[lL][cC][hH]|[gG][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF][hH][dD]|[wW][aA][vV]|[yY]4[mM]|[xX][mM][lL]|[oO][gG][gGaA]|[aA][tT][mM][oO][sS])))(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$" - }, - "__stringPatternS3MM2PPWWEEBBMMMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCFFLLAAAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMAAAACCAAIIFFFFMMPP2AACC3EECC3DDTTSSEEAATTMMOOSSOOGGGGaAHttpsMM2VVMMPPEEGGMMPP3AAVVIIMMPP4FFLLVVMMPPTTMMPPGGMM4VVTTRRPPFF4VVMM2TTSSTTSS264HH264MMKKVVMMKKAAMMOOVVMMTTSSMM2TTWWMMVVaAFFLLAACCAASSFFVVOOBB3GGPP3GGPPPPMMXXFFDDIIVVXXXXVVIIDDRRAAWWDDVVGGXXFFMM1VV3GG2VVMMFFMM3UU8LLCCHHGGXXFFMMPPEEGG2MMXXFFMMPPEEGG2MMXXFFHHDDWWAAVVYY4MMAAAACCAAIIFFFFMMPP2AACC3EECC3DDTTSSEEAATTMMOOSSOOGGGGaA": { + "__stringPatternS3Https": { "type": "string", - "pattern": "^((s3://([^\\/]+\\/+)+([^\\/\\.]+|(([^\\/]*)\\.([mM]2[pP]|[wW][eE][bB][mM]|[mM]2[vV]|[mM][pP][eE][gG]|[mM][pP]3|[aA][vV][iI]|[mM][pP]4|[fF][lL][vV]|[mM][pP][tT]|[mM][pP][gG]|[mM]4[vV]|[tT][rR][pP]|[fF]4[vV]|[mM]2[tT][sS]|[tT][sS]|264|[hH]264|[mM][kK][vV]|[mM][kK][aA]|[mM][oO][vV]|[mM][tT][sS]|[mM]2[tT]|[wW][mM][vVaA]|[fF][lL][aA][cC]|[fF][lL][aA]|[aA][sS][fF]|[vV][oO][bB]|3[gG][pP]|3[gG][pP][pP]|[mM][xX][fF]|[dD][iI][vV][xX]|[xX][vV][iI][dD]|[rR][aA][wW]|[dD][vV]|[gG][xX][fF]|[mM]1[vV]|3[gG]2|[vV][mM][fF]|[mM]3[uU]8|[lL][cC][hH]|[gG][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF][hH][dD]|[wW][aA][vV]|[yY]4[mM]|[aA][aA][cC]|[aA][iI][fF][fF]|[mM][pP]2|[aA][cC]3|[eE][cC]3|[dD][tT][sS][eE]|[aA][tT][mM][oO][sS]|[oO][gG][gGaA]))))|(https?://([^\\/]+\\/+)+([^\\/\\.]+|(([^\\/]*)\\.([mM]2[vV]|[mM][pP][eE][gG]|[mM][pP]3|[aA][vV][iI]|[mM][pP]4|[fF][lL][vV]|[mM][pP][tT]|[mM][pP][gG]|[mM]4[vV]|[tT][rR][pP]|[fF]4[vV]|[mM]2[tT][sS]|[tT][sS]|264|[hH]264|[mM][kK][vV]|[mM][kK][aA]|[mM][oO][vV]|[mM][tT][sS]|[mM]2[tT]|[wW][mM][vVaA]|[fF][lL][aA][cC]|[aA][sS][fF]|[vV][oO][bB]|3[gG][pP]|3[gG][pP][pP]|[mM][xX][fF]|[dD][iI][vV][xX]|[xX][vV][iI][dD]|[rR][aA][wW]|[dD][vV]|[gG][xX][fF]|[mM]1[vV]|3[gG]2|[vV][mM][fF]|[mM]3[uU]8|[lL][cC][hH]|[gG][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF]_[mM][pP][eE][gG]2|[mM][xX][fF][hH][dD]|[wW][aA][vV]|[yY]4[mM]|[aA][aA][cC]|[aA][iI][fF][fF]|[mM][pP]2|[aA][cC]3|[eE][cC]3|[dD][tT][sS][eE]|[aA][tT][mM][oO][sS]|[oO][gG][gGaA])))(\\?([^&=]+=[^&]+&)*[^&=]+=[^&]+)?))$" + "pattern": "^s3://([^\\/]+\\/+)+((([^\\/]*)))|^https?://[^\\/].*[^&]$" }, "__stringPatternSNManifestConfirmConditionNotificationNS": { "type": "string", diff --git a/services/medialive/pom.xml b/services/medialive/pom.xml index 73d43ba9f01b..72007cf4fc8a 100644 --- a/services/medialive/pom.xml +++ b/services/medialive/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 medialive diff --git a/services/medialive/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/medialive/src/main/resources/codegen-resources/endpoint-rule-set.json index 377ab2425002..a354a5ca2738 100644 --- a/services/medialive/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/medialive/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://medialive-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://medialive-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://medialive-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://medialive.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://medialive-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://medialive.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://medialive.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://medialive.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/medialive/src/main/resources/codegen-resources/endpoint-tests.json b/services/medialive/src/main/resources/codegen-resources/endpoint-tests.json index c0a96034e16b..00763c67479f 100644 --- a/services/medialive/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/medialive/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,37 +1,353 @@ { "testCases": [ { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://medialive.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-west-2.amazonaws.com" + } }, "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "us-iso-east-1", "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://medialive-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://medialive.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-iso-east-1", "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://medialive.cn-north-1.api.amazonwebservices.com.cn" + } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://medialive.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, "UseFIPS": false } }, @@ -43,8 +359,43 @@ } }, "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { "Region": "us-iso-east-1", + "UseDualStack": true, "UseFIPS": false } }, @@ -54,8 +405,8 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", + "UseDualStack": true, "UseFIPS": true } }, @@ -67,8 +418,8 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": true } }, @@ -78,8 +429,8 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", + "UseDualStack": true, "UseFIPS": false } }, @@ -91,21 +442,34 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" } @@ -116,8 +480,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -128,11 +492,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/medialive/src/main/resources/codegen-resources/service-2.json b/services/medialive/src/main/resources/codegen-resources/service-2.json index 70165409dca9..556960825d72 100644 --- a/services/medialive/src/main/resources/codegen-resources/service-2.json +++ b/services/medialive/src/main/resources/codegen-resources/service-2.json @@ -3615,7 +3615,7 @@ "AvailSettings": { "shape": "AvailSettings", "locationName": "availSettings", - "documentation": "Ad avail settings." + "documentation": "Controls how SCTE-35 messages create cues. Splice Insert mode treats all segmentation signals traditionally. With Time Signal APOS mode only Time Signal Placement Opportunity and Break messages create segment breaks. With ESAM mode, signals are forwarded to an ESAM server for possible update." } }, "documentation": "Avail Configuration" @@ -4431,7 +4431,7 @@ "documentation": "Caption selector settings." } }, - "documentation": "Output groups for this Live Event. Output groups contain information about where streams should be distributed.", + "documentation": "Caption Selector", "required": [ "Name" ] @@ -5987,6 +5987,11 @@ "shape": "InputDeviceUhdSettings", "locationName": "uhdDeviceSettings", "documentation": "Settings that describe an input device that is type UHD." + }, + "Tags": { + "shape": "Tags", + "locationName": "tags", + "documentation": "A collection of key-value pairs." } }, "documentation": "Placeholder documentation for DescribeInputDeviceResponse" @@ -8541,7 +8546,7 @@ "NumRetries": { "shape": "__integerMin0", "locationName": "numRetries", - "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state." + "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3." }, "RestartDelay": { "shape": "__integerMin0Max15", @@ -8577,7 +8582,7 @@ "NumRetries": { "shape": "__integerMin0", "locationName": "numRetries", - "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state." + "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3." }, "RestartDelay": { "shape": "__integerMin0Max15", @@ -8901,12 +8906,14 @@ "shape": "__string", "locationName": "tag", "documentation": "ID3 tag to insert into each segment. Supports special keyword identifiers to substitute in segment-related values.\\nSupported keyword identifiers: https://docs.aws.amazon.com/medialive/latest/ug/variable-data-identifiers.html" + }, + "Id3": { + "shape": "__string", + "locationName": "id3", + "documentation": "Base64 string formatted according to the ID3 specification: http://id3.org/id3v2.4.0-structure" } }, - "documentation": "Settings for the action to insert a user-defined ID3 tag in each HLS segment", - "required": [ - "Tag" - ] + "documentation": "Settings for the action to insert a user-defined ID3 tag in each HLS segment" }, "HlsId3SegmentTaggingState": { "type": "string", @@ -9008,7 +9015,7 @@ "NumRetries": { "shape": "__integerMin0", "locationName": "numRetries", - "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state." + "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3." }, "RestartDelay": { "shape": "__integerMin0Max15", @@ -9220,7 +9227,7 @@ "NumRetries": { "shape": "__integerMin0", "locationName": "numRetries", - "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state." + "documentation": "Number of retry attempts that will be made before the Live Event is put into an error state. Applies only if the CDN destination URI begins with \"s3\" or \"mediastore\". For other URIs, the value is always 3." }, "RestartDelay": { "shape": "__integerMin0Max15", @@ -9551,6 +9558,11 @@ "shape": "InputDeviceUhdSettings", "locationName": "uhdDeviceSettings", "documentation": "Settings that describe an input device that is type UHD." + }, + "Tags": { + "shape": "Tags", + "locationName": "tags", + "documentation": "A collection of key-value pairs." } }, "documentation": "An input device." @@ -9807,6 +9819,11 @@ "shape": "InputDeviceUhdSettings", "locationName": "uhdDeviceSettings", "documentation": "Settings that describe an input device that is type UHD." + }, + "Tags": { + "shape": "Tags", + "locationName": "tags", + "documentation": "A collection of key-value pairs." } }, "documentation": "Details of the input device." @@ -12570,6 +12587,11 @@ "shape": "__doubleMin1Max65535", "locationName": "sid", "documentation": "Enter the Nielsen Source ID (SID) to include in the watermark" + }, + "Timezone": { + "shape": "NielsenWatermarkTimezones", + "locationName": "timezone", + "documentation": "Choose the timezone for the time stamps in the watermark. If not provided,\nthe timestamps will be in Coordinated Universal Time (UTC)" } }, "documentation": "Nielsen Naes Ii Nw", @@ -12586,6 +12608,22 @@ "ENABLED" ] }, + "NielsenWatermarkTimezones": { + "type": "string", + "documentation": "Nielsen Watermark Timezones", + "enum": [ + "AMERICA_PUERTO_RICO", + "US_ALASKA", + "US_ARIZONA", + "US_CENTRAL", + "US_EASTERN", + "US_HAWAII", + "US_MOUNTAIN", + "US_PACIFIC", + "US_SAMOA", + "UTC" + ] + }, "NielsenWatermarksCbetStepaside": { "type": "string", "documentation": "Nielsen Watermarks Cbet Stepaside", @@ -14030,7 +14068,7 @@ "documentation": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates" } }, - "documentation": "Scte35 Splice Insert" + "documentation": "Typical configuration that applies breaks on splice inserts in addition to time signal placement opportunities, breaks, and advertisements." }, "Scte35SpliceInsertNoRegionalBlackoutBehavior": { "type": "string", @@ -14086,7 +14124,7 @@ "documentation": "When set to ignore, Segment Descriptors with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates" } }, - "documentation": "Scte35 Time Signal Apos" + "documentation": "Atypical configuration that applies segment breaks only on SCTE-35 time signal placement opportunities and breaks." }, "Scte35TimeSignalScheduleActionSettings": { "type": "structure", @@ -15432,6 +15470,11 @@ "shape": "InputDeviceUhdSettings", "locationName": "uhdDeviceSettings", "documentation": "Settings that describe an input device that is type UHD." + }, + "Tags": { + "shape": "Tags", + "locationName": "tags", + "documentation": "A collection of key-value pairs." } }, "documentation": "Placeholder documentation for UpdateInputDeviceResponse" diff --git a/services/mediapackage/pom.xml b/services/mediapackage/pom.xml index c7e80ead0b01..1106e089c87d 100644 --- a/services/mediapackage/pom.xml +++ b/services/mediapackage/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 mediapackage diff --git a/services/mediapackage/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/mediapackage/src/main/resources/codegen-resources/endpoint-rule-set.json index 42ae548a54e9..471664d79121 100644 --- a/services/mediapackage/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/mediapackage/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediapackage-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://mediapackage-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://mediapackage.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediapackage.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://mediapackage.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/mediapackage/src/main/resources/codegen-resources/endpoint-tests.json b/services/mediapackage/src/main/resources/codegen-resources/endpoint-tests.json index 0909af4ce2ff..89d130745a4f 100644 --- a/services/mediapackage/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/mediapackage/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,562 +1,133 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.ap-northeast-2.amazonaws.com" + "url": "https://mediapackage.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-northeast-2.api.aws" + "url": "https://mediapackage.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "ap-northeast-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-northeast-2.amazonaws.com" + "url": "https://mediapackage.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.ap-northeast-1.api.aws" + "url": "https://mediapackage.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.ap-northeast-1.amazonaws.com" + "url": "https://mediapackage.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-northeast-1.api.aws" + "url": "https://mediapackage.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-northeast-1.amazonaws.com" + "url": "https://mediapackage.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.sa-east-1.api.aws" + "url": "https://mediapackage.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.sa-east-1.amazonaws.com" + "url": "https://mediapackage.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.sa-east-1.api.aws" + "url": "https://mediapackage.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -567,276 +138,230 @@ } }, "params": { - "UseDualStack": false, "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.ap-southeast-1.amazonaws.com" + "url": "https://mediapackage.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-southeast-1.api.aws" + "url": "https://mediapackage.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-southeast-1.amazonaws.com" + "url": "https://mediapackage.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.ap-southeast-2.api.aws" + "url": "https://mediapackage.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.ap-southeast-2.amazonaws.com" + "url": "https://mediapackage-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-southeast-2.api.aws" + "url": "https://mediapackage-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage.ap-southeast-2.amazonaws.com" + "url": "https://mediapackage.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://mediapackage-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.us-iso-east-1.c2s.ic.gov" + "url": "https://mediapackage-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.us-east-1.api.aws" + "url": "https://mediapackage.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.us-east-1.amazonaws.com" + "url": "https://mediapackage.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage.us-east-1.api.aws" + "url": "https://mediapackage-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.us-east-1.amazonaws.com" + "url": "https://mediapackage-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.us-east-2.api.aws" + "url": "https://mediapackage.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-fips.us-east-2.amazonaws.com" + "url": "https://mediapackage.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.us-east-2.api.aws" + "url": "https://mediapackage.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.us-east-2.amazonaws.com" + "url": "https://mediapackage-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { @@ -847,46 +372,48 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://mediapackage.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://mediapackage.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -896,9 +423,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -908,9 +435,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/mediapackage/src/main/resources/codegen-resources/service-2.json b/services/mediapackage/src/main/resources/codegen-resources/service-2.json index 2d603d02876e..f591b0e51dc7 100644 --- a/services/mediapackage/src/main/resources/codegen-resources/service-2.json +++ b/services/mediapackage/src/main/resources/codegen-resources/service-2.json @@ -687,6 +687,11 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "documentation": "The date and time the Channel was created.", + "locationName": "createdAt", + "shape": "__string" + }, "Description": { "documentation": "A short text description of the Channel.", "locationName": "description", @@ -903,6 +908,11 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "documentation": "The date and time the Channel was created.", + "locationName": "createdAt", + "shape": "__string" + }, "Description": { "documentation": "A short text description of the Channel.", "locationName": "description", @@ -962,6 +972,11 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "documentation": "The date and time the Channel was created.", + "locationName": "createdAt", + "shape": "__string" + }, "Description": { "documentation": "A short text description of the Channel.", "locationName": "description", @@ -1041,7 +1056,7 @@ "shape": "__string" }, "CreatedAt": { - "documentation": "The time the HarvestJob was submitted\n", + "documentation": "The date and time the HarvestJob was submitted.\n", "locationName": "createdAt", "shape": "__string" }, @@ -1171,6 +1186,11 @@ "locationName": "cmafPackage", "shape": "CmafPackage" }, + "CreatedAt": { + "documentation": "The date and time the OriginEndpoint was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DashPackage": { "locationName": "dashPackage", "shape": "DashPackage" @@ -1387,6 +1407,11 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "documentation": "The date and time the Channel was created.", + "locationName": "createdAt", + "shape": "__string" + }, "Description": { "documentation": "A short text description of the Channel.", "locationName": "description", @@ -1443,7 +1468,7 @@ "shape": "__string" }, "CreatedAt": { - "documentation": "The time the HarvestJob was submitted\n", + "documentation": "The date and time the HarvestJob was submitted.\n", "locationName": "createdAt", "shape": "__string" }, @@ -1513,6 +1538,11 @@ "locationName": "cmafPackage", "shape": "CmafPackage" }, + "CreatedAt": { + "documentation": "The date and time the OriginEndpoint was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DashPackage": { "locationName": "dashPackage", "shape": "DashPackage" @@ -1638,7 +1668,7 @@ "shape": "__string" }, "CreatedAt": { - "documentation": "The time the HarvestJob was submitted\n", + "documentation": "The date and time the HarvestJob was submitted.\n", "locationName": "createdAt", "shape": "__string" }, @@ -2213,6 +2243,11 @@ "locationName": "cmafPackage", "shape": "CmafPackage" }, + "CreatedAt": { + "documentation": "The date and time the OriginEndpoint was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DashPackage": { "locationName": "dashPackage", "shape": "DashPackage" @@ -2490,6 +2525,11 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "documentation": "The date and time the Channel was created.", + "locationName": "createdAt", + "shape": "__string" + }, "Description": { "documentation": "A short text description of the Channel.", "locationName": "description", @@ -2547,6 +2587,11 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "documentation": "The date and time the Channel was created.", + "locationName": "createdAt", + "shape": "__string" + }, "Description": { "documentation": "A short text description of the Channel.", "locationName": "description", @@ -2817,6 +2862,11 @@ "locationName": "arn", "shape": "__string" }, + "CreatedAt": { + "documentation": "The date and time the Channel was created.", + "locationName": "createdAt", + "shape": "__string" + }, "Description": { "documentation": "A short text description of the Channel.", "locationName": "description", @@ -2931,6 +2981,11 @@ "locationName": "cmafPackage", "shape": "CmafPackage" }, + "CreatedAt": { + "documentation": "The date and time the OriginEndpoint was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DashPackage": { "locationName": "dashPackage", "shape": "DashPackage" @@ -3091,4 +3146,4 @@ "type": "string" } } -} +} \ No newline at end of file diff --git a/services/mediapackagevod/pom.xml b/services/mediapackagevod/pom.xml index 551ebcac2ef5..f3e8cd64c326 100644 --- a/services/mediapackagevod/pom.xml +++ b/services/mediapackagevod/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT mediapackagevod AWS Java SDK :: Services :: MediaPackage Vod diff --git a/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-rule-set.json index 444cef943c2b..3eaa1b287505 100644 --- a/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-vod-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-vod-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediapackage-vod-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-vod.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://mediapackage-vod-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://mediapackage-vod.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mediapackage-vod.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://mediapackage-vod.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-tests.json b/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-tests.json index d2402a72cecf..95b68648ae59 100644 --- a/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/mediapackagevod/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.ap-south-1.amazonaws.com" + "url": "https://mediapackage-vod.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-south-1.api.aws" + "url": "https://mediapackage-vod.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { @@ -47,48 +34,35 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.eu-central-1.amazonaws.com" + "url": "https://mediapackage-vod.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.eu-central-1.api.aws" + "url": "https://mediapackage-vod.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { @@ -99,152 +73,9 @@ } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" + "UseDualStack": false } }, { @@ -255,100 +86,22 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-north-1", "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.eu-west-2.api.aws" + "url": "https://mediapackage-vod.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { @@ -359,332 +112,230 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.eu-west-1.api.aws" + "url": "https://mediapackage-vod.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-3", "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.eu-west-1.amazonaws.com" + "url": "https://mediapackage-vod.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "sa-east-1", "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-northeast-2.api.aws" + "url": "https://mediapackage-vod.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-northeast-2.amazonaws.com" + "url": "https://mediapackage-vod.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-2", "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-northeast-1.api.aws" + "url": "https://mediapackage-vod.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-west-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-northeast-1.amazonaws.com" + "url": "https://mediapackage-vod.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.sa-east-1.api.aws" + "url": "https://mediapackage-vod-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "sa-east-1" + "UseDualStack": true } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.sa-east-1.amazonaws.com" + "url": "https://mediapackage-vod-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.sa-east-1.amazonaws.com" + "url": "https://mediapackage-vod.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.ap-southeast-1.api.aws" + "url": "https://mediapackage-vod-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.ap-southeast-1.amazonaws.com" + "url": "https://mediapackage-vod-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-southeast-1.api.aws" + "url": "https://mediapackage-vod.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-southeast-1.amazonaws.com" + "url": "https://mediapackage-vod.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.ap-southeast-2.api.aws" + "url": "https://mediapackage-vod-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.ap-southeast-2.amazonaws.com" + "url": "https://mediapackage-vod-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-southeast-2.api.aws" + "url": "https://mediapackage-vod.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.ap-southeast-2.amazonaws.com" + "url": "https://mediapackage-vod.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { @@ -695,20 +346,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { @@ -719,174 +359,61 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod-fips.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.us-east-2.amazonaws.com" + "url": "https://mediapackage-vod-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod.us-east-2.amazonaws.com" + "url": "https://mediapackage-vod.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-isob-east-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://mediapackage-vod-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mediapackage-vod.us-isob-east-1.sc2s.sgov.gov" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -896,9 +423,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -908,9 +435,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/mediapackagevod/src/main/resources/codegen-resources/service-2.json b/services/mediapackagevod/src/main/resources/codegen-resources/service-2.json index 05a28d3ac982..f2fc8a97397e 100644 --- a/services/mediapackagevod/src/main/resources/codegen-resources/service-2.json +++ b/services/mediapackagevod/src/main/resources/codegen-resources/service-2.json @@ -828,6 +828,11 @@ "locationName": "authorization", "shape": "Authorization" }, + "CreatedAt": { + "documentation": "The time the PackagingGroup was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DomainName": { "documentation": "The fully qualified domain name for Assets in the PackagingGroup.", "locationName": "domainName", @@ -990,6 +995,11 @@ "locationName": "cmafPackage", "shape": "CmafPackage" }, + "CreatedAt": { + "documentation": "The time the PackagingConfiguration was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DashPackage": { "locationName": "dashPackage", "shape": "DashPackage" @@ -1056,6 +1066,11 @@ "locationName": "authorization", "shape": "Authorization" }, + "CreatedAt": { + "documentation": "The time the PackagingGroup was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DomainName": { "documentation": "The fully qualified domain name for Assets in the PackagingGroup.", "locationName": "domainName", @@ -1114,7 +1129,7 @@ "shape": "Profile" }, "ScteMarkersSource": { - "documentation": "The source of scte markers used. When set to SEGMENTS, the scte markers are sourced from the segments of the ingested content. When set to MANIFEST, the scte markers are sourced from the manifest of the ingested content. The MANIFEST value is compatible with source HLS playlists using the SCTE-35 Enhanced syntax (#EXT-OATCLS-SCTE35 tags). SCTE-35 Elemental and SCTE-35 Daterange syntaxes are not supported with this option.", + "documentation": "The source of scte markers used. When set to SEGMENTS, the scte markers are sourced from the segments of the ingested content. When set to MANIFEST, the scte markers are sourced from the manifest of the ingested content.", "locationName": "scteMarkersSource", "shape": "ScteMarkersSource" }, @@ -1310,6 +1325,11 @@ "locationName": "cmafPackage", "shape": "CmafPackage" }, + "CreatedAt": { + "documentation": "The time the PackagingConfiguration was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DashPackage": { "locationName": "dashPackage", "shape": "DashPackage" @@ -1369,6 +1389,11 @@ "locationName": "authorization", "shape": "Authorization" }, + "CreatedAt": { + "documentation": "The time the PackagingGroup was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DomainName": { "documentation": "The fully qualified domain name for Assets in the PackagingGroup.", "locationName": "domainName", @@ -1789,6 +1814,11 @@ "locationName": "cmafPackage", "shape": "CmafPackage" }, + "CreatedAt": { + "documentation": "The time the PackagingConfiguration was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DashPackage": { "locationName": "dashPackage", "shape": "DashPackage" @@ -1891,6 +1921,11 @@ "locationName": "authorization", "shape": "Authorization" }, + "CreatedAt": { + "documentation": "The time the PackagingGroup was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DomainName": { "documentation": "The fully qualified domain name for Assets in the PackagingGroup.", "locationName": "domainName", @@ -2211,6 +2246,11 @@ "locationName": "authorization", "shape": "Authorization" }, + "CreatedAt": { + "documentation": "The time the PackagingGroup was created.", + "locationName": "createdAt", + "shape": "__string" + }, "DomainName": { "documentation": "The fully qualified domain name for Assets in the PackagingGroup.", "locationName": "domainName", diff --git a/services/mediastore/pom.xml b/services/mediastore/pom.xml index f57e7e7a0781..18230f1e71f6 100644 --- a/services/mediastore/pom.xml +++ b/services/mediastore/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 mediastore diff --git a/services/mediastoredata/pom.xml b/services/mediastoredata/pom.xml index ca673f3c8bdd..d858ea1fe1f4 100644 --- a/services/mediastoredata/pom.xml +++ b/services/mediastoredata/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 mediastoredata diff --git a/services/mediatailor/pom.xml b/services/mediatailor/pom.xml index a803fe67c58c..c12e97ea51e9 100644 --- a/services/mediatailor/pom.xml +++ b/services/mediatailor/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT mediatailor AWS Java SDK :: Services :: MediaTailor diff --git a/services/memorydb/pom.xml b/services/memorydb/pom.xml index e34ad1fe49e7..1532d62e40d6 100644 --- a/services/memorydb/pom.xml +++ b/services/memorydb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT memorydb AWS Java SDK :: Services :: Memory DB diff --git a/services/mgn/pom.xml b/services/mgn/pom.xml index d8b19683aa0f..ab77dd8695c4 100644 --- a/services/mgn/pom.xml +++ b/services/mgn/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT mgn AWS Java SDK :: Services :: Mgn diff --git a/services/mgn/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/mgn/src/main/resources/codegen-resources/endpoint-rule-set.json index 1d5c3b554e52..33f645d40edf 100644 --- a/services/mgn/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/mgn/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgn-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgn-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mgn-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgn.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://mgn-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://mgn.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://mgn.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://mgn.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/mgn/src/main/resources/codegen-resources/endpoint-tests.json b/services/mgn/src/main/resources/codegen-resources/endpoint-tests.json index 531244afb5c4..fcda59beb323 100644 --- a/services/mgn/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/mgn/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,614 +1,55 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.ap-south-1.api.aws" - } - }, - "params": { - "Region": "ap-south-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-south-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.ap-south-1.api.aws" - } - }, - "params": { - "Region": "ap-south-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.ap-south-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-south-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-south-1.api.aws" - } - }, - "params": { - "Region": "eu-south-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-south-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-south-1.api.aws" - } - }, - "params": { - "Region": "eu-south-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-south-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-south-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.ca-central-1.api.aws" - } - }, - "params": { - "Region": "ca-central-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "Region": "ca-central-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.ca-central-1.api.aws" - } - }, - "params": { - "Region": "ca-central-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.ca-central-1.amazonaws.com" - } - }, - "params": { - "Region": "ca-central-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-central-1.api.aws" - } - }, - "params": { - "Region": "eu-central-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-central-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-central-1.api.aws" - } - }, - "params": { - "Region": "eu-central-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-central-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-central-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.us-west-1.api.aws" - } - }, - "params": { - "Region": "us-west-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "Region": "us-west-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.us-west-1.api.aws" - } - }, - "params": { - "Region": "us-west-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.us-west-1.amazonaws.com" - } - }, - "params": { - "Region": "us-west-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "Region": "us-west-2", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.us-west-2.amazonaws.com" - } - }, - "params": { - "Region": "us-west-2", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.af-south-1.api.aws" - } - }, - "params": { - "Region": "af-south-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "Region": "af-south-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.af-south-1.api.aws" - } - }, - "params": { - "Region": "af-south-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.af-south-1.amazonaws.com" - } - }, - "params": { - "Region": "af-south-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-north-1.api.aws" - } - }, - "params": { - "Region": "eu-north-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-north-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-north-1.api.aws" - } - }, - "params": { - "Region": "eu-north-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-north-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-north-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-3", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-west-3.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-3", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-west-2.api.aws" - } - }, - "params": { - "Region": "eu-west-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-2", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-west-2.api.aws" - } - }, - "params": { - "Region": "eu-west-2", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.eu-west-2.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-2", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-west-1.api.aws" - } - }, - "params": { - "Region": "eu-west-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.eu-west-1.api.aws" + "url": "https://mgn.af-south-1.amazonaws.com" } }, "params": { - "Region": "eu-west-1", + "Region": "af-south-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.eu-west-1.amazonaws.com" + "url": "https://mgn.ap-east-1.amazonaws.com" } }, "params": { - "Region": "eu-west-1", + "Region": "ap-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "Region": "ap-northeast-3", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-northeast-3.amazonaws.com" + "url": "https://mgn.ap-northeast-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-3", - "UseFIPS": true, + "Region": "ap-northeast-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-northeast-3.api.aws" + "url": "https://mgn.ap-northeast-2.amazonaws.com" } }, "params": { - "Region": "ap-northeast-3", + "Region": "ap-northeast-2", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { @@ -625,146 +66,133 @@ } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-northeast-2.amazonaws.com" + "url": "https://mgn.ap-south-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-2", - "UseFIPS": true, + "Region": "ap-south-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-northeast-2.api.aws" + "url": "https://mgn.ap-southeast-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-2", + "Region": "ap-southeast-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-northeast-2.amazonaws.com" + "url": "https://mgn.ap-southeast-2.amazonaws.com" } }, "params": { - "Region": "ap-northeast-2", + "Region": "ap-southeast-2", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-northeast-1.api.aws" + "url": "https://mgn.ca-central-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-1", - "UseFIPS": true, - "UseDualStack": true + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-northeast-1.amazonaws.com" + "url": "https://mgn.eu-central-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-1", - "UseFIPS": true, + "Region": "eu-central-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-northeast-1.api.aws" + "url": "https://mgn.eu-north-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-1", + "Region": "eu-north-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-northeast-1.amazonaws.com" + "url": "https://mgn.eu-south-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-1", + "Region": "eu-south-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.me-south-1.api.aws" + "url": "https://mgn.eu-west-1.amazonaws.com" } }, "params": { - "Region": "me-south-1", - "UseFIPS": true, - "UseDualStack": true + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.me-south-1.amazonaws.com" + "url": "https://mgn.eu-west-2.amazonaws.com" } }, "params": { - "Region": "me-south-1", - "UseFIPS": true, + "Region": "eu-west-2", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.me-south-1.api.aws" + "url": "https://mgn.eu-west-3.amazonaws.com" } }, "params": { - "Region": "me-south-1", + "Region": "eu-west-3", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { @@ -780,45 +208,6 @@ "UseDualStack": false } }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.sa-east-1.api.aws" - } - }, - "params": { - "Region": "sa-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "Region": "sa-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.sa-east-1.api.aws" - } - }, - "params": { - "Region": "sa-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, { "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { @@ -833,326 +222,274 @@ } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-east-1.api.aws" + "url": "https://mgn.us-east-1.amazonaws.com" } }, "params": { - "Region": "ap-east-1", - "UseFIPS": true, - "UseDualStack": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-east-1.amazonaws.com" + "url": "https://mgn.us-east-2.amazonaws.com" } }, "params": { - "Region": "ap-east-1", - "UseFIPS": true, + "Region": "us-east-2", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-east-1.api.aws" + "url": "https://mgn.us-west-1.amazonaws.com" } }, "params": { - "Region": "ap-east-1", + "Region": "us-west-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-east-1.amazonaws.com" + "url": "https://mgn.us-west-2.amazonaws.com" } }, "params": { - "Region": "ap-east-1", + "Region": "us-west-2", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-southeast-1.api.aws" + "url": "https://mgn-fips.us-east-1.api.aws" } }, "params": { - "Region": "ap-southeast-1", + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-southeast-1.amazonaws.com" + "url": "https://mgn-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "ap-southeast-1", + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mgn.ap-southeast-1.api.aws" + "url": "https://mgn.us-east-1.api.aws" } }, "params": { - "Region": "ap-southeast-1", + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://mgn.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-southeast-2.api.aws" + "url": "https://mgn-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "ap-southeast-2", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-southeast-2.amazonaws.com" + "url": "https://mgn-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "ap-southeast-2", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mgn.ap-southeast-2.api.aws" + "url": "https://mgn.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "ap-southeast-2", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-southeast-2.amazonaws.com" + "url": "https://mgn.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "ap-southeast-2", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-southeast-3.api.aws" + "url": "https://mgn-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "ap-southeast-3", + "Region": "us-gov-east-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.ap-southeast-3.amazonaws.com" + "url": "https://mgn-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "ap-southeast-3", + "Region": "us-gov-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://mgn.ap-southeast-3.api.aws" + "url": "https://mgn.us-gov-east-1.api.aws" } }, "params": { - "Region": "ap-southeast-3", + "Region": "us-gov-east-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.ap-southeast-3.amazonaws.com" + "url": "https://mgn.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "ap-southeast-3", + "Region": "us-gov-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.us-east-1.amazonaws.com" + "url": "https://mgn-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-east-1", + "Region": "us-iso-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.us-east-1.amazonaws.com" + "url": "https://mgn.us-iso-east-1.c2s.ic.gov" } }, "params": { - "Region": "us-east-1", + "Region": "us-iso-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://mgn-fips.us-east-2.api.aws" - } - }, - "params": { - "Region": "us-east-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn-fips.us-east-2.amazonaws.com" + "url": "https://mgn-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-2", + "Region": "us-isob-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://mgn.us-east-2.api.aws" + "url": "https://mgn.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-2", + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://mgn.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { - "Region": "us-east-2", + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" diff --git a/services/mgn/src/main/resources/codegen-resources/paginators-1.json b/services/mgn/src/main/resources/codegen-resources/paginators-1.json index 04af579e2098..f243b0f48e1a 100644 --- a/services/mgn/src/main/resources/codegen-resources/paginators-1.json +++ b/services/mgn/src/main/resources/codegen-resources/paginators-1.json @@ -42,6 +42,30 @@ "limit_key": "maxResults", "result_key": "items" }, + "ListExportErrors": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListExports": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListImportErrors": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListImports": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, "ListSourceServerActions": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/mgn/src/main/resources/codegen-resources/service-2.json b/services/mgn/src/main/resources/codegen-resources/service-2.json index 1ae75376c90a..bb8325c55eff 100644 --- a/services/mgn/src/main/resources/codegen-resources/service-2.json +++ b/services/mgn/src/main/resources/codegen-resources/service-2.json @@ -503,6 +503,65 @@ ], "documentation":"

Retrieves all applications or multiple applications by ID.

" }, + "ListExportErrors":{ + "name":"ListExportErrors", + "http":{ + "method":"POST", + "requestUri":"/ListExportErrors", + "responseCode":200 + }, + "input":{"shape":"ListExportErrorsRequest"}, + "output":{"shape":"ListExportErrorsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ValidationException"} + ], + "documentation":"

List export errors.

" + }, + "ListExports":{ + "name":"ListExports", + "http":{ + "method":"POST", + "requestUri":"/ListExports", + "responseCode":200 + }, + "input":{"shape":"ListExportsRequest"}, + "output":{"shape":"ListExportsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"} + ], + "documentation":"

List exports.

" + }, + "ListImportErrors":{ + "name":"ListImportErrors", + "http":{ + "method":"POST", + "requestUri":"/ListImportErrors", + "responseCode":200 + }, + "input":{"shape":"ListImportErrorsRequest"}, + "output":{"shape":"ListImportErrorsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ValidationException"} + ], + "documentation":"

List import errors.

" + }, + "ListImports":{ + "name":"ListImports", + "http":{ + "method":"POST", + "requestUri":"/ListImports", + "responseCode":200 + }, + "input":{"shape":"ListImportsRequest"}, + "output":{"shape":"ListImportsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ValidationException"} + ], + "documentation":"

List imports.

" + }, "ListSourceServerActions":{ "name":"ListSourceServerActions", "http":{ @@ -679,6 +738,40 @@ ], "documentation":"

Launches a Cutover Instance for specific Source Servers. This command starts a LAUNCH job whose initiatedBy property is StartCutover and changes the SourceServer.lifeCycle.state property to CUTTING_OVER.

" }, + "StartExport":{ + "name":"StartExport", + "http":{ + "method":"POST", + "requestUri":"/StartExport", + "responseCode":202 + }, + "input":{"shape":"StartExportRequest"}, + "output":{"shape":"StartExportResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Start export.

" + }, + "StartImport":{ + "name":"StartImport", + "http":{ + "method":"POST", + "requestUri":"/StartImport", + "responseCode":202 + }, + "input":{"shape":"StartImportRequest"}, + "output":{"shape":"StartImportResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Start import.

" + }, "StartReplication":{ "name":"StartReplication", "http":{ @@ -939,6 +1032,33 @@ }, "exception":true }, + "AccountID":{ + "type":"string", + "max":12, + "min":12, + "pattern":"[0-9]{12,}" + }, + "ActionCategory":{ + "type":"string", + "enum":[ + "DISASTER_RECOVERY", + "OPERATING_SYSTEM", + "LICENSE_AND_SUBSCRIPTION", + "VALIDATION", + "OBSERVABILITY", + "SECURITY", + "NETWORKING", + "CONFIGURATION", + "BACKUP", + "OTHER" + ] + }, + "ActionDescription":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^[0-9a-zA-Z ():/.,'-_#*; ]*$" + }, "ActionID":{ "type":"string", "max":64, @@ -1210,6 +1330,11 @@ "CUTOVER" ] }, + "ClientIdempotencyToken":{ + "type":"string", + "max":64, + "min":0 + }, "CloudWatchLogGroupName":{ "type":"string", "max":512, @@ -2061,6 +2186,113 @@ }, "documentation":"

Error details.

" }, + "ExportErrorData":{ + "type":"structure", + "members":{ + "rawError":{ + "shape":"LargeBoundedString", + "documentation":"

Export errors data raw error.

" + } + }, + "documentation":"

Export errors data.

" + }, + "ExportErrors":{ + "type":"list", + "member":{"shape":"ExportTaskError"} + }, + "ExportID":{ + "type":"string", + "max":24, + "min":24, + "pattern":"^export-[0-9a-zA-Z]{17}$" + }, + "ExportStatus":{ + "type":"string", + "enum":[ + "PENDING", + "STARTED", + "FAILED", + "SUCCEEDED" + ] + }, + "ExportTask":{ + "type":"structure", + "members":{ + "creationDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Export task creation datetime.

" + }, + "endDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Export task end datetime.

" + }, + "exportID":{ + "shape":"ExportID", + "documentation":"

Export task id.

" + }, + "progressPercentage":{ + "shape":"Float", + "documentation":"

Export task progress percentage.

" + }, + "s3Bucket":{ + "shape":"S3BucketName", + "documentation":"

Export task s3 bucket.

" + }, + "s3BucketOwner":{ + "shape":"AccountID", + "documentation":"

Export task s3 bucket owner.

" + }, + "s3Key":{ + "shape":"S3Key", + "documentation":"

Export task s3 key.

" + }, + "status":{ + "shape":"ExportStatus", + "documentation":"

Export task status.

" + }, + "summary":{ + "shape":"ExportTaskSummary", + "documentation":"

Export task summary.

" + } + }, + "documentation":"

Export task.

" + }, + "ExportTaskError":{ + "type":"structure", + "members":{ + "errorData":{ + "shape":"ExportErrorData", + "documentation":"

Export task error data.

" + }, + "errorDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Export task error datetime.

" + } + }, + "documentation":"

Export task error.

" + }, + "ExportTaskSummary":{ + "type":"structure", + "members":{ + "applicationsCount":{ + "shape":"PositiveInteger", + "documentation":"

Export task summary applications count.

" + }, + "serversCount":{ + "shape":"PositiveInteger", + "documentation":"

Export task summary servers count.

" + }, + "wavesCount":{ + "shape":"PositiveInteger", + "documentation":"

Export task summary waves count.

" + } + }, + "documentation":"

Export task summary.

" + }, + "ExportsList":{ + "type":"list", + "member":{"shape":"ExportTask"} + }, "FinalizeCutoverRequest":{ "type":"structure", "required":["sourceServerID"], @@ -2080,6 +2312,10 @@ "STOPPED" ] }, + "Float":{ + "type":"float", + "box":true + }, "GetLaunchConfigurationRequest":{ "type":"structure", "required":["sourceServerID"], @@ -2141,6 +2377,184 @@ }, "documentation":"

Identification hints.

" }, + "ImportErrorData":{ + "type":"structure", + "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Import error data application ID.

" + }, + "ec2LaunchTemplateID":{ + "shape":"BoundedString", + "documentation":"

Import error data ec2 LaunchTemplate ID.

" + }, + "rawError":{ + "shape":"LargeBoundedString", + "documentation":"

Import error data raw error.

" + }, + "rowNumber":{ + "shape":"PositiveInteger", + "documentation":"

Import error data row number.

" + }, + "sourceServerID":{ + "shape":"SourceServerID", + "documentation":"

Import error data source server ID.

" + }, + "waveID":{ + "shape":"WaveID", + "documentation":"

Import error data wave id.

" + } + }, + "documentation":"

Import error data.

" + }, + "ImportErrorType":{ + "type":"string", + "enum":[ + "VALIDATION_ERROR", + "PROCESSING_ERROR" + ] + }, + "ImportErrors":{ + "type":"list", + "member":{"shape":"ImportTaskError"} + }, + "ImportID":{ + "type":"string", + "max":24, + "min":24, + "pattern":"^import-[0-9a-zA-Z]{17}$" + }, + "ImportIDsFilter":{ + "type":"list", + "member":{"shape":"ImportID"}, + "max":10, + "min":0 + }, + "ImportList":{ + "type":"list", + "member":{"shape":"ImportTask"} + }, + "ImportStatus":{ + "type":"string", + "enum":[ + "PENDING", + "STARTED", + "FAILED", + "SUCCEEDED" + ] + }, + "ImportTask":{ + "type":"structure", + "members":{ + "creationDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Import task creation datetime.

" + }, + "endDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Import task end datetime.

" + }, + "importID":{ + "shape":"ImportID", + "documentation":"

Import task id.

" + }, + "progressPercentage":{ + "shape":"Float", + "documentation":"

Import task progress percentage.

" + }, + "s3BucketSource":{ + "shape":"S3BucketSource", + "documentation":"

Import task s3 bucket source.

" + }, + "status":{ + "shape":"ImportStatus", + "documentation":"

Import task status.

" + }, + "summary":{ + "shape":"ImportTaskSummary", + "documentation":"

Import task summary.

" + } + }, + "documentation":"

Import task.

" + }, + "ImportTaskError":{ + "type":"structure", + "members":{ + "errorData":{ + "shape":"ImportErrorData", + "documentation":"

Import task error data.

" + }, + "errorDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Import task error datetime.

" + }, + "errorType":{ + "shape":"ImportErrorType", + "documentation":"

Import task error type.

" + } + }, + "documentation":"

Import task error.

" + }, + "ImportTaskSummary":{ + "type":"structure", + "members":{ + "applications":{ + "shape":"ImportTaskSummaryApplications", + "documentation":"

Import task summary applications.

" + }, + "servers":{ + "shape":"ImportTaskSummaryServers", + "documentation":"

Import task summary servers.

" + }, + "waves":{ + "shape":"ImportTaskSummaryWaves", + "documentation":"

Import task summary waves.

" + } + }, + "documentation":"

Import task summary.

" + }, + "ImportTaskSummaryApplications":{ + "type":"structure", + "members":{ + "createdCount":{ + "shape":"PositiveInteger", + "documentation":"

Import task summary applications created count.

" + }, + "modifiedCount":{ + "shape":"PositiveInteger", + "documentation":"

Import task summary applications modified count.

" + } + }, + "documentation":"

Import task summary applications.

" + }, + "ImportTaskSummaryServers":{ + "type":"structure", + "members":{ + "createdCount":{ + "shape":"PositiveInteger", + "documentation":"

Import task summary servers created count.

" + }, + "modifiedCount":{ + "shape":"PositiveInteger", + "documentation":"

Import task summary servers modified count.

" + } + }, + "documentation":"

Import task summary servers.

" + }, + "ImportTaskSummaryWaves":{ + "type":"structure", + "members":{ + "createdCount":{ + "shape":"PositiveInteger", + "documentation":"

Import task summery waves created count.

" + }, + "modifiedCount":{ + "shape":"PositiveInteger", + "documentation":"

Import task summery waves modified count.

" + } + }, + "documentation":"

Import task summery waves.

" + }, "InitializeServiceRequest":{ "type":"structure", "members":{ @@ -2177,6 +2591,12 @@ "exception":true, "fault":true }, + "JmesPathString":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_\\[\\]]+)*$" + }, "Job":{ "type":"structure", "required":["jobID"], @@ -2692,7 +3112,8 @@ "CUTTING_OVER", "CUTOVER", "DISCONNECTED", - "DISCOVERED" + "DISCOVERED", + "PENDING_INSTALLATION" ] }, "LifeCycleStates":{ @@ -2749,6 +3170,159 @@ } } }, + "ListExportErrorsRequest":{ + "type":"structure", + "required":["exportID"], + "members":{ + "exportID":{ + "shape":"ExportID", + "documentation":"

List export errors request export id.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

List export errors request max results.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List export errors request next token.

" + } + }, + "documentation":"

List export errors request.

" + }, + "ListExportErrorsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ExportErrors", + "documentation":"

List export errors response items.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List export errors response next token.

" + } + }, + "documentation":"

List export errors response.

" + }, + "ListExportsRequest":{ + "type":"structure", + "members":{ + "filters":{"shape":"ListExportsRequestFilters"}, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

List export request max results.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List export request next token.

" + } + }, + "documentation":"

List export request.

" + }, + "ListExportsRequestFilters":{ + "type":"structure", + "members":{ + "exportIDs":{ + "shape":"ListExportsRequestFiltersExportIDs", + "documentation":"

List exports request filters export ids.

" + } + }, + "documentation":"

List exports request filters.

" + }, + "ListExportsRequestFiltersExportIDs":{ + "type":"list", + "member":{"shape":"ExportID"}, + "max":10, + "min":0 + }, + "ListExportsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ExportsList", + "documentation":"

List export response items.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List export response next token.

" + } + }, + "documentation":"

List export response.

" + }, + "ListImportErrorsRequest":{ + "type":"structure", + "required":["importID"], + "members":{ + "importID":{ + "shape":"ImportID", + "documentation":"

List import errors request import id.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

List import errors request max results.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List import errors request next token.

" + } + }, + "documentation":"

List import errors request.

" + }, + "ListImportErrorsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ImportErrors", + "documentation":"

List imports errors response items.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List imports errors response next token.

" + } + }, + "documentation":"

List imports errors response.

" + }, + "ListImportsRequest":{ + "type":"structure", + "members":{ + "filters":{ + "shape":"ListImportsRequestFilters", + "documentation":"

List imports request filters.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

List imports request max results.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List imports request next token.

" + } + }, + "documentation":"

List imports request.

" + }, + "ListImportsRequestFilters":{ + "type":"structure", + "members":{ + "importIDs":{ + "shape":"ImportIDsFilter", + "documentation":"

List imports request filters import IDs.

" + } + }, + "documentation":"

List imports request filters.

" + }, + "ListImportsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ImportList", + "documentation":"

List import response items.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

List import response next token.

" + } + }, + "documentation":"

List import response.

" + }, "ListSourceServerActionsRequest":{ "type":"structure", "required":["sourceServerID"], @@ -3060,6 +3634,14 @@ "shape":"Boolean", "documentation":"

Source server post migration custom action active status.

" }, + "category":{ + "shape":"ActionCategory", + "documentation":"

Source server post migration custom action category.

" + }, + "description":{ + "shape":"ActionDescription", + "documentation":"

Source server post migration custom action description.

" + }, "documentIdentifier":{ "shape":"BoundedString", "documentation":"

Source server post migration custom action document identifier.

" @@ -3068,6 +3650,10 @@ "shape":"DocumentVersion", "documentation":"

Source server post migration custom action document version.

" }, + "externalParameters":{ + "shape":"SsmDocumentExternalParameters", + "documentation":"

Source server post migration custom action external parameters.

" + }, "mustSucceedForCutover":{ "shape":"Boolean", "documentation":"

Source server post migration custom action must succeed for cutover.

" @@ -3112,6 +3698,14 @@ "shape":"Boolean", "documentation":"

Template post migration custom action active status.

" }, + "category":{ + "shape":"ActionCategory", + "documentation":"

Template post migration custom action category.

" + }, + "description":{ + "shape":"ActionDescription", + "documentation":"

Template post migration custom action description.

" + }, "documentIdentifier":{ "shape":"BoundedString", "documentation":"

Template post migration custom action document identifier.

" @@ -3120,6 +3714,10 @@ "shape":"DocumentVersion", "documentation":"

Template post migration custom action document version.

" }, + "externalParameters":{ + "shape":"SsmDocumentExternalParameters", + "documentation":"

Template post migration custom action external parameters.

" + }, "launchConfigurationTemplateID":{ "shape":"LaunchConfigurationTemplateID", "documentation":"

Launch configuration template ID.

" @@ -3454,6 +4052,36 @@ } } }, + "S3BucketName":{ + "type":"string", + "pattern":"^[a-zA-Z0-9.\\-_]{1,255}$" + }, + "S3BucketSource":{ + "type":"structure", + "required":[ + "s3Bucket", + "s3Key" + ], + "members":{ + "s3Bucket":{ + "shape":"S3BucketName", + "documentation":"

S3 bucket source s3 bucket.

" + }, + "s3BucketOwner":{ + "shape":"AccountID", + "documentation":"

S3 bucket source s3 bucket owner.

" + }, + "s3Key":{ + "shape":"S3Key", + "documentation":"

S3 bucket source s3 key.

" + } + }, + "documentation":"

S3 bucket source.

" + }, + "S3Key":{ + "type":"string", + "pattern":"^[^\\x00]{1,1020}\\.csv$" + }, "S3LogBucketName":{ "type":"string", "max":63, @@ -3556,6 +4184,10 @@ "shape":"DataReplicationInfo", "documentation":"

Source server data replication info.

" }, + "fqdnForActionFramework":{ + "shape":"BoundedString", + "documentation":"

Source server fqdn for action framework.

" + }, "isArchived":{ "shape":"Boolean", "documentation":"

Source server archived status.

" @@ -3584,6 +4216,10 @@ "shape":"TagsMap", "documentation":"

Source server Tags.

" }, + "userProvidedID":{ + "shape":"BoundedString", + "documentation":"

Source server user provided ID.

" + }, "vcenterClientID":{ "shape":"VcenterClientID", "documentation":"

Source server vCenter client id.

" @@ -3605,6 +4241,14 @@ "shape":"Boolean", "documentation":"

Source server post migration custom action active status.

" }, + "category":{ + "shape":"ActionCategory", + "documentation":"

Source server post migration custom action category.

" + }, + "description":{ + "shape":"ActionDescription", + "documentation":"

Source server post migration custom action description.

" + }, "documentIdentifier":{ "shape":"BoundedString", "documentation":"

Source server post migration custom action document identifier.

" @@ -3613,6 +4257,10 @@ "shape":"DocumentVersion", "documentation":"

Source server post migration custom action document version.

" }, + "externalParameters":{ + "shape":"SsmDocumentExternalParameters", + "documentation":"

Source server post migration custom action external parameters.

" + }, "mustSucceedForCutover":{ "shape":"Boolean", "documentation":"

Source server post migration custom action must succeed for cutover.

" @@ -3668,6 +4316,10 @@ "shape":"BoundedString", "documentation":"

User-friendly name for the AWS Systems Manager Document.

" }, + "externalParameters":{ + "shape":"SsmDocumentExternalParameters", + "documentation":"

AWS Systems Manager Document external parameters.

" + }, "mustSucceedForCutover":{ "shape":"Boolean", "documentation":"

If true, Cutover will not be enabled if the document has failed.

" @@ -3687,6 +4339,13 @@ }, "documentation":"

AWS Systems Manager Document.

" }, + "SsmDocumentExternalParameters":{ + "type":"map", + "key":{"shape":"SsmDocumentParameterName"}, + "value":{"shape":"SsmExternalParameter"}, + "max":20, + "min":0 + }, "SsmDocumentName":{ "type":"string", "max":172, @@ -3719,6 +4378,17 @@ "max":10, "min":0 }, + "SsmExternalParameter":{ + "type":"structure", + "members":{ + "dynamicPath":{ + "shape":"JmesPathString", + "documentation":"

AWS Systems Manager Document external parameters dynamic path.

" + } + }, + "documentation":"

AWS Systems Manager Document external parameter.

", + "union":true + }, "SsmParameterStoreParameter":{ "type":"structure", "required":[ @@ -3782,6 +4452,64 @@ } } }, + "StartExportRequest":{ + "type":"structure", + "required":[ + "s3Bucket", + "s3Key" + ], + "members":{ + "s3Bucket":{ + "shape":"S3BucketName", + "documentation":"

Start export request s3 bucket.

" + }, + "s3BucketOwner":{ + "shape":"AccountID", + "documentation":"

Start export request s3 bucket owner.

" + }, + "s3Key":{ + "shape":"S3Key", + "documentation":"

Start export request s3key.

" + } + }, + "documentation":"

Start export request.

" + }, + "StartExportResponse":{ + "type":"structure", + "members":{ + "exportTask":{ + "shape":"ExportTask", + "documentation":"

Start export response export task.

" + } + }, + "documentation":"

Start export response.

" + }, + "StartImportRequest":{ + "type":"structure", + "required":["s3BucketSource"], + "members":{ + "clientToken":{ + "shape":"ClientIdempotencyToken", + "documentation":"

Start import request client token.

", + "idempotencyToken":true + }, + "s3BucketSource":{ + "shape":"S3BucketSource", + "documentation":"

Start import request s3 bucket source.

" + } + }, + "documentation":"

Start import request.

" + }, + "StartImportResponse":{ + "type":"structure", + "members":{ + "importTask":{ + "shape":"ImportTask", + "documentation":"

Start import response import task.

" + } + }, + "documentation":"

Start import response.

" + }, "StartReplicationRequest":{ "type":"structure", "required":["sourceServerID"], @@ -3893,6 +4621,14 @@ "shape":"Boolean", "documentation":"

Template post migration custom action active status.

" }, + "category":{ + "shape":"ActionCategory", + "documentation":"

Template post migration custom action category.

" + }, + "description":{ + "shape":"ActionDescription", + "documentation":"

Template post migration custom action description.

" + }, "documentIdentifier":{ "shape":"BoundedString", "documentation":"

Template post migration custom action document identifier.

" @@ -3901,6 +4637,10 @@ "shape":"DocumentVersion", "documentation":"

Template post migration custom action document version.

" }, + "externalParameters":{ + "shape":"SsmDocumentExternalParameters", + "documentation":"

Template post migration custom action external parameters.

" + }, "mustSucceedForCutover":{ "shape":"Boolean", "documentation":"

Template post migration custom action must succeed for cutover.

" diff --git a/services/migrationhub/pom.xml b/services/migrationhub/pom.xml index 129466129f02..ef72c04c353f 100644 --- a/services/migrationhub/pom.xml +++ b/services/migrationhub/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 migrationhub diff --git a/services/migrationhubconfig/pom.xml b/services/migrationhubconfig/pom.xml index 9de2c9557b55..60ea16eaf9ae 100644 --- a/services/migrationhubconfig/pom.xml +++ b/services/migrationhubconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT migrationhubconfig AWS Java SDK :: Services :: MigrationHub Config diff --git a/services/migrationhuborchestrator/pom.xml b/services/migrationhuborchestrator/pom.xml index 520222c48b6d..abd00333f87b 100644 --- a/services/migrationhuborchestrator/pom.xml +++ b/services/migrationhuborchestrator/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT migrationhuborchestrator AWS Java SDK :: Services :: Migration Hub Orchestrator diff --git a/services/migrationhubrefactorspaces/pom.xml b/services/migrationhubrefactorspaces/pom.xml index 37e0204d718b..29c3fc0d4a27 100644 --- a/services/migrationhubrefactorspaces/pom.xml +++ b/services/migrationhubrefactorspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT migrationhubrefactorspaces AWS Java SDK :: Services :: Migration Hub Refactor Spaces diff --git a/services/migrationhubstrategy/pom.xml b/services/migrationhubstrategy/pom.xml index 12dd4dbf7117..70798899ec04 100644 --- a/services/migrationhubstrategy/pom.xml +++ b/services/migrationhubstrategy/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT migrationhubstrategy AWS Java SDK :: Services :: Migration Hub Strategy diff --git a/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-rule-set.json index b5093f10ce45..8a244599f52c 100644 --- a/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-strategy-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-strategy-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://migrationhub-strategy-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-strategy.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://migrationhub-strategy-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://migrationhub-strategy.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://migrationhub-strategy.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://migrationhub-strategy.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-tests.json b/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-tests.json index c1c746312183..bca07ef21bd9 100644 --- a/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/migrationhubstrategy/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,29 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://migrationhub-strategy-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.eu-central-1.amazonaws.com" + "url": "https://migrationhub-strategy.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.eu-central-1.api.aws" + "url": "https://migrationhub-strategy.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" + "UseDualStack": false } }, { @@ -47,48 +34,48 @@ } }, "params": { + "Region": "eu-central-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.us-west-2.api.aws" + "url": "https://migrationhub-strategy.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.us-west-2.amazonaws.com" + "url": "https://migrationhub-strategy.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.us-west-2.api.aws" + "url": "https://migrationhub-strategy.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" + "UseDualStack": false } }, { @@ -99,273 +86,222 @@ } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.eu-west-2.api.aws" + "url": "https://migrationhub-strategy-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" + "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.eu-west-2.amazonaws.com" + "url": "https://migrationhub-strategy-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://migrationhub-strategy.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.eu-west-2.amazonaws.com" + "url": "https://migrationhub-strategy.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" + "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.eu-west-1.api.aws" + "url": "https://migrationhub-strategy-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" + "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.eu-west-1.amazonaws.com" + "url": "https://migrationhub-strategy-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.eu-west-1.api.aws" + "url": "https://migrationhub-strategy.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" + "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.eu-west-1.amazonaws.com" + "url": "https://migrationhub-strategy.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.ap-northeast-1.api.aws" + "url": "https://migrationhub-strategy-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.ap-northeast-1.amazonaws.com" + "url": "https://migrationhub-strategy-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.ap-northeast-1.api.aws" + "url": "https://migrationhub-strategy.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.ap-northeast-1.amazonaws.com" + "url": "https://migrationhub-strategy.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.ap-southeast-2.api.aws" + "url": "https://migrationhub-strategy-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://migrationhub-strategy.ap-southeast-2.api.aws" + "url": "https://migrationhub-strategy.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://migrationhub-strategy-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://migrationhub-strategy-fips.us-east-1.amazonaws.com" + "url": "https://migrationhub-strategy-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.us-east-1.api.aws" + "url": "https://migrationhub-strategy.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://migrationhub-strategy.us-east-1.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -374,7 +310,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -384,9 +319,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -396,9 +331,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/migrationhubstrategy/src/main/resources/codegen-resources/service-2.json b/services/migrationhubstrategy/src/main/resources/codegen-resources/service-2.json index 24d6094aecc0..e2ee2d5de1cb 100644 --- a/services/migrationhubstrategy/src/main/resources/codegen-resources/service-2.json +++ b/services/migrationhubstrategy/src/main/resources/codegen-resources/service-2.json @@ -381,13 +381,79 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

The AWS user account does not have permission to perform the action. Check the AWS Identity and Access Management (IAM) policy associated with this account.

", + "documentation":"

The user does not have permission to perform the action. Check the AWS Identity and Access Management (IAM) policy associated with this user.

", "error":{ "httpStatusCode":403, "senderFault":true }, "exception":true }, + "AnalysisStatusUnion":{ + "type":"structure", + "members":{ + "runtimeAnalysisStatus":{ + "shape":"RuntimeAnalysisStatus", + "documentation":"

The status of the analysis.

" + }, + "srcCodeOrDbAnalysisStatus":{ + "shape":"SrcCodeOrDbAnalysisStatus", + "documentation":"

The status of the source code or database analysis.

" + } + }, + "documentation":"

A combination of existing analysis statuses.

", + "union":true + }, + "AnalysisType":{ + "type":"string", + "enum":[ + "SOURCE_CODE_ANALYSIS", + "DATABASE_ANALYSIS", + "RUNTIME_ANALYSIS", + "BINARY_ANALYSIS" + ] + }, + "AnalyzerNameUnion":{ + "type":"structure", + "members":{ + "binaryAnalyzerName":{ + "shape":"BinaryAnalyzerName", + "documentation":"

The binary analyzer names.

" + }, + "runTimeAnalyzerName":{ + "shape":"RunTimeAnalyzerName", + "documentation":"

The assessment analyzer names.

" + }, + "sourceCodeAnalyzerName":{ + "shape":"SourceCodeAnalyzerName", + "documentation":"

The source code analyzer names.

" + } + }, + "documentation":"

The combination of the existing analyzers.

", + "union":true + }, + "AntipatternReportResult":{ + "type":"structure", + "members":{ + "analyzerName":{ + "shape":"AnalyzerNameUnion", + "documentation":"

The analyzer name.

" + }, + "antiPatternReportS3Object":{"shape":"S3Object"}, + "antipatternReportStatus":{ + "shape":"AntipatternReportStatus", + "documentation":"

The status of the anti-pattern report generation.

" + }, + "antipatternReportStatusMessage":{ + "shape":"StatusMessage", + "documentation":"

The status message for the anti-pattern.

" + } + }, + "documentation":"

The anti-pattern report result.

" + }, + "AntipatternReportResultList":{ + "type":"list", + "member":{"shape":"AntipatternReportResult"} + }, "AntipatternReportStatus":{ "type":"string", "enum":[ @@ -545,6 +611,10 @@ "shape":"ResourceSubType", "documentation":"

The application component subtype.

" }, + "resultList":{ + "shape":"ResultList", + "documentation":"

A list of the analysis results.

" + }, "runtimeStatus":{ "shape":"RuntimeAnalysisStatus", "documentation":"

The status of the application unit.

" @@ -801,6 +871,13 @@ "max":1, "min":1 }, + "BinaryAnalyzerName":{ + "type":"string", + "enum":[ + "DLL_ANALYZER", + "BYTECODE_ANALYZER" + ] + }, "Boolean":{ "type":"boolean", "box":true @@ -972,7 +1049,8 @@ "type":"string", "enum":[ "ApplicationDiscoveryService", - "MPA" + "MPA", + "Import" ] }, "DatabaseConfigDetail":{ @@ -1341,7 +1419,10 @@ }, "GroupName":{ "type":"string", - "enum":["ExternalId"] + "enum":[ + "ExternalId", + "ExternalSourceType" + ] }, "Heterogeneous":{ "type":"structure", @@ -2013,6 +2094,42 @@ "DatabaseProcess" ] }, + "Result":{ + "type":"structure", + "members":{ + "analysisStatus":{ + "shape":"AnalysisStatusUnion", + "documentation":"

The error in server analysis.

" + }, + "analysisType":{ + "shape":"AnalysisType", + "documentation":"

The error in server analysis.

" + }, + "antipatternReportResultList":{ + "shape":"AntipatternReportResultList", + "documentation":"

The error in server analysis.

" + }, + "statusMessage":{ + "shape":"StatusMessage", + "documentation":"

The error in server analysis.

" + } + }, + "documentation":"

The error in server analysis.

" + }, + "ResultList":{ + "type":"list", + "member":{"shape":"Result"} + }, + "RunTimeAnalyzerName":{ + "type":"string", + "enum":[ + "A2C_ANALYZER", + "REHOST_ANALYZER", + "EMP_PA_ANALYZER", + "DATABASE_ANALYZER", + "SCT_ANALYZER" + ] + }, "RunTimeAssessmentStatus":{ "type":"string", "enum":[ @@ -2327,6 +2444,15 @@ }, "documentation":"

Object containing source code information that is linked to an application component.

" }, + "SourceCodeAnalyzerName":{ + "type":"string", + "enum":[ + "CSHARP_ANALYZER", + "JAVA_ANALYZER", + "BYTECODE_ANALYZER", + "PORTING_ASSISTANT" + ] + }, "SourceCodeList":{ "type":"list", "member":{"shape":"SourceCode"} @@ -2830,5 +2956,5 @@ "pattern":".*\\S.*" } }, - "documentation":"

Migration Hub Strategy Recommendations

 <p>This API reference provides descriptions, syntax, and other details about each of the actions and data types for Migration Hub Strategy Recommendations (Strategy Recommendations). The topic for each action shows the API request parameters and the response. Alternatively, you can use one of the AWS SDKs to access an API that is tailored to the programming language or platform that you're using. For more information, see <a href="http://aws.amazon.com/tools/#SDKs">AWS SDKs</a>.</p> 
" + "documentation":"

Migration Hub Strategy Recommendations

This API reference provides descriptions, syntax, and other details about each of the actions and data types for Migration Hub Strategy Recommendations (Strategy Recommendations). The topic for each action shows the API request parameters and the response. Alternatively, you can use one of the AWS SDKs to access an API that is tailored to the programming language or platform that you're using. For more information, see AWS SDKs.

" } diff --git a/services/mobile/pom.xml b/services/mobile/pom.xml index 0ffa871b5883..3da6250ae151 100644 --- a/services/mobile/pom.xml +++ b/services/mobile/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 mobile diff --git a/services/mq/pom.xml b/services/mq/pom.xml index 0f1318369274..925e06b44bdf 100644 --- a/services/mq/pom.xml +++ b/services/mq/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 mq diff --git a/services/mturk/pom.xml b/services/mturk/pom.xml index 5ee1369a6fbb..ca25a6d3149a 100644 --- a/services/mturk/pom.xml +++ b/services/mturk/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT mturk AWS Java SDK :: Services :: Amazon Mechanical Turk Requester diff --git a/services/mwaa/pom.xml b/services/mwaa/pom.xml index ac6c7ff3323c..2c4100a6f97b 100644 --- a/services/mwaa/pom.xml +++ b/services/mwaa/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT mwaa AWS Java SDK :: Services :: MWAA diff --git a/services/mwaa/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/mwaa/src/main/resources/codegen-resources/endpoint-rule-set.json index 7dfce2ccedf5..685842c616d6 100644 --- a/services/mwaa/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/mwaa/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://airflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://airflow-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://airflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://airflow.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://airflow-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://airflow.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://airflow.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://airflow.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/mwaa/src/main/resources/codegen-resources/endpoint-tests.json b/services/mwaa/src/main/resources/codegen-resources/endpoint-tests.json index 6932814ecb34..2f79f36beac4 100644 --- a/services/mwaa/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/mwaa/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1108 +1,463 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.eu-west-3.amazonaws.com" + "url": "https://airflow.ap-northeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.eu-west-2.amazonaws.com" + "url": "https://airflow.ap-northeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false + "Region": "ap-northeast-2" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.eu-west-2.amazonaws.com" + "url": "https://airflow.ap-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true + "Region": "ap-south-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.eu-west-1.amazonaws.com" + "url": "https://airflow.ap-southeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.eu-west-1.amazonaws.com" + "url": "https://airflow.ap-southeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true + "Region": "ap-southeast-2" } }, { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-northeast-3.amazonaws.com" + "url": "https://airflow.ca-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false + "Region": "ca-central-1" } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.ap-northeast-3.amazonaws.com" + "url": "https://airflow.eu-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "eu-central-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-northeast-2.amazonaws.com" + "url": "https://airflow.eu-north-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "eu-north-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.ap-northeast-2.amazonaws.com" + "url": "https://airflow.eu-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "eu-west-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-northeast-1.amazonaws.com" + "url": "https://airflow.eu-west-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "eu-west-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.ap-northeast-1.amazonaws.com" + "url": "https://airflow.eu-west-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true + "Region": "eu-west-3" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.me-south-1.amazonaws.com" + "url": "https://airflow.sa-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false + "Region": "sa-east-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.me-south-1.amazonaws.com" + "url": "https://airflow.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.sa-east-1.api.aws" + "url": "https://airflow.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.sa-east-1.amazonaws.com" + "url": "https://airflow.us-west-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "us-west-2" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://airflow.sa-east-1.api.aws" + "url": "https://airflow-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.sa-east-1.amazonaws.com" + "url": "https://airflow-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-east-1.api.aws" + "url": "https://airflow.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://airflow-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://airflow.ap-east-1.api.aws" + "url": "https://airflow-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.ap-east-1.amazonaws.com" + "url": "https://airflow-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-southeast-1.api.aws" + "url": "https://airflow.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-southeast-1.amazonaws.com" + "url": "https://airflow.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://airflow.ap-southeast-1.api.aws" + "url": "https://airflow-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.ap-southeast-1.amazonaws.com" + "url": "https://airflow-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-southeast-2.api.aws" + "url": "https://airflow.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.ap-southeast-2.amazonaws.com" + "url": "https://airflow.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://airflow.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.ap-southeast-2.amazonaws.com" + "url": "https://airflow-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://airflow-fips.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.us-east-1.amazonaws.com" + "url": "https://airflow.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://airflow.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow.us-east-1.amazonaws.com" + "url": "https://airflow-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://airflow-fips.us-east-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://airflow-fips.us-east-2.amazonaws.com" + "url": "https://airflow.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://airflow.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://airflow.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1112,9 +467,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1124,11 +479,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/mwaa/src/main/resources/codegen-resources/service-2.json b/services/mwaa/src/main/resources/codegen-resources/service-2.json index e709dc047453..40802ad51444 100644 --- a/services/mwaa/src/main/resources/codegen-resources/service-2.json +++ b/services/mwaa/src/main/resources/codegen-resources/service-2.json @@ -281,7 +281,7 @@ "members":{ "AirflowConfigurationOptions":{ "shape":"AirflowConfigurationOptions", - "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see Apache Airflow configuration options.

" + "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see Apache Airflow configuration options.

" }, "AirflowVersion":{ "shape":"AirflowVersion", @@ -289,19 +289,19 @@ }, "DagS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. To learn more, see Adding or updating DAGs.

" + "documentation":"

The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. For more information, see Adding or updating DAGs.

" }, "EnvironmentClass":{ "shape":"EnvironmentClass", - "documentation":"

The environment class type. Valid values: mw1.small, mw1.medium, mw1.large. To learn more, see Amazon MWAA environment class.

" + "documentation":"

The environment class type. Valid values: mw1.small, mw1.medium, mw1.large. For more information, see Amazon MWAA environment class.

" }, "ExecutionRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the execution role for your environment. An execution role is an Amazon Web Services Identity and Access Management (IAM) role that grants MWAA permission to access Amazon Web Services services and resources used by your environment. For example, arn:aws:iam::123456789:role/my-execution-role. To learn more, see Amazon MWAA Execution role.

" + "documentation":"

The Amazon Resource Name (ARN) of the execution role for your environment. An execution role is an Amazon Web Services Identity and Access Management (IAM) role that grants MWAA permission to access Amazon Web Services services and resources used by your environment. For example, arn:aws:iam::123456789:role/my-execution-role. For more information, see Amazon MWAA Execution role.

" }, "KmsKey":{ "shape":"KmsKey", - "documentation":"

The Amazon Web Services Key Management Service (KMS) key to encrypt the data in your environment. You can use an Amazon Web Services owned CMK, or a Customer managed CMK (advanced). To learn more, see Create an Amazon MWAA environment.

" + "documentation":"

The Amazon Web Services Key Management Service (KMS) key to encrypt the data in your environment. You can use an Amazon Web Services owned CMK, or a Customer managed CMK (advanced). For more information, see Create an Amazon MWAA environment.

" }, "LoggingConfiguration":{ "shape":"LoggingConfigurationInput", @@ -323,23 +323,23 @@ }, "NetworkConfiguration":{ "shape":"NetworkConfiguration", - "documentation":"

The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. To learn more, see About networking on Amazon MWAA.

" + "documentation":"

The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see About networking on Amazon MWAA.

" }, "PluginsS3ObjectVersion":{ "shape":"S3ObjectVersion", - "documentation":"

The version of the plugins.zip file on your Amazon S3 bucket. A version must be specified each time a plugins.zip file is updated. To learn more, see How S3 Versioning works.

" + "documentation":"

The version of the plugins.zip file on your Amazon S3 bucket. You must specify a version each time a plugins.zip file is updated. For more information, see How S3 Versioning works.

" }, "PluginsS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the plugins.zip file on your Amazon S3 bucket. For example, plugins.zip. If specified, then the plugins.zip version is required. To learn more, see Installing custom plugins.

" + "documentation":"

The relative path to the plugins.zip file on your Amazon S3 bucket. For example, plugins.zip. If specified, then the plugins.zip version is required. For more information, see Installing custom plugins.

" }, "RequirementsS3ObjectVersion":{ "shape":"S3ObjectVersion", - "documentation":"

The version of the requirements.txt file on your Amazon S3 bucket. A version must be specified each time a requirements.txt file is updated. To learn more, see How S3 Versioning works.

" + "documentation":"

The version of the requirements.txt file on your Amazon S3 bucket. You must specify a version each time a requirements.txt file is updated. For more information, see How S3 Versioning works.

" }, "RequirementsS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the requirements.txt file on your Amazon S3 bucket. For example, requirements.txt. If specified, then a file version is required. To learn more, see Installing Python dependencies.

" + "documentation":"

The relative path to the requirements.txt file on your Amazon S3 bucket. For example, requirements.txt. If specified, then a version is required. For more information, see Installing Python dependencies.

" }, "Schedulers":{ "shape":"Schedulers", @@ -347,15 +347,23 @@ }, "SourceBucketArn":{ "shape":"S3BucketArn", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, arn:aws:s3:::my-airflow-bucket-unique-name. To learn more, see Create an Amazon S3 bucket for Amazon MWAA.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, arn:aws:s3:::my-airflow-bucket-unique-name. For more information, see Create an Amazon S3 bucket for Amazon MWAA.

" + }, + "StartupScriptS3ObjectVersion":{ + "shape":"S3ObjectVersion", + "documentation":"

The version of the startup shell script in your Amazon S3 bucket. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.

Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

For more information, see Using a startup script.

" + }, + "StartupScriptS3Path":{ + "shape":"RelativePath", + "documentation":"

The relative path to the startup shell script in your Amazon S3 bucket. For example, s3://mwaa-environment/startup.sh.

Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see Using a startup script.

" }, "Tags":{ "shape":"TagMap", - "documentation":"

The key-value tag pairs you want to associate to your environment. For example, \"Environment\": \"Staging\". To learn more, see Tagging Amazon Web Services resources.

" + "documentation":"

The key-value tag pairs you want to associate to your environment. For example, \"Environment\": \"Staging\". For more information, see Tagging Amazon Web Services resources.

" }, "WebserverAccessMode":{ "shape":"WebserverAccessMode", - "documentation":"

The Apache Airflow Web server access mode. To learn more, see Apache Airflow access modes.

" + "documentation":"

The Apache Airflow Web server access mode. For more information, see Apache Airflow access modes.

" }, "WeeklyMaintenanceWindowStart":{ "shape":"WeeklyMaintenanceWindowStart", @@ -447,7 +455,7 @@ "members":{ "AirflowConfigurationOptions":{ "shape":"AirflowConfigurationOptions", - "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options attached to your environment. To learn more, see Apache Airflow configuration options.

" + "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options attached to your environment. For more information, see Apache Airflow configuration options.

" }, "AirflowVersion":{ "shape":"AirflowVersion", @@ -463,15 +471,15 @@ }, "DagS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. To learn more, see Adding or updating DAGs.

" + "documentation":"

The relative path to the DAGs folder in your Amazon S3 bucket. For example, s3://mwaa-environment/dags. For more information, see Adding or updating DAGs.

" }, "EnvironmentClass":{ "shape":"EnvironmentClass", - "documentation":"

The environment class type. Valid values: mw1.small, mw1.medium, mw1.large. To learn more, see Amazon MWAA environment class.

" + "documentation":"

The environment class type. Valid values: mw1.small, mw1.medium, mw1.large. For more information, see Amazon MWAA environment class.

" }, "ExecutionRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, arn:aws:iam::123456789:role/my-execution-role. To learn more, see Amazon MWAA Execution role.

" + "documentation":"

The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, arn:aws:iam::123456789:role/my-execution-role. For more information, see Amazon MWAA Execution role.

" }, "KmsKey":{ "shape":"KmsKey", @@ -499,23 +507,23 @@ }, "NetworkConfiguration":{ "shape":"NetworkConfiguration", - "documentation":"

Describes the VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. To learn more, see About networking on Amazon MWAA.

" + "documentation":"

Describes the VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see About networking on Amazon MWAA.

" }, "PluginsS3ObjectVersion":{ "shape":"S3ObjectVersion", - "documentation":"

The version of the plugins.zip file on your Amazon S3 bucket. To learn more, see Installing custom plugins.

" + "documentation":"

The version of the plugins.zip file in your Amazon S3 bucket. You must specify the version ID that Amazon S3 assigns to the file.

Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

For more information, see Installing custom plugins.

" }, "PluginsS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the plugins.zip file on your Amazon S3 bucket. For example, plugins.zip. To learn more, see Installing custom plugins.

" + "documentation":"

The relative path to the file in your Amazon S3 bucket. For example, s3://mwaa-environment/plugins.zip. For more information, see Installing custom plugins.

" }, "RequirementsS3ObjectVersion":{ "shape":"S3ObjectVersion", - "documentation":"

The version of the requirements.txt file on your Amazon S3 bucket. To learn more, see Installing Python dependencies.

" + "documentation":"

The version of the requirements.txt file on your Amazon S3 bucket. You must specify the version ID that Amazon S3 assigns to the file.

Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

For more information, see Installing Python dependencies.

" }, "RequirementsS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the requirements.txt file on your Amazon S3 bucket. For example, requirements.txt. To learn more, see Installing Python dependencies.

" + "documentation":"

The relative path to the requirements.txt file in your Amazon S3 bucket. For example, s3://mwaa-environment/requirements.txt. For more information, see Installing Python dependencies.

" }, "Schedulers":{ "shape":"Schedulers", @@ -523,27 +531,35 @@ }, "ServiceRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) for the service-linked role of the environment. To learn more, see Amazon MWAA Service-linked role.

" + "documentation":"

The Amazon Resource Name (ARN) for the service-linked role of the environment. For more information, see Amazon MWAA Service-linked role.

" }, "SourceBucketArn":{ "shape":"S3BucketArn", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, arn:aws:s3:::my-airflow-bucket-unique-name. To learn more, see Create an Amazon S3 bucket for Amazon MWAA.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, arn:aws:s3:::my-airflow-bucket-unique-name. For more information, see Create an Amazon S3 bucket for Amazon MWAA.

" + }, + "StartupScriptS3ObjectVersion":{ + "shape":"String", + "documentation":"

The version of the startup shell script in your Amazon S3 bucket. You must specify the version ID that Amazon S3 assigns to the file.

Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

For more information, see Using a startup script.

" + }, + "StartupScriptS3Path":{ + "shape":"String", + "documentation":"

The relative path to the startup shell script in your Amazon S3 bucket. For example, s3://mwaa-environment/startup.sh.

Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see Using a startup script.

" }, "Status":{ "shape":"EnvironmentStatus", - "documentation":"

The status of the Amazon MWAA environment. Valid values:

  • CREATING - Indicates the request to create the environment is in progress.

  • CREATE_FAILED - Indicates the request to create the environment failed, and the environment could not be created.

  • AVAILABLE - Indicates the request was successful and the environment is ready to use.

  • UPDATING - Indicates the request to update the environment is in progress.

  • DELETING - Indicates the request to delete the environment is in progress.

  • DELETED - Indicates the request to delete the environment is complete, and the environment has been deleted.

  • UNAVAILABLE - Indicates the request failed, but the environment was unable to rollback and is not in a stable state.

  • UPDATE_FAILED - Indicates the request to update the environment failed, and the environment has rolled back successfully and is ready to use.

We recommend reviewing our troubleshooting guide for a list of common errors and their solutions. To learn more, see Amazon MWAA troubleshooting.

" + "documentation":"

The status of the Amazon MWAA environment. Valid values:

  • CREATING - Indicates the request to create the environment is in progress.

  • CREATE_FAILED - Indicates the request to create the environment failed, and the environment could not be created.

  • AVAILABLE - Indicates the request was successful and the environment is ready to use.

  • UPDATING - Indicates the request to update the environment is in progress.

  • DELETING - Indicates the request to delete the environment is in progress.

  • DELETED - Indicates the request to delete the environment is complete, and the environment has been deleted.

  • UNAVAILABLE - Indicates the request failed, but the environment was unable to rollback and is not in a stable state.

  • UPDATE_FAILED - Indicates the request to update the environment failed, and the environment has rolled back successfully and is ready to use.

We recommend reviewing our troubleshooting guide for a list of common errors and their solutions. For more information, see Amazon MWAA troubleshooting.

" }, "Tags":{ "shape":"TagMap", - "documentation":"

The key-value tag pairs associated to your environment. For example, \"Environment\": \"Staging\". To learn more, see Tagging Amazon Web Services resources.

" + "documentation":"

The key-value tag pairs associated to your environment. For example, \"Environment\": \"Staging\". For more information, see Tagging Amazon Web Services resources.

" }, "WebserverAccessMode":{ "shape":"WebserverAccessMode", - "documentation":"

The Apache Airflow Web server access mode. To learn more, see Apache Airflow access modes.

" + "documentation":"

The Apache Airflow Web server access mode. For more information, see Apache Airflow access modes.

" }, "WebserverUrl":{ "shape":"WebserverUrl", - "documentation":"

The Apache Airflow Web server host name for the Amazon MWAA environment. To learn more, see Accessing the Apache Airflow UI.

" + "documentation":"

The Apache Airflow Web server host name for the Amazon MWAA environment. For more information, see Accessing the Apache Airflow UI.

" }, "WeeklyMaintenanceWindowStart":{ "shape":"WeeklyMaintenanceWindowStart", @@ -722,7 +738,7 @@ "members":{ "Tags":{ "shape":"TagMap", - "documentation":"

The key-value tag pairs associated to your environment. To learn more, see Tagging Amazon Web Services resources.

" + "documentation":"

The key-value tag pairs associated to your environment. For more information, see Tagging Amazon Web Services resources.

" } } }, @@ -881,14 +897,14 @@ "members":{ "SecurityGroupIds":{ "shape":"SecurityGroupList", - "documentation":"

A list of security group IDs. To learn more, see Security in your VPC on Amazon MWAA.

" + "documentation":"

A list of security group IDs. For more information, see Security in your VPC on Amazon MWAA.

" }, "SubnetIds":{ "shape":"SubnetList", - "documentation":"

A list of subnet IDs. To learn more, see About networking on Amazon MWAA.

" + "documentation":"

A list of subnet IDs. For more information, see About networking on Amazon MWAA.

" } }, - "documentation":"

Describes the VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. To learn more, see About networking on Amazon MWAA.

" + "documentation":"

Describes the VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see About networking on Amazon MWAA.

" }, "NextToken":{ "type":"string", @@ -1034,7 +1050,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The key-value tag pairs you want to associate to your environment. For example, \"Environment\": \"Staging\". To learn more, see Tagging Amazon Web Services resources.

" + "documentation":"

The key-value tag pairs you want to associate to your environment. For example, \"Environment\": \"Staging\". For more information, see Tagging Amazon Web Services resources.

" } } }, @@ -1119,7 +1135,7 @@ "members":{ "AirflowConfigurationOptions":{ "shape":"AirflowConfigurationOptions", - "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see Apache Airflow configuration options.

" + "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see Apache Airflow configuration options.

" }, "AirflowVersion":{ "shape":"AirflowVersion", @@ -1127,15 +1143,15 @@ }, "DagS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. To learn more, see Adding or updating DAGs.

" + "documentation":"

The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. For more information, see Adding or updating DAGs.

" }, "EnvironmentClass":{ "shape":"EnvironmentClass", - "documentation":"

The environment class type. Valid values: mw1.small, mw1.medium, mw1.large. To learn more, see Amazon MWAA environment class.

" + "documentation":"

The environment class type. Valid values: mw1.small, mw1.medium, mw1.large. For more information, see Amazon MWAA environment class.

" }, "ExecutionRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, arn:aws:iam::123456789:role/my-execution-role. To learn more, see Amazon MWAA Execution role.

" + "documentation":"

The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, arn:aws:iam::123456789:role/my-execution-role. For more information, see Amazon MWAA Execution role.

" }, "LoggingConfiguration":{ "shape":"LoggingConfigurationInput", @@ -1157,23 +1173,23 @@ }, "NetworkConfiguration":{ "shape":"UpdateNetworkConfigurationInput", - "documentation":"

The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. To learn more, see About networking on Amazon MWAA.

" + "documentation":"

The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see About networking on Amazon MWAA.

" }, "PluginsS3ObjectVersion":{ "shape":"S3ObjectVersion", - "documentation":"

The version of the plugins.zip file on your Amazon S3 bucket. A version must be specified each time a plugins.zip file is updated. To learn more, see How S3 Versioning works.

" + "documentation":"

The version of the plugins.zip file on your Amazon S3 bucket. You must specify a version each time a plugins.zip file is updated. For more information, see How S3 Versioning works.

" }, "PluginsS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the plugins.zip file on your Amazon S3 bucket. For example, plugins.zip. If specified, then the plugins.zip version is required. To learn more, see Installing custom plugins.

" + "documentation":"

The relative path to the plugins.zip file on your Amazon S3 bucket. For example, plugins.zip. If specified, then the plugins.zip version is required. For more information, see Installing custom plugins.

" }, "RequirementsS3ObjectVersion":{ "shape":"S3ObjectVersion", - "documentation":"

The version of the requirements.txt file on your Amazon S3 bucket. A version must be specified each time a requirements.txt file is updated. To learn more, see How S3 Versioning works.

" + "documentation":"

The version of the requirements.txt file on your Amazon S3 bucket. You must specify a version each time a requirements.txt file is updated. For more information, see How S3 Versioning works.

" }, "RequirementsS3Path":{ "shape":"RelativePath", - "documentation":"

The relative path to the requirements.txt file on your Amazon S3 bucket. For example, requirements.txt. If specified, then a file version is required. To learn more, see Installing Python dependencies.

" + "documentation":"

The relative path to the requirements.txt file on your Amazon S3 bucket. For example, requirements.txt. If specified, then a file version is required. For more information, see Installing Python dependencies.

" }, "Schedulers":{ "shape":"Schedulers", @@ -1181,11 +1197,19 @@ }, "SourceBucketArn":{ "shape":"S3BucketArn", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, arn:aws:s3:::my-airflow-bucket-unique-name. To learn more, see Create an Amazon S3 bucket for Amazon MWAA.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, arn:aws:s3:::my-airflow-bucket-unique-name. For more information, see Create an Amazon S3 bucket for Amazon MWAA.

" + }, + "StartupScriptS3ObjectVersion":{ + "shape":"S3ObjectVersion", + "documentation":"

The version of the startup shell script in your Amazon S3 bucket. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.

Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

For more information, see Using a startup script.

" + }, + "StartupScriptS3Path":{ + "shape":"RelativePath", + "documentation":"

The relative path to the startup shell script in your Amazon S3 bucket. For example, s3://mwaa-environment/startup.sh.

Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see Using a startup script.

" }, "WebserverAccessMode":{ "shape":"WebserverAccessMode", - "documentation":"

The Apache Airflow Web server access mode. To learn more, see Apache Airflow access modes.

" + "documentation":"

The Apache Airflow Web server access mode. For more information, see Apache Airflow access modes.

" }, "WeeklyMaintenanceWindowStart":{ "shape":"WeeklyMaintenanceWindowStart", @@ -1222,10 +1246,10 @@ "members":{ "SecurityGroupIds":{ "shape":"SecurityGroupList", - "documentation":"

A list of security group IDs. A security group must be attached to the same VPC as the subnets. To learn more, see Security in your VPC on Amazon MWAA.

" + "documentation":"

A list of security group IDs. A security group must be attached to the same VPC as the subnets. For more information, see Security in your VPC on Amazon MWAA.

" } }, - "documentation":"

Defines the VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. To learn more, see About networking on Amazon MWAA.

" + "documentation":"

Defines the VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see About networking on Amazon MWAA.

" }, "UpdateSource":{ "type":"string", diff --git a/services/neptune/pom.xml b/services/neptune/pom.xml index 3aa1697a60d8..555022f8d3c8 100644 --- a/services/neptune/pom.xml +++ b/services/neptune/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT neptune AWS Java SDK :: Services :: Neptune diff --git a/services/neptune/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/neptune/src/main/resources/codegen-resources/endpoint-rule-set.json index 1becf46c1600..b9aff9f06c88 100644 --- a/services/neptune/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/neptune/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,294 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.ca-central-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] - } - ], - "endpoint": { - "url": "https://rds-fips.ca-central-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + }, { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.us-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://rds-fips.us-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "rds.us-east-2" + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rds-fips.us-east-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.us-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://rds-fips.us-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "rds.us-west-2" + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rds-fips.us-west-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/neptune/src/main/resources/codegen-resources/endpoint-tests.json b/services/neptune/src/main/resources/codegen-resources/endpoint-tests.json index 56a8a41a8bc5..6e70aeeabc70 100644 --- a/services/neptune/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/neptune/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1028 +1,31 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-northeast-3.amazonaws.com" + "url": "https://rds.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-northeast-2.amazonaws.com" + "url": "https://rds.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", "UseDualStack": false } }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, { "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { @@ -1031,733 +34,573 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.me-south-1.amazonaws.com" - } - }, - "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.sa-east-1.amazonaws.com" + "url": "https://rds.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-east-1", "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-east-1.amazonaws.com" + "url": "https://rds.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-east-1", "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" + "url": "https://rds.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", + "Region": "ap-south-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://rds.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-north-1.amazonaws.com.cn" + "url": "https://rds.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "cn-north-1", "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-gov-west-1.amazonaws.com" + "url": "https://rds.ap-southeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", + "Region": "ap-southeast-3", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-gov-west-1.api.aws" + "url": "https://rds.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-gov-west-1.amazonaws.com" + "url": "https://rds-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", + "Region": "ca-central-1", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-1.api.aws" + "url": "https://rds.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-1.amazonaws.com" + "url": "https://rds.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", + "Region": "eu-north-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-1.api.aws" + "url": "https://rds.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-1.amazonaws.com" + "url": "https://rds.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "Region": "ap-southeast-1", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-2.api.aws" + "url": "https://rds.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-2.amazonaws.com" + "url": "https://rds.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", + "Region": "eu-west-3", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-2.api.aws" + "url": "https://rds.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-2.amazonaws.com" + "url": "https://rds.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseFIPS": false, - "Region": "ap-southeast-2", "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://rds.us-east-1.amazonaws.com" + } }, "params": { - "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://rds-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-iso-east-1", "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://rds.us-east-2.amazonaws.com" + } }, "params": { + "Region": "us-east-2", "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-iso-east-1.c2s.ic.gov" + "url": "https://rds-fips.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", + "Region": "us-east-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-3.api.aws" + "url": "https://rds.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": true + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-3.amazonaws.com" + "url": "https://rds-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": true, - "Region": "ap-southeast-3", "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-3.api.aws" + "url": "https://rds.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-3.amazonaws.com" + "url": "https://rds-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-3", + "Region": "us-west-2", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-4.api.aws" + "url": "https://rds-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-4", "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-4.amazonaws.com" + "url": "https://rds.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-4", - "UseDualStack": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-4.api.aws" + "url": "https://rds.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-4", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-4.amazonaws.com" + "url": "https://rds.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "ap-southeast-4", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-1.api.aws" + "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-1.amazonaws.com" + "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds.us-east-1.api.aws" + "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-1.amazonaws.com" + "url": "https://rds.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-2.amazonaws.com" + "url": "https://rds.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-2", "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-2.api.aws" + "url": "https://rds.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-2.amazonaws.com" + "url": "https://rds.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-2", + "Region": "us-gov-west-1", + "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://rds-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "cn-northwest-1", "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://rds.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://rds.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-northwest-1.amazonaws.com.cn" + "url": "https://rds.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseFIPS": false, - "Region": "cn-northwest-1", "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-isob-east-1", - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": true, "Region": "us-isob-east-1", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://rds-fips.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseFIPS": false, "Region": "us-isob-east-1", - "UseDualStack": true + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1765,7 +608,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1776,8 +618,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1788,8 +630,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, "Endpoint": "https://example.com" } diff --git a/services/neptune/src/main/resources/codegen-resources/service-2.json b/services/neptune/src/main/resources/codegen-resources/service-2.json index 16b70a8caf6e..b3d6d85ebb46 100644 --- a/services/neptune/src/main/resources/codegen-resources/service-2.json +++ b/services/neptune/src/main/resources/codegen-resources/service-2.json @@ -1443,6 +1443,40 @@ }, "documentation":"

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.

The EnableLogTypes and DisableLogTypes arrays determine which logs will be exported (or not exported) to CloudWatch Logs.

" }, + "ClusterPendingModifiedValues":{ + "type":"structure", + "members":{ + "PendingCloudwatchLogsExports":{ + "shape":"PendingCloudwatchLogsExports", + "documentation":"

This PendingCloudwatchLogsExports structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.

" + }, + "DBClusterIdentifier":{ + "shape":"String", + "documentation":"

The DBClusterIdentifier value for the DB cluster.

" + }, + "IAMDatabaseAuthenticationEnabled":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The database engine version.

" + }, + "BackupRetentionPeriod":{ + "shape":"IntegerOptional", + "documentation":"

The number of days for which automatic DB snapshots are retained.

" + }, + "AllocatedStorage":{ + "shape":"IntegerOptional", + "documentation":"

The allocated storage size in gibibytes (GiB) for database engines. For Neptune, AllocatedStorage always returns 1, because Neptune DB cluster storage size isn't fixed, but instead automatically adjusts as needed.

" + }, + "Iops":{ + "shape":"IntegerOptional", + "documentation":"

The Provisioned IOPS (I/O operations per second) value. This setting is only for non-Aurora Multi-AZ DB clusters.

" + } + }, + "documentation":"

This data type is used as a response element in the ModifyDBCluster operation and contains changes that will be applied during the next maintenance window.

" + }, "CopyDBClusterParameterGroupMessage":{ "type":"structure", "required":[ @@ -1810,7 +1844,8 @@ "required":[ "DBInstanceIdentifier", "DBInstanceClass", - "Engine" + "Engine", + "DBClusterIdentifier" ], "members":{ "DBName":{ @@ -2288,6 +2323,10 @@ "shape":"LogTypeList", "documentation":"

A list of log types that this DB cluster is configured to export to CloudWatch Logs.

" }, + "PendingModifiedValues":{ + "shape":"ClusterPendingModifiedValues", + "documentation":"

This data type is used as a response element in the ModifyDBCluster operation and contains changes that will be applied during the next maintenance window.

" + }, "DeletionProtection":{ "shape":"BooleanOptional", "documentation":"

Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.

" @@ -2300,7 +2339,11 @@ "shape":"TStamp", "documentation":"

Time at which the DB cluster will be automatically restarted.

" }, - "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfigurationInfo"} + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfigurationInfo"}, + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database.

" + } }, "documentation":"

Contains the details of an Amazon Neptune DB cluster.

This data type is used as a response element in the DescribeDBClusters action.

", "wrapper":true diff --git a/services/networkfirewall/pom.xml b/services/networkfirewall/pom.xml index 177385105a5f..d4ff01c98564 100644 --- a/services/networkfirewall/pom.xml +++ b/services/networkfirewall/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT networkfirewall AWS Java SDK :: Services :: Network Firewall diff --git a/services/networkfirewall/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/networkfirewall/src/main/resources/codegen-resources/endpoint-rule-set.json index 4de293844475..d7fab30461fe 100644 --- a/services/networkfirewall/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/networkfirewall/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://network-firewall-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://network-firewall-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://network-firewall-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://network-firewall.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://network-firewall-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://network-firewall.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://network-firewall.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://network-firewall.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/networkfirewall/src/main/resources/codegen-resources/endpoint-tests.json b/services/networkfirewall/src/main/resources/codegen-resources/endpoint-tests.json index c2a36ae26e4f..1864bf140282 100644 --- a/services/networkfirewall/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/networkfirewall/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,718 +1,42 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-northeast-3.api.aws" + "url": "https://network-firewall.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "af-south-1", "UseFIPS": false, - "Region": "ap-northeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-northeast-3.amazonaws.com" + "url": "https://network-firewall.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://network-firewall-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-northeast-2.api.aws" + "url": "https://network-firewall.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { @@ -723,529 +47,499 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-northeast-1.api.aws" + "url": "https://network-firewall.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-northeast-1.amazonaws.com" + "url": "https://network-firewall.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-northeast-1.api.aws" + "url": "https://network-firewall.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-northeast-1.amazonaws.com" + "url": "https://network-firewall.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.me-south-1.api.aws" + "url": "https://network-firewall.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.me-south-1.amazonaws.com" + "url": "https://network-firewall-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": true, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.me-south-1.api.aws" + "url": "https://network-firewall.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.me-south-1.amazonaws.com" + "url": "https://network-firewall.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-north-1", "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.sa-east-1.api.aws" + "url": "https://network-firewall.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.sa-east-1.amazonaws.com" + "url": "https://network-firewall.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.sa-east-1.api.aws" + "url": "https://network-firewall.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.sa-east-1.amazonaws.com" + "url": "https://network-firewall.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-3", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-east-1.api.aws" + "url": "https://network-firewall.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-east-1.amazonaws.com" + "url": "https://network-firewall.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-east-1.api.aws" + "url": "https://network-firewall.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-east-1.amazonaws.com" + "url": "https://network-firewall-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.us-gov-west-1.api.aws" + "url": "https://network-firewall.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.us-gov-west-1.amazonaws.com" + "url": "https://network-firewall-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-2", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.us-gov-west-1.api.aws" + "url": "https://network-firewall.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-west-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.us-gov-west-1.amazonaws.com" + "url": "https://network-firewall-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-southeast-1.api.aws" + "url": "https://network-firewall.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-southeast-1.amazonaws.com" + "url": "https://network-firewall-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-southeast-1.api.aws" + "url": "https://network-firewall-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-southeast-1.amazonaws.com" + "url": "https://network-firewall.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-southeast-2.api.aws" + "url": "https://network-firewall-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-southeast-2.amazonaws.com" + "url": "https://network-firewall-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-southeast-2.api.aws" + "url": "https://network-firewall.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-southeast-2.amazonaws.com" + "url": "https://network-firewall.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-southeast-3.api.aws" + "url": "https://network-firewall.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.ap-southeast-3.amazonaws.com" + "url": "https://network-firewall-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.ap-southeast-3.amazonaws.com" + "url": "https://network-firewall.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.us-east-1.api.aws" + "url": "https://network-firewall-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.us-east-1.amazonaws.com" + "url": "https://network-firewall-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://network-firewall.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://network-firewall.us-east-1.amazonaws.com" + "url": "https://network-firewall.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://network-firewall-fips.us-east-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall-fips.us-east-2.amazonaws.com" + "url": "https://network-firewall-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://network-firewall.us-east-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://network-firewall.us-east-2.amazonaws.com" + "url": "https://network-firewall.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { @@ -1254,9 +548,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { @@ -1267,9 +561,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { @@ -1278,9 +572,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { @@ -1291,22 +585,35 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1316,9 +623,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1328,11 +635,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/networkfirewall/src/main/resources/codegen-resources/paginators-1.json b/services/networkfirewall/src/main/resources/codegen-resources/paginators-1.json index 9c4b18bbd77b..e4d9aeeec76a 100644 --- a/services/networkfirewall/src/main/resources/codegen-resources/paginators-1.json +++ b/services/networkfirewall/src/main/resources/codegen-resources/paginators-1.json @@ -18,6 +18,12 @@ "limit_key": "MaxResults", "result_key": "RuleGroups" }, + "ListTLSInspectionConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "TLSInspectionConfigurations" + }, "ListTagsForResource": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/networkfirewall/src/main/resources/codegen-resources/service-2.json b/services/networkfirewall/src/main/resources/codegen-resources/service-2.json index 3b5e4c8ed347..d30912c81b84 100644 --- a/services/networkfirewall/src/main/resources/codegen-resources/service-2.json +++ b/services/networkfirewall/src/main/resources/codegen-resources/service-2.json @@ -103,6 +103,21 @@ ], "documentation":"

Creates the specified stateless or stateful rule group, which includes the rules for network traffic inspection, a capacity setting, and tags.

You provide your rule group specification in your request using either RuleGroup or Rules.

" }, + "CreateTLSInspectionConfiguration":{ + "name":"CreateTLSInspectionConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTLSInspectionConfigurationRequest"}, + "output":{"shape":"CreateTLSInspectionConfigurationResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerError"} + ], + "documentation":"

Creates an Network Firewall TLS inspection configuration. A TLS inspection configuration contains the Certificate Manager certificate references that Network Firewall uses to decrypt and re-encrypt inbound traffic.

After you create a TLS inspection configuration, you associate it with a firewall policy.

To update the settings for a TLS inspection configuration, use UpdateTLSInspectionConfiguration.

To manage a TLS inspection configuration's tags, use the standard Amazon Web Services resource tagging operations, ListTagsForResource, TagResource, and UntagResource.

To retrieve information about TLS inspection configurations, use ListTLSInspectionConfigurations and DescribeTLSInspectionConfiguration.

For more information about TLS inspection configurations, see Decrypting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

" + }, "DeleteFirewall":{ "name":"DeleteFirewall", "http":{ @@ -174,6 +189,23 @@ ], "documentation":"

Deletes the specified RuleGroup.

" }, + "DeleteTLSInspectionConfiguration":{ + "name":"DeleteTLSInspectionConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTLSInspectionConfigurationRequest"}, + "output":{"shape":"DeleteTLSInspectionConfigurationResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServerError"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidOperationException"} + ], + "documentation":"

Deletes the specified TLSInspectionConfiguration.

" + }, "DescribeFirewall":{ "name":"DescribeFirewall", "http":{ @@ -270,6 +302,22 @@ ], "documentation":"

High-level information about a rule group, returned by operations like create and describe. You can use the information provided in the metadata to retrieve and manage a rule group. You can retrieve all objects for a rule group by calling DescribeRuleGroup.

" }, + "DescribeTLSInspectionConfiguration":{ + "name":"DescribeTLSInspectionConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTLSInspectionConfigurationRequest"}, + "output":{"shape":"DescribeTLSInspectionConfigurationResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServerError"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns the data objects for the specified TLS inspection configuration.

" + }, "DisassociateSubnets":{ "name":"DisassociateSubnets", "http":{ @@ -333,6 +381,21 @@ ], "documentation":"

Retrieves the metadata for the rule groups that you have defined. Depending on your setting for max results and the number of rule groups, a single call might not return the full list.

" }, + "ListTLSInspectionConfigurations":{ + "name":"ListTLSInspectionConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTLSInspectionConfigurationsRequest"}, + "output":{"shape":"ListTLSInspectionConfigurationsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the metadata for the TLS inspection configurations that you have defined. Depending on your setting for max results and the number of TLS inspection configurations, a single call might not return the full list.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -538,6 +601,23 @@ {"shape":"ResourceOwnerCheckException"} ], "documentation":"

" + }, + "UpdateTLSInspectionConfiguration":{ + "name":"UpdateTLSInspectionConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTLSInspectionConfigurationRequest"}, + "output":{"shape":"UpdateTLSInspectionConfigurationResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidTokenException"} + ], + "documentation":"

Updates the TLS inspection configuration settings for the specified TLS inspection configuration. You use a TLS inspection configuration by reference in one or more firewall policies. When you modify a TLS inspection configuration, you modify all firewall policies that use the TLS inspection configuration.

To update a TLS inspection configuration, first call DescribeTLSInspectionConfiguration to retrieve the current TLSInspectionConfiguration object, update the object as needed, and then provide the updated object to this call.

" } }, "shapes":{ @@ -740,6 +820,10 @@ }, "documentation":"

The capacity usage summary of the resources used by the ReferenceSets in a firewall.

" }, + "Certificates":{ + "type":"list", + "member":{"shape":"TlsCertificateData"} + }, "CollectionMember_String":{"type":"string"}, "ConfigurationSyncState":{ "type":"string", @@ -930,6 +1014,49 @@ } } }, + "CreateTLSInspectionConfigurationRequest":{ + "type":"structure", + "required":[ + "TLSInspectionConfigurationName", + "TLSInspectionConfiguration" + ], + "members":{ + "TLSInspectionConfigurationName":{ + "shape":"ResourceName", + "documentation":"

The descriptive name of the TLS inspection configuration. You can't change the name of a TLS inspection configuration after you create it.

" + }, + "TLSInspectionConfiguration":{ + "shape":"TLSInspectionConfiguration", + "documentation":"

The object that defines a TLS inspection configuration. This, along with TLSInspectionConfigurationResponse, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

Network Firewall uses a TLS inspection configuration to decrypt traffic. Network Firewall re-encrypts the traffic before sending it to its destination.

To use a TLS inspection configuration, you add it to a Network Firewall firewall policy, then you apply the firewall policy to a firewall. Network Firewall acts as a proxy service to decrypt and inspect inbound traffic. You can reference a TLS inspection configuration from more than one firewall policy, and you can use a firewall policy in more than one firewall. For more information about using TLS inspection configurations, see Decrypting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A description of the TLS inspection configuration.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The key:value pairs to associate with the resource.

" + }, + "EncryptionConfiguration":{"shape":"EncryptionConfiguration"} + } + }, + "CreateTLSInspectionConfigurationResponse":{ + "type":"structure", + "required":[ + "UpdateToken", + "TLSInspectionConfigurationResponse" + ], + "members":{ + "UpdateToken":{ + "shape":"UpdateToken", + "documentation":"

A token used for optimistic locking. Network Firewall returns a token to your requests that access the TLS inspection configuration. The token marks the state of the TLS inspection configuration resource at the time of the request.

To make changes to the TLS inspection configuration, you provide the token in your request. Network Firewall uses the token to ensure that the TLS inspection configuration hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the TLS inspection configuration again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

" + }, + "TLSInspectionConfigurationResponse":{ + "shape":"TLSInspectionConfigurationResponse", + "documentation":"

The high-level properties of a TLS inspection configuration. This, along with the TLSInspectionConfiguration, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

" + } + } + }, "CustomAction":{ "type":"structure", "required":[ @@ -1037,6 +1164,29 @@ } } }, + "DeleteTLSInspectionConfigurationRequest":{ + "type":"structure", + "members":{ + "TLSInspectionConfigurationArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the TLS inspection configuration.

You must specify the ARN or the name, and you can specify both.

" + }, + "TLSInspectionConfigurationName":{ + "shape":"ResourceName", + "documentation":"

The descriptive name of the TLS inspection configuration. You can't change the name of a TLS inspection configuration after you create it.

You must specify the ARN or the name, and you can specify both.

" + } + } + }, + "DeleteTLSInspectionConfigurationResponse":{ + "type":"structure", + "required":["TLSInspectionConfigurationResponse"], + "members":{ + "TLSInspectionConfigurationResponse":{ + "shape":"TLSInspectionConfigurationResponse", + "documentation":"

The high-level properties of a TLS inspection configuration. This, along with the TLSInspectionConfiguration, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

" + } + } + }, "DescribeFirewallPolicyRequest":{ "type":"structure", "members":{ @@ -1232,6 +1382,40 @@ } } }, + "DescribeTLSInspectionConfigurationRequest":{ + "type":"structure", + "members":{ + "TLSInspectionConfigurationArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the TLS inspection configuration.

You must specify the ARN or the name, and you can specify both.

" + }, + "TLSInspectionConfigurationName":{ + "shape":"ResourceName", + "documentation":"

The descriptive name of the TLS inspection configuration. You can't change the name of a TLS inspection configuration after you create it.

You must specify the ARN or the name, and you can specify both.

" + } + } + }, + "DescribeTLSInspectionConfigurationResponse":{ + "type":"structure", + "required":[ + "UpdateToken", + "TLSInspectionConfigurationResponse" + ], + "members":{ + "UpdateToken":{ + "shape":"UpdateToken", + "documentation":"

A token used for optimistic locking. Network Firewall returns a token to your requests that access the TLS inspection configuration. The token marks the state of the TLS inspection configuration resource at the time of the request.

To make changes to the TLS inspection configuration, you provide the token in your request. Network Firewall uses the token to ensure that the TLS inspection configuration hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the TLS inspection configuration again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

" + }, + "TLSInspectionConfiguration":{ + "shape":"TLSInspectionConfiguration", + "documentation":"

The object that defines a TLS inspection configuration. This, along with TLSInspectionConfigurationResponse, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

Network Firewall uses a TLS inspection configuration to decrypt traffic. Network Firewall re-encrypts the traffic before sending it to its destination.

To use a TLS inspection configuration, you add it to a Network Firewall firewall policy, then you apply the firewall policy to a firewall. Network Firewall acts as a proxy service to decrypt and inspect inbound traffic. You can reference a TLS inspection configuration from more than one firewall policy, and you can use a firewall policy in more than one firewall. For more information about using TLS inspection configurations, see Decrypting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

" + }, + "TLSInspectionConfigurationResponse":{ + "shape":"TLSInspectionConfigurationResponse", + "documentation":"

The high-level properties of a TLS inspection configuration. This, along with the TLSInspectionConfiguration, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

" + } + } + }, "Description":{ "type":"string", "max":512, @@ -1445,6 +1629,10 @@ "StatefulEngineOptions":{ "shape":"StatefulEngineOptions", "documentation":"

Additional options governing how Network Firewall handles stateful rules. The stateful rule groups that you use in your policy must have stateful rule options settings that are compatible with these settings.

" + }, + "TLSInspectionConfigurationArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the TLS inspection configuration.

" } }, "documentation":"

The firewall policy defines the behavior of a firewall using a collection of stateless and stateful rule groups and other settings. You can use one firewall policy for multiple firewalls.

This, along with FirewallPolicyResponse, define the policy. You can retrieve all objects for a firewall policy by calling DescribeFirewallPolicy.

" @@ -1621,7 +1809,8 @@ "type":"string", "enum":[ "DUALSTACK", - "IPV4" + "IPV4", + "IPV6" ] }, "IPSet":{ @@ -1659,7 +1848,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

" } }, - "documentation":"

Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references a resource that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the IP set you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

Network Firewall currently supports only Amazon VPC prefix lists as IP set references.

" + "documentation":"

Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

" }, "IPSetReferenceMap":{ "type":"map", @@ -1842,6 +2031,32 @@ } } }, + "ListTLSInspectionConfigurationsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + }, + "MaxResults":{ + "shape":"PaginationMaxResults", + "documentation":"

The maximum number of objects that you want Network Firewall to return for this request. If more objects are available, in the response, Network Firewall provides a NextToken value that you can use in a subsequent call to get the next batch of objects.

" + } + } + }, + "ListTLSInspectionConfigurationsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + }, + "TLSInspectionConfigurations":{ + "shape":"TLSInspectionConfigurations", + "documentation":"

The TLS inspection configuration metadata objects that you've defined. Depending on your setting for max results and the number of TLS inspection configurations, this might not be the full list.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -2373,7 +2588,7 @@ }, "StatefulRules":{ "shape":"StatefulRules", - "documentation":"

An array of individual stateful rules inspection criteria to be used together in a stateful rule group. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" + "documentation":"

An array of individual stateful rules inspection criteria to be used together in a stateful rule group. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" }, "StatelessRulesAndCustomActions":{ "shape":"StatelessRulesAndCustomActions", @@ -2410,6 +2625,68 @@ "max":2000000, "min":0 }, + "ServerCertificate":{ + "type":"structure", + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Certificate Manager SSL/TLS server certificate.

" + } + }, + "documentation":"

Any Certificate Manager Secure Sockets Layer/Transport Layer Security (SSL/TLS) server certificate that's associated with a ServerCertificateConfiguration used in a TLSInspectionConfiguration. You must request or import a SSL/TLS certificate into ACM for each domain Network Firewall needs to decrypt and inspect. Network Firewall uses the SSL/TLS certificates to decrypt specified inbound SSL/TLS traffic going to your firewall. For information about working with certificates in Certificate Manager, see Request a public certificate or Importing certificates in the Certificate Manager User Guide.

" + }, + "ServerCertificateConfiguration":{ + "type":"structure", + "members":{ + "ServerCertificates":{ + "shape":"ServerCertificates", + "documentation":"

The list of a server certificate configuration's Certificate Manager SSL/TLS certificates.

" + }, + "Scopes":{ + "shape":"ServerCertificateScopes", + "documentation":"

A list of a server certificate configuration's scopes.

" + } + }, + "documentation":"

Configures the associated Certificate Manager Secure Sockets Layer/Transport Layer Security (SSL/TLS) server certificates and scope settings Network Firewall uses to decrypt traffic in a TLSInspectionConfiguration. For information about working with SSL/TLS certificates for TLS inspection, see Requirements for using SSL/TLS server certficiates with TLS inspection configurations in the Network Firewall Developer Guide.

If a server certificate that's associated with your TLSInspectionConfiguration is revoked, deleted, or expired it can result in client-side TLS errors.

" + }, + "ServerCertificateConfigurations":{ + "type":"list", + "member":{"shape":"ServerCertificateConfiguration"} + }, + "ServerCertificateScope":{ + "type":"structure", + "members":{ + "Sources":{ + "shape":"Addresses", + "documentation":"

The source IP addresses and address ranges to decrypt for inspection, in CIDR notation. If not specified, this matches with any source address.

" + }, + "Destinations":{ + "shape":"Addresses", + "documentation":"

The destination IP addresses and address ranges to decrypt for inspection, in CIDR notation. If not specified, this matches with any destination address.

" + }, + "SourcePorts":{ + "shape":"PortRanges", + "documentation":"

The source ports to decrypt for inspection, in Transmission Control Protocol (TCP) format. If not specified, this matches with any source port.

You can specify individual ports, for example 1994, and you can specify port ranges, such as 1990:1994.

" + }, + "DestinationPorts":{ + "shape":"PortRanges", + "documentation":"

The destination ports to decrypt for inspection, in Transmission Control Protocol (TCP) format. If not specified, this matches with any destination port.

You can specify individual ports, for example 1994, and you can specify port ranges, such as 1990:1994.

" + }, + "Protocols":{ + "shape":"ProtocolNumbers", + "documentation":"

The protocols to decrypt for inspection, specified using each protocol's assigned internet protocol number (IANA). Network Firewall currently supports only TCP.

" + } + }, + "documentation":"

Settings that define the Secure Sockets Layer/Transport Layer Security (SSL/TLS) traffic that Network Firewall should decrypt for inspection by the stateful rule engine.

" + }, + "ServerCertificateScopes":{ + "type":"list", + "member":{"shape":"ServerCertificateScope"} + }, + "ServerCertificates":{ + "type":"list", + "member":{"shape":"ServerCertificate"} + }, "Setting":{ "type":"string", "max":8192, @@ -2488,7 +2765,7 @@ "documentation":"

Additional options for the rule. These are the Suricata RuleOptions settings.

" } }, - "documentation":"

A single Suricata rules specification, for use in a stateful rule group. Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" + "documentation":"

A single Suricata rules specification, for use in a stateful rule group. Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" }, "StatefulRuleDirection":{ "type":"string", @@ -2633,6 +2910,12 @@ "documentation":"

Stateless inspection criteria. Each stateless rule group uses exactly one of these data types to define its stateless rules.

" }, "StatusMessage":{"type":"string"}, + "StatusReason":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[a-zA-Z0-9- ]+$" + }, "StreamExceptionPolicy":{ "type":"string", "enum":[ @@ -2715,6 +2998,85 @@ "type":"list", "member":{"shape":"TCPFlagField"} }, + "TLSInspectionConfiguration":{ + "type":"structure", + "members":{ + "ServerCertificateConfigurations":{ + "shape":"ServerCertificateConfigurations", + "documentation":"

Lists the server certificate configurations that are associated with the TLS configuration.

" + } + }, + "documentation":"

The object that defines a TLS inspection configuration. This, along with TLSInspectionConfigurationResponse, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

Network Firewall uses a TLS inspection configuration to decrypt traffic. Network Firewall re-encrypts the traffic before sending it to its destination.

To use a TLS inspection configuration, you add it to a Network Firewall firewall policy, then you apply the firewall policy to a firewall. Network Firewall acts as a proxy service to decrypt and inspect inbound traffic. You can reference a TLS inspection configuration from more than one firewall policy, and you can use a firewall policy in more than one firewall. For more information about using TLS inspection configurations, see Decrypting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

" + }, + "TLSInspectionConfigurationMetadata":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"ResourceName", + "documentation":"

The descriptive name of the TLS inspection configuration. You can't change the name of a TLS inspection configuration after you create it.

" + }, + "Arn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the TLS inspection configuration.

" + } + }, + "documentation":"

High-level information about a TLS inspection configuration, returned by ListTLSInspectionConfigurations. You can use the information provided in the metadata to retrieve and manage a TLS configuration.

" + }, + "TLSInspectionConfigurationResponse":{ + "type":"structure", + "required":[ + "TLSInspectionConfigurationArn", + "TLSInspectionConfigurationName", + "TLSInspectionConfigurationId" + ], + "members":{ + "TLSInspectionConfigurationArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the TLS inspection configuration.

" + }, + "TLSInspectionConfigurationName":{ + "shape":"ResourceName", + "documentation":"

The descriptive name of the TLS inspection configuration. You can't change the name of a TLS inspection configuration after you create it.

" + }, + "TLSInspectionConfigurationId":{ + "shape":"ResourceId", + "documentation":"

A unique identifier for the TLS inspection configuration. This ID is returned in the responses to create and list commands. You provide it to operations such as update and delete.

" + }, + "TLSInspectionConfigurationStatus":{ + "shape":"ResourceStatus", + "documentation":"

Detailed information about the current status of a TLSInspectionConfiguration. You can retrieve this for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration and providing the TLS inspection configuration name and ARN.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A description of the TLS inspection configuration.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The key:value pairs to associate with the resource.

" + }, + "LastModifiedTime":{ + "shape":"LastUpdateTime", + "documentation":"

The last time that the TLS inspection configuration was changed.

" + }, + "NumberOfAssociations":{ + "shape":"NumberOfAssociations", + "documentation":"

The number of firewall policies that use this TLS inspection configuration.

" + }, + "EncryptionConfiguration":{ + "shape":"EncryptionConfiguration", + "documentation":"

A complex type that contains the Amazon Web Services KMS encryption configuration settings for your TLS inspection configuration.

" + }, + "Certificates":{ + "shape":"Certificates", + "documentation":"

A list of the certificates associated with the TLS inspection configuration.

" + } + }, + "documentation":"

The high-level properties of a TLS inspection configuration. This, along with the TLSInspectionConfiguration, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

" + }, + "TLSInspectionConfigurations":{ + "type":"list", + "member":{"shape":"TLSInspectionConfigurationMetadata"} + }, "Tag":{ "type":"structure", "required":[ @@ -2803,6 +3165,28 @@ "documentation":"

Unable to process the request due to throttling limitations.

", "exception":true }, + "TlsCertificateData":{ + "type":"structure", + "members":{ + "CertificateArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the certificate.

" + }, + "CertificateSerial":{ + "shape":"CollectionMember_String", + "documentation":"

The serial number of the certificate.

" + }, + "Status":{ + "shape":"CollectionMember_String", + "documentation":"

The status of the certificate.

" + }, + "StatusMessage":{ + "shape":"StatusReason", + "documentation":"

Contains details about the certificate status, including information about certificate errors.

" + } + }, + "documentation":"

Contains metadata about an Certificate Manager certificate.

" + }, "UnsupportedOperationException":{ "type":"structure", "members":{ @@ -3188,6 +3572,56 @@ } } }, + "UpdateTLSInspectionConfigurationRequest":{ + "type":"structure", + "required":[ + "TLSInspectionConfiguration", + "UpdateToken" + ], + "members":{ + "TLSInspectionConfigurationArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the TLS inspection configuration.

" + }, + "TLSInspectionConfigurationName":{ + "shape":"ResourceName", + "documentation":"

The descriptive name of the TLS inspection configuration. You can't change the name of a TLS inspection configuration after you create it.

" + }, + "TLSInspectionConfiguration":{ + "shape":"TLSInspectionConfiguration", + "documentation":"

The object that defines a TLS inspection configuration. This, along with TLSInspectionConfigurationResponse, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

Network Firewall uses a TLS inspection configuration to decrypt traffic. Network Firewall re-encrypts the traffic before sending it to its destination.

To use a TLS inspection configuration, you add it to a Network Firewall firewall policy, then you apply the firewall policy to a firewall. Network Firewall acts as a proxy service to decrypt and inspect inbound traffic. You can reference a TLS inspection configuration from more than one firewall policy, and you can use a firewall policy in more than one firewall. For more information about using TLS inspection configurations, see Decrypting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A description of the TLS inspection configuration.

" + }, + "EncryptionConfiguration":{ + "shape":"EncryptionConfiguration", + "documentation":"

A complex type that contains the Amazon Web Services KMS encryption configuration settings for your TLS inspection configuration.

" + }, + "UpdateToken":{ + "shape":"UpdateToken", + "documentation":"

A token used for optimistic locking. Network Firewall returns a token to your requests that access the TLS inspection configuration. The token marks the state of the TLS inspection configuration resource at the time of the request.

To make changes to the TLS inspection configuration, you provide the token in your request. Network Firewall uses the token to ensure that the TLS inspection configuration hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the TLS inspection configuration again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

" + } + } + }, + "UpdateTLSInspectionConfigurationResponse":{ + "type":"structure", + "required":[ + "UpdateToken", + "TLSInspectionConfigurationResponse" + ], + "members":{ + "UpdateToken":{ + "shape":"UpdateToken", + "documentation":"

A token used for optimistic locking. Network Firewall returns a token to your requests that access the TLS inspection configuration. The token marks the state of the TLS inspection configuration resource at the time of the request.

To make changes to the TLS inspection configuration, you provide the token in your request. Network Firewall uses the token to ensure that the TLS inspection configuration hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the TLS inspection configuration again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

" + }, + "TLSInspectionConfigurationResponse":{ + "shape":"TLSInspectionConfigurationResponse", + "documentation":"

The high-level properties of a TLS inspection configuration. This, along with the TLSInspectionConfiguration, define the TLS inspection configuration. You can retrieve all objects for a TLS inspection configuration by calling DescribeTLSInspectionConfiguration.

" + } + } + }, "UpdateToken":{ "type":"string", "max":1024, @@ -3214,5 +3648,5 @@ "member":{"shape":"VpcId"} } }, - "documentation":"

This is the API Reference for Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors.

  • The REST API requires you to handle connection details, such as calculating signatures, handling request retries, and error handling. For general information about using the Amazon Web Services REST APIs, see Amazon Web Services APIs.

    To access Network Firewall using the REST API endpoint: https://network-firewall.<region>.amazonaws.com

  • Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

  • For descriptions of Network Firewall features, including and step-by-step instructions on how to use them through the Network Firewall console, see the Network Firewall Developer Guide.

Network Firewall is a stateful, managed, network firewall and intrusion detection and prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the perimeter of your VPC. This includes filtering traffic going to and coming from an internet gateway, NAT gateway, or over VPN or Direct Connect. Network Firewall uses rules that are compatible with Suricata, a free, open source network analysis and threat detection engine. Network Firewall supports Suricata version 5.0.2. For information about Suricata, see the Suricata website.

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:

  • Allow domains or IP addresses for known Amazon Web Services service endpoints, such as Amazon S3, and block all other forms of traffic.

  • Use custom lists of known bad domains to limit the types of domain names that your applications can access.

  • Perform deep packet inspection on traffic entering or leaving your VPC.

  • Use stateful protocol detection to filter protocols like HTTPS, regardless of the port used.

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

To start using Network Firewall, do the following:

  1. (Optional) If you don't already have a VPC that you want to protect, create it in Amazon VPC.

  2. In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a subnet for the sole use of Network Firewall.

  3. In Network Firewall, create stateless and stateful rule groups, to define the components of the network traffic filtering behavior that you want your firewall to have.

  4. In Network Firewall, create a firewall policy that uses your rule groups and specifies additional default traffic filtering behavior.

  5. In Network Firewall, create a firewall and specify your new firewall policy and VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you specify, with the behavior that's defined in the firewall policy.

  6. In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall endpoints.

" + "documentation":"

This is the API Reference for Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors.

  • The REST API requires you to handle connection details, such as calculating signatures, handling request retries, and error handling. For general information about using the Amazon Web Services REST APIs, see Amazon Web Services APIs.

    To access Network Firewall using the REST API endpoint: https://network-firewall.<region>.amazonaws.com

  • Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

  • For descriptions of Network Firewall features, including and step-by-step instructions on how to use them through the Network Firewall console, see the Network Firewall Developer Guide.

Network Firewall is a stateful, managed, network firewall and intrusion detection and prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the perimeter of your VPC. This includes filtering traffic going to and coming from an internet gateway, NAT gateway, or over VPN or Direct Connect. Network Firewall uses rules that are compatible with Suricata, a free, open source network analysis and threat detection engine. Network Firewall supports Suricata version 6.0.9. For information about Suricata, see the Suricata website.

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:

  • Allow domains or IP addresses for known Amazon Web Services service endpoints, such as Amazon S3, and block all other forms of traffic.

  • Use custom lists of known bad domains to limit the types of domain names that your applications can access.

  • Perform deep packet inspection on traffic entering or leaving your VPC.

  • Use stateful protocol detection to filter protocols like HTTPS, regardless of the port used.

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

To start using Network Firewall, do the following:

  1. (Optional) If you don't already have a VPC that you want to protect, create it in Amazon VPC.

  2. In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a subnet for the sole use of Network Firewall.

  3. In Network Firewall, create stateless and stateful rule groups, to define the components of the network traffic filtering behavior that you want your firewall to have.

  4. In Network Firewall, create a firewall policy that uses your rule groups and specifies additional default traffic filtering behavior.

  5. In Network Firewall, create a firewall and specify your new firewall policy and VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you specify, with the behavior that's defined in the firewall policy.

  6. In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall endpoints.

" } diff --git a/services/networkmanager/pom.xml b/services/networkmanager/pom.xml index 2400baf45b4f..8d4bd4fd743c 100644 --- a/services/networkmanager/pom.xml +++ b/services/networkmanager/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT networkmanager AWS Java SDK :: Services :: NetworkManager diff --git a/services/networkmanager/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/networkmanager/src/main/resources/codegen-resources/endpoint-rule-set.json index 2ae881f2c14b..6cbba0f7080f 100644 --- a/services/networkmanager/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/networkmanager/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,64 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "isSet", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" + "ref": "Region" + } ] } ], @@ -137,22 +111,13 @@ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -160,48 +125,213 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, { "conditions": [], "endpoint": { - "url": "https://networkmanager-fips.{Region}.api.aws", + "url": "https://networkmanager.us-west-2.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-west-2", - "signingName": "networkmanager" + "signingName": "networkmanager", + "signingRegion": "us-west-2" } ] }, @@ -211,117 +341,216 @@ } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] - } + }, + "aws-us-gov" ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://networkmanager-fips.{Region}.amazonaws.com", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ { - "name": "sigv4", - "signingRegion": "us-west-2", - "signingName": "networkmanager" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, { - "ref": "UseDualStack" + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://networkmanager.{Region}.api.aws", + "url": "https://networkmanager.us-gov-west-1.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-west-2", - "signingName": "networkmanager" + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" } ] }, @@ -332,392 +561,265 @@ ] }, { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://networkmanager.us-west-2.amazonaws.com", - "properties": { - "authSchemes": [ + "conditions": [ { - "name": "sigv4", - "signingRegion": "us-west-2", - "signingName": "networkmanager" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-us-gov" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" - }, - "supportsFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseFIPS" + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://networkmanager-fips.{Region}.api.aws", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "networkmanager" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] } ] - }, - "headers": {} - }, - "type": "endpoint" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" - }, - "supportsFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ], + ] + }, + { + "conditions": [], "type": "tree", "rules": [ { - "conditions": [], + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], "endpoint": { - "url": "https://networkmanager-fips.{Region}.amazonaws.com", + "url": "https://networkmanager.us-west-2.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "networkmanager" + "signingName": "networkmanager", + "signingRegion": "us-west-2" } ] }, "headers": {} }, "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "stringEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "Region" }, - "supportsDualStack" + "aws-us-gov-global" ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "endpoint": { - "url": "https://networkmanager.{Region}.api.aws", + "url": "https://networkmanager.us-gov-west-1.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "networkmanager" + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" } ] }, "headers": {} }, "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://networkmanager.us-gov-west-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "networkmanager" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://networkmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://networkmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://networkmanager.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -726,134 +828,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://networkmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-global" - ] - } - ], - "endpoint": { - "url": "https://networkmanager.us-west-2.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-west-2", - "signingName": "networkmanager" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-us-gov-global" - ] - } - ], - "endpoint": { - "url": "https://networkmanager.us-gov-west-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "networkmanager" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://networkmanager.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/networkmanager/src/main/resources/codegen-resources/endpoint-tests.json b/services/networkmanager/src/main/resources/codegen-resources/endpoint-tests.json index 69a0a0f7ff69..b182162fd65e 100644 --- a/services/networkmanager/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/networkmanager/src/main/resources/codegen-resources/endpoint-tests.json @@ -7,9 +7,9 @@ "properties": { "authSchemes": [ { - "signingRegion": "us-west-2", + "name": "sigv4", "signingName": "networkmanager", - "name": "sigv4" + "signingRegion": "us-west-2" } ] }, @@ -18,8 +18,121 @@ }, "params": { "UseFIPS": false, - "Region": "aws-global", - "UseDualStack": false + "UseDualStack": false, + "Region": "aws-global" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmanager.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-west-2" + } + ] + }, + "url": "https://networkmanager.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmanager.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" } }, { @@ -29,9 +142,70 @@ "properties": { "authSchemes": [ { - "signingRegion": "us-gov-west-1", + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://networkmanager.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "aws-us-gov-global" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://networkmanager.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", "signingName": "networkmanager", - "name": "sigv4" + "signingRegion": "us-gov-west-1" } ] }, @@ -40,12 +214,64 @@ }, "params": { "UseFIPS": false, - "Region": "aws-us-gov-global", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://networkmanager.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -53,7 +279,20 @@ }, "params": { "UseFIPS": false, + "UseDualStack": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -65,8 +304,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -77,8 +316,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/networkmanager/src/main/resources/codegen-resources/service-2.json b/services/networkmanager/src/main/resources/codegen-resources/service-2.json index b9cc0dd5625d..e4dfa8e8c1fc 100644 --- a/services/networkmanager/src/main/resources/codegen-resources/service-2.json +++ b/services/networkmanager/src/main/resources/codegen-resources/service-2.json @@ -1253,7 +1253,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Registers a transit gateway in your global network. The transit gateway can be in any Amazon Web Services Region, but it must be owned by the same Amazon Web Services account that owns the global network. You cannot register a transit gateway in more than one global network.

" + "documentation":"

Registers a transit gateway in your global network. Not all Regions support transit gateways for global networks. For a list of the supported Regions, see Region Availability in the Amazon Web Services Transit Gateways for Global Networks User Guide. The transit gateway can be in any of the supported Amazon Web Services Regions, but it must be owned by the same Amazon Web Services account that owns the global network. You cannot register a transit gateway in more than one global network.

" }, "RejectAttachment":{ "name":"RejectAttachment", @@ -3094,7 +3094,7 @@ }, "TransitGatewayRouteTableArn":{ "shape":"TransitGatewayRouteTableArn", - "documentation":"

The ARN of the transit gateway route table for the attachment request.

" + "documentation":"

The ARN of the transit gateway route table for the attachment request. For example, \"TransitGatewayRouteTableArn\": \"arn:aws:ec2:us-west-2:123456789012:transit-gateway-route-table/tgw-rtb-9876543210123456\".

" }, "Tags":{ "shape":"TagList", @@ -6602,7 +6602,7 @@ }, "TransitGatewayRouteTableArn":{ "shape":"TransitGatewayRouteTableArn", - "documentation":"

The ARN of the transit gateway attachment route table.

" + "documentation":"

The ARN of the transit gateway attachment route table. For example, \"TransitGatewayRouteTableArn\": \"arn:aws:ec2:us-west-2:123456789012:transit-gateway-route-table/tgw-rtb-9876543210123456\".

" } }, "documentation":"

Describes a transit gateway route table attachment.

" diff --git a/services/nimble/pom.xml b/services/nimble/pom.xml index f2c86e137233..5c82cb97bdea 100644 --- a/services/nimble/pom.xml +++ b/services/nimble/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT nimble AWS Java SDK :: Services :: Nimble diff --git a/services/oam/pom.xml b/services/oam/pom.xml index 48dcab63757b..742b78aa8647 100644 --- a/services/oam/pom.xml +++ b/services/oam/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT oam AWS Java SDK :: Services :: OAM diff --git a/services/omics/pom.xml b/services/omics/pom.xml index ff7118ed99d6..a15a61ffa870 100644 --- a/services/omics/pom.xml +++ b/services/omics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT omics AWS Java SDK :: Services :: Omics diff --git a/services/omics/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/omics/src/main/resources/codegen-resources/endpoint-rule-set.json index 8c1b3668fb9c..76599609af34 100644 --- a/services/omics/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/omics/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://omics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://omics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://omics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://omics-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://omics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://omics.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://omics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://omics.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/omics/src/main/resources/codegen-resources/endpoint-tests.json b/services/omics/src/main/resources/codegen-resources/endpoint-tests.json index 485293e39155..de9c6b650010 100644 --- a/services/omics/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/omics/src/main/resources/codegen-resources/endpoint-tests.json @@ -9,8 +9,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": true } }, { @@ -22,8 +22,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": true } }, { @@ -35,8 +35,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { @@ -48,8 +48,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { @@ -61,8 +61,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": true } }, { @@ -74,8 +74,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": true } }, { @@ -87,8 +87,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": false } }, { @@ -100,8 +100,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": false } }, { @@ -111,8 +111,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true } }, { @@ -124,8 +124,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true } }, { @@ -135,8 +135,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": false } }, { @@ -148,8 +148,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": false } }, { @@ -161,8 +161,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": true } }, { @@ -174,8 +174,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": true } }, { @@ -187,8 +187,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": false } }, { @@ -200,8 +200,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": false } }, { @@ -211,8 +211,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": true } }, { @@ -224,8 +224,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": true } }, { @@ -235,8 +235,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": false } }, { @@ -248,8 +248,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": false } }, { @@ -261,8 +261,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -273,8 +273,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -285,8 +285,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/omics/src/main/resources/codegen-resources/service-2.json b/services/omics/src/main/resources/codegen-resources/service-2.json index 1718af1efcbe..2ad26583d7b2 100644 --- a/services/omics/src/main/resources/codegen-resources/service-2.json +++ b/services/omics/src/main/resources/codegen-resources/service-2.json @@ -1143,7 +1143,7 @@ {"shape":"AccessDeniedException"}, {"shape":"RequestTimeoutException"} ], - "documentation":"

Starts a read set activation job.

", + "documentation":"

Activates an archived read set. To reduce storage charges, Amazon Omics archives unused read sets after 30 days.

", "endpoint":{"hostPrefix":"control-storage-"} }, "StartReadSetExportJob":{ @@ -1164,7 +1164,7 @@ {"shape":"AccessDeniedException"}, {"shape":"RequestTimeoutException"} ], - "documentation":"

Starts a read set export job.

", + "documentation":"

Exports a read set to Amazon S3.

", "endpoint":{"hostPrefix":"control-storage-"} }, "StartReadSetImportJob":{ @@ -1515,7 +1515,6 @@ "AnnotationImportItemSources":{ "type":"list", "member":{"shape":"AnnotationImportItemSource"}, - "max":1, "min":1 }, "AnnotationImportJobItem":{ @@ -1826,7 +1825,7 @@ }, "reference":{ "shape":"ReferenceItem", - "documentation":"

The store's genome reference.

" + "documentation":"

The store's genome reference. Required for all stores except TSV format with generic annotations.

" }, "status":{ "shape":"StoreStatus", @@ -1912,7 +1911,7 @@ }, "maxDuration":{ "shape":"CreateRunGroupRequestMaxDurationInteger", - "documentation":"

A max duration for the group.

" + "documentation":"

A maximum run time for the group in minutes.

" }, "maxRuns":{ "shape":"CreateRunGroupRequestMaxRunsInteger", @@ -1924,7 +1923,7 @@ }, "requestId":{ "shape":"RunGroupRequestId", - "documentation":"

A request ID for the group.

", + "documentation":"

To ensure that requests don't run multiple times, specify a unique ID for each request.

", "idempotencyToken":true }, "tags":{ @@ -2123,12 +2122,12 @@ }, "requestId":{ "shape":"WorkflowRequestId", - "documentation":"

A request ID for the workflow.

", + "documentation":"

To ensure that requests don't run multiple times, specify a unique ID for each request.

", "idempotencyToken":true }, "storageCapacity":{ "shape":"CreateWorkflowRequestStorageCapacityInteger", - "documentation":"

A storage capacity for the workflow.

" + "documentation":"

A storage capacity for the workflow in gigabytes.

" }, "tags":{ "shape":"TagMap", @@ -2728,7 +2727,7 @@ }, "sources":{ "shape":"ActivateReadSetSourceList", - "documentation":"

The job's sources.

" + "documentation":"

The job's source files.

" }, "status":{ "shape":"ReadSetActivationJobStatus", @@ -2859,7 +2858,7 @@ }, "sources":{ "shape":"ImportReadSetSourceList", - "documentation":"

The job's sources.

" + "documentation":"

The job's source files.

" }, "status":{ "shape":"ReadSetImportJobStatus", @@ -3061,7 +3060,7 @@ }, "sources":{ "shape":"ImportReferenceSourceList", - "documentation":"

The job's sources.

" + "documentation":"

The job's source files.

" }, "status":{ "shape":"ReferenceImportJobStatus", @@ -3282,7 +3281,7 @@ }, "maxDuration":{ "shape":"GetRunGroupResponseMaxDurationInteger", - "documentation":"

The group's maximum run duration.

" + "documentation":"

The group's maximum run time in minutes.

" }, "maxRuns":{ "shape":"GetRunGroupResponseMaxRunsInteger", @@ -3415,7 +3414,7 @@ }, "storageCapacity":{ "shape":"GetRunResponseStorageCapacityInteger", - "documentation":"

The run's storage capacity.

" + "documentation":"

The run's storage capacity in gigabytes.

" }, "tags":{ "shape":"TagMap", @@ -3481,7 +3480,7 @@ }, "memory":{ "shape":"GetRunTaskResponseMemoryInteger", - "documentation":"

The task's memory setting.

" + "documentation":"

The task's memory use in gigabytes.

" }, "name":{ "shape":"TaskName", @@ -3789,7 +3788,7 @@ }, "storageCapacity":{ "shape":"GetWorkflowResponseStorageCapacityInteger", - "documentation":"

The workflow's storage capacity.

" + "documentation":"

The workflow's storage capacity in gigabytes.

" }, "tags":{ "shape":"TagMap", @@ -4047,7 +4046,8 @@ "IN_PROGRESS", "CANCELLED", "COMPLETED", - "FAILED" + "FAILED", + "COMPLETED_WITH_FAILURES" ] }, "JobStatusMessage":{ @@ -5581,7 +5581,7 @@ }, "maxDuration":{ "shape":"RunGroupListItemMaxDurationInteger", - "documentation":"

The group's maximum duration setting.

" + "documentation":"

The group's maximum duration setting in minutes.

" }, "maxRuns":{ "shape":"RunGroupListItemMaxRunsInteger", @@ -5811,11 +5811,15 @@ }, "SchemaItem":{ "type":"map", - "key":{"shape":"String"}, + "key":{"shape":"SchemaItemKeyString"}, "value":{"shape":"SchemaValueType"}, "max":1, "min":1 }, + "SchemaItemKeyString":{ + "type":"string", + "pattern":"^[a-z0-9_]{1,255}$" + }, "SchemaValueType":{ "type":"string", "enum":[ @@ -6043,7 +6047,7 @@ }, "sources":{ "shape":"StartReadSetActivationJobRequestSourcesList", - "documentation":"

The job's sources.

" + "documentation":"

The job's source files.

" } } }, @@ -6120,7 +6124,7 @@ }, "sources":{ "shape":"StartReadSetExportJobRequestSourcesList", - "documentation":"

Sources for the job.

" + "documentation":"

The job's source files.

" } } }, @@ -6186,7 +6190,7 @@ }, "sources":{ "shape":"StartReadSetImportJobRequestSourcesList", - "documentation":"

Source files to import.

" + "documentation":"

The job's source files.

" } } }, @@ -6301,7 +6305,7 @@ }, "sources":{ "shape":"StartReferenceImportJobRequestSourcesList", - "documentation":"

Sources for the job.

" + "documentation":"

The job's source files.

" } } }, @@ -6398,7 +6402,7 @@ }, "requestId":{ "shape":"RunRequestId", - "documentation":"

A request ID for the run.

", + "documentation":"

To ensure that requests don't run multiple times, specify a unique ID for each request.

", "idempotencyToken":true }, "roleArn":{ @@ -6415,7 +6419,7 @@ }, "storageCapacity":{ "shape":"StartRunRequestStorageCapacityInteger", - "documentation":"

A storage capacity for the run.

" + "documentation":"

A storage capacity for the run in gigabytes.

" }, "tags":{ "shape":"TagMap", @@ -6637,7 +6641,7 @@ }, "memory":{ "shape":"TaskListItemMemoryInteger", - "documentation":"

The task's memory.

" + "documentation":"

The task's memory use in gigabyes.

" }, "name":{ "shape":"TaskName", @@ -6865,7 +6869,7 @@ }, "maxDuration":{ "shape":"UpdateRunGroupRequestMaxDurationInteger", - "documentation":"

The maximum amount of time to run.

" + "documentation":"

A maximum run time for the group in minutes.

" }, "maxRuns":{ "shape":"UpdateRunGroupRequestMaxRunsInteger", @@ -7004,6 +7008,10 @@ "source":{ "shape":"S3Uri", "documentation":"

The source file's location in Amazon S3.

" + }, + "statusMessage":{ + "shape":"JobStatusMsg", + "documentation":"

A message that provides additional context about a job

" } }, "documentation":"

Details about an imported variant item.

" @@ -7011,7 +7019,6 @@ "VariantImportItemDetails":{ "type":"list", "member":{"shape":"VariantImportItemDetail"}, - "max":1, "min":1 }, "VariantImportItemSource":{ @@ -7028,7 +7035,6 @@ "VariantImportItemSources":{ "type":"list", "member":{"shape":"VariantImportItemSource"}, - "max":1, "min":1 }, "VariantImportJobItem":{ diff --git a/services/opensearch/pom.xml b/services/opensearch/pom.xml index 99cfdc98a4dc..caaa49196a8b 100644 --- a/services/opensearch/pom.xml +++ b/services/opensearch/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT opensearch AWS Java SDK :: Services :: Open Search diff --git a/services/opensearch/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/opensearch/src/main/resources/codegen-resources/endpoint-rule-set.json index 52831b1f5cb4..07a7ff339617 100644 --- a/services/opensearch/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/opensearch/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://es-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://es-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://es.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://es.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://es.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/opensearch/src/main/resources/codegen-resources/endpoint-tests.json b/services/opensearch/src/main/resources/codegen-resources/endpoint-tests.json index 4e66741b6893..d291d4ca01e9 100644 --- a/services/opensearch/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/opensearch/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,55 @@ { "testCases": [ { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.us-iso-east-1.c2s.ic.gov" + "url": "https://es.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.us-iso-west-1.c2s.ic.gov" + "url": "https://es.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://es.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -47,87 +60,87 @@ } }, "params": { + "Region": "ap-northeast-3", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.us-east-1.amazonaws.com" + "url": "https://es.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.us-east-1.amazonaws.com" + "url": "https://es.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.eu-west-1.amazonaws.com" + "url": "https://es.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" + "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.eu-west-2.amazonaws.com" + "url": "https://es.ap-southeast-3.amazonaws.com" } }, "params": { + "Region": "ap-southeast-3", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" + "UseFIPS": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.eu-west-3.amazonaws.com" + "url": "https://es.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.me-south-1.amazonaws.com" + "url": "https://es.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" + "UseFIPS": false } }, { @@ -138,139 +151,139 @@ } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.us-east-2.amazonaws.com" + "url": "https://es.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.us-east-2.amazonaws.com" + "url": "https://es.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.sa-east-1.amazonaws.com" + "url": "https://es.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.ap-east-1.amazonaws.com" + "url": "https://es.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.eu-south-1.amazonaws.com" + "url": "https://es.me-south-1.amazonaws.com" } }, "params": { + "Region": "me-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.eu-central-1.amazonaws.com" + "url": "https://es.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.ap-southeast-1.amazonaws.com" + "url": "https://es.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.ap-southeast-2.amazonaws.com" + "url": "https://es-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.ap-southeast-3.amazonaws.com" + "url": "https://es.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.ca-central-1.amazonaws.com" + "url": "https://es-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" + "UseFIPS": true } }, { @@ -281,9 +294,9 @@ } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" + "UseFIPS": false } }, { @@ -294,9 +307,9 @@ } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" + "UseFIPS": true } }, { @@ -307,9 +320,9 @@ } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" + "UseFIPS": false } }, { @@ -320,260 +333,261 @@ } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" + "UseFIPS": true } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://es.af-south-1.amazonaws.com" + "url": "https://es-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://es.ap-south-1.amazonaws.com" + "url": "https://es.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.ap-northeast-1.amazonaws.com" + "url": "https://es.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.ap-northeast-2.amazonaws.com" + "url": "https://es.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://es-fips.us-east-1.api.aws" + "url": "https://es-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.us-east-1.api.aws" + "url": "https://es-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://es.us-gov-west-1.amazonaws.com" + "url": "https://es.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.us-gov-west-1.amazonaws.com" + "url": "https://es.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.us-gov-east-1.amazonaws.com" + "url": "https://es-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.us-gov-east-1.amazonaws.com" + "url": "https://es.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.us-gov-east-1.api.aws" + "url": "https://es-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://es.us-gov-east-1.api.aws" + "url": "https://es-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://es.us-isob-east-1.sc2s.sgov.gov" + "url": "https://es.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://es.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.cn-northwest-1.amazonaws.com.cn" + "url": "https://es.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-northwest-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es.cn-north-1.amazonaws.com.cn" + "url": "https://es-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "UseFIPS": true } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://es.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://es-fips.cn-north-1.amazonaws.com.cn" + "url": "https://es-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": true } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://es.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://example.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -582,7 +596,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -592,9 +605,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -604,9 +617,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/opensearch/src/main/resources/codegen-resources/paginators-1.json b/services/opensearch/src/main/resources/codegen-resources/paginators-1.json index ca82b13bee5a..cd834352dc88 100644 --- a/services/opensearch/src/main/resources/codegen-resources/paginators-1.json +++ b/services/opensearch/src/main/resources/codegen-resources/paginators-1.json @@ -55,6 +55,11 @@ "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListScheduledActions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListVersions": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/opensearch/src/main/resources/codegen-resources/service-2.json b/services/opensearch/src/main/resources/codegen-resources/service-2.json index c97068c1abd2..2dac8f087e1c 100644 --- a/services/opensearch/src/main/resources/codegen-resources/service-2.json +++ b/services/opensearch/src/main/resources/codegen-resources/service-2.json @@ -599,6 +599,23 @@ ], "documentation":"

Lists all packages associated with an Amazon OpenSearch Service domain. For more information, see Custom packages for Amazon OpenSearch Service.

" }, + "ListScheduledActions":{ + "name":"ListScheduledActions", + "http":{ + "method":"GET", + "requestUri":"/2021-01-01/opensearch/domain/{DomainName}/scheduledActions" + }, + "input":{"shape":"ListScheduledActionsRequest"}, + "output":{"shape":"ListScheduledActionsResponse"}, + "errors":[ + {"shape":"BaseException"}, + {"shape":"InternalException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves a list of configuration changes that are scheduled for a domain. These changes can be service software updates or blue/green Auto-Tune enhancements.

" + }, "ListTags":{ "name":"ListTags", "http":{ @@ -793,6 +810,25 @@ ], "documentation":"

Updates a package for use with Amazon OpenSearch Service domains. For more information, see Custom packages for Amazon OpenSearch Service.

" }, + "UpdateScheduledAction":{ + "name":"UpdateScheduledAction", + "http":{ + "method":"PUT", + "requestUri":"/2021-01-01/opensearch/domain/{DomainName}/scheduledAction/update" + }, + "input":{"shape":"UpdateScheduledActionRequest"}, + "output":{"shape":"UpdateScheduledActionResponse"}, + "errors":[ + {"shape":"BaseException"}, + {"shape":"InternalException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"SlotNotAvailableException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Reschedules a planned domain configuration change for a later time. This change can be a scheduled service software update or a blue/green Auto-Tune enhancement.

" + }, "UpdateVpcEndpoint":{ "name":"UpdateVpcEndpoint", "http":{ @@ -910,6 +946,33 @@ }, "documentation":"

The configured access rules for the domain's search endpoint, and the current status of those rules.

" }, + "ActionSeverity":{ + "type":"string", + "enum":[ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "ActionStatus":{ + "type":"string", + "enum":[ + "PENDING_UPDATE", + "IN_PROGRESS", + "FAILED", + "COMPLETED", + "NOT_ELIGIBLE", + "ELIGIBLE" + ] + }, + "ActionType":{ + "type":"string", + "enum":[ + "SERVICE_SOFTWARE_UPDATE", + "JVM_HEAP_SIZE_TUNING", + "JVM_YOUNG_GEN_TUNING" + ] + }, "AddTagsRequest":{ "type":"structure", "required":[ @@ -1175,7 +1238,7 @@ "documentation":"

A cron expression for a recurring maintenance schedule during which Auto-Tune can deploy changes.

" } }, - "documentation":"

The Auto-Tune maintenance schedule. For more information, see Auto-Tune for Amazon OpenSearch Service.

" + "documentation":"

This object is deprecated. Use the domain's off-peak window to schedule Auto-Tune optimizations. For migration instructions, see Migrating from Auto-Tune maintenance windows.

The Auto-Tune maintenance schedule. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "AutoTuneMaintenanceScheduleList":{ "type":"list", @@ -1195,7 +1258,11 @@ }, "MaintenanceSchedules":{ "shape":"AutoTuneMaintenanceScheduleList", - "documentation":"

A list of maintenance schedules during which Auto-Tune can deploy changes.

" + "documentation":"

DEPRECATED. Use off-peak window instead.

A list of maintenance schedules during which Auto-Tune can deploy changes.

" + }, + "UseOffPeakWindow":{ + "shape":"Boolean", + "documentation":"

Whether to use the domain's off-peak window to deploy configuration changes on the domain rather than a maintenance schedule.

" } }, "documentation":"

Auto-Tune settings when updating a domain. For more information, see Auto-Tune for Amazon OpenSearch Service.

" @@ -1209,10 +1276,14 @@ }, "MaintenanceSchedules":{ "shape":"AutoTuneMaintenanceScheduleList", - "documentation":"

A list of maintenance schedules during which Auto-Tune can deploy changes. Maintenance schedules are overwrite, not append. If your request includes no schedules, the request deletes all existing schedules. To preserve existing schedules, make a call to DescribeDomainConfig first and use the MaintenanceSchedules portion of the response as the basis for this section.

" + "documentation":"

A list of maintenance schedules during which Auto-Tune can deploy changes. Maintenance windows are deprecated and have been replaced with off-peak windows.

" + }, + "UseOffPeakWindow":{ + "shape":"Boolean", + "documentation":"

Whether to schedule Auto-Tune optimizations that require blue/green deployments during the domain's configured daily off-peak window.

" } }, - "documentation":"

Options for configuring Auto-Tune. For more information, see Auto-Tune for Amazon OpenSearch Service.

" + "documentation":"

Options for configuring Auto-Tune. For more information, see Auto-Tune for Amazon OpenSearch Service

" }, "AutoTuneOptionsOutput":{ "type":"structure", @@ -1224,6 +1295,10 @@ "ErrorMessage":{ "shape":"String", "documentation":"

Any errors that occurred while enabling or disabling Auto-Tune.

" + }, + "UseOffPeakWindow":{ + "shape":"Boolean", + "documentation":"

Whether the domain's off-peak window will be used to deploy Auto-Tune changes rather than a maintenance schedule.

" } }, "documentation":"

The Auto-Tune settings for a domain, displayed when enabling or disabling Auto-Tune.

" @@ -1244,7 +1319,7 @@ }, "AutoTuneState":{ "type":"string", - "documentation":"

The Auto-Tune state for the domain. For valid states see Auto-Tune for Amazon OpenSearch Service.

", + "documentation":"

The Auto-Tune state for the domain. For valid states see Auto-Tune for Amazon OpenSearch Service.

", "enum":[ "ENABLED", "DISABLED", @@ -1577,7 +1652,7 @@ "type":"structure", "members":{ }, - "documentation":"

An error occurred because the client attempts to remove a resource that's currently in use.

", + "documentation":"

An error occurred because the client attempts to remove a resource that is currently in use.

", "error":{"httpStatusCode":409}, "exception":true }, @@ -1679,6 +1754,14 @@ "AutoTuneOptions":{ "shape":"AutoTuneOptionsInput", "documentation":"

Options for Auto-Tune.

" + }, + "OffPeakWindowOptions":{ + "shape":"OffPeakWindowOptions", + "documentation":"

Specifies a daily 10-hour time block during which OpenSearch Service can perform configuration changes on the domain, including service software updates and Auto-Tune enhancements that require a blue/green deployment. If no options are specified, the default start time of 10:00 P.M. local time (for the Region that the domain is created in) is used.

" + }, + "SoftwareUpdateOptions":{ + "shape":"SoftwareUpdateOptions", + "documentation":"

Software update options for the domain.

" } } }, @@ -2405,7 +2488,7 @@ "type":"structure", "members":{ }, - "documentation":"

An error occured because the client wanted to access an unsupported operation.

", + "documentation":"

An error occured because the client wanted to access a not supported operation.

", "error":{"httpStatusCode":409}, "exception":true }, @@ -2460,7 +2543,7 @@ }, "EBSOptions":{ "shape":"EBSOptionsStatus", - "documentation":"

Container for EBS options configured for an OpenSearch Service domain.

" + "documentation":"

Container for EBS options configured for the domain.

" }, "AccessPolicies":{ "shape":"AccessPoliciesStatus", @@ -2509,6 +2592,14 @@ "ChangeProgressDetails":{ "shape":"ChangeProgressDetails", "documentation":"

Container for information about the progress of an existing configuration change.

" + }, + "OffPeakWindowOptions":{ + "shape":"OffPeakWindowOptionsStatus", + "documentation":"

Container for off-peak window options for the domain.

" + }, + "SoftwareUpdateOptions":{ + "shape":"SoftwareUpdateOptionsStatus", + "documentation":"

Software update options for the domain.

" } }, "documentation":"

Container for the configuration of an OpenSearch Service domain.

" @@ -2774,6 +2865,14 @@ "ChangeProgressDetails":{ "shape":"ChangeProgressDetails", "documentation":"

Information about a configuration change happening on the domain.

" + }, + "OffPeakWindowOptions":{ + "shape":"OffPeakWindowOptions", + "documentation":"

Options that specify a custom 10-hour window during which OpenSearch Service can perform configuration changes on the domain.

" + }, + "SoftwareUpdateOptions":{ + "shape":"SoftwareUpdateOptions", + "documentation":"

Service software update options for the domain.

" } }, "documentation":"

The current status of an OpenSearch Service domain.

" @@ -3479,6 +3578,43 @@ }, "documentation":"

Container for the response parameters to the ListPackagesForDomain operation.

" }, + "ListScheduledActionsRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the domain.

", + "location":"uri", + "locationName":"DomainName" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If your initial ListScheduledActions operation returns a nextToken, you can include the returned nextToken in subsequent ListScheduledActions operations, which returns results in the next page.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListScheduledActionsResponse":{ + "type":"structure", + "members":{ + "ScheduledActions":{ + "shape":"ScheduledActionsList", + "documentation":"

A list of actions that are scheduled for the domain.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, "ListTagsRequest":{ "type":"structure", "required":["ARN"], @@ -3750,6 +3886,44 @@ "min":1, "pattern":"[a-zA-Z0-9\\-\\_\\.]+" }, + "OffPeakWindow":{ + "type":"structure", + "members":{ + "WindowStartTime":{ + "shape":"WindowStartTime", + "documentation":"

A custom start time for the off-peak window, in Coordinated Universal Time (UTC). The window length will always be 10 hours, so you can't specify an end time. For example, if you specify 11:00 P.M. UTC as a start time, the end time will automatically be set to 9:00 A.M.

" + } + }, + "documentation":"

A custom 10-hour, low-traffic window during which OpenSearch Service can perform mandatory configuration changes on the domain. These actions can include scheduled service software updates and blue/green Auto-Tune enhancements. OpenSearch Service will schedule these actions during the window that you specify.

If you don't specify a window start time, it defaults to 10:00 P.M. local time.

For more information, see Defining off-peak maintenance windows for Amazon OpenSearch Service.

" + }, + "OffPeakWindowOptions":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Whether to enable an off-peak window.

This option is only available when modifying a domain created prior to February 13, 2023, not when creating a new domain. All domains created after this date have the off-peak window enabled by default. You can't disable the off-peak window after it's enabled for a domain.

" + }, + "OffPeakWindow":{ + "shape":"OffPeakWindow", + "documentation":"

Off-peak window settings for the domain.

" + } + }, + "documentation":"

Options for a domain's off-peak window, during which OpenSearch Service can perform mandatory configuration changes on the domain.

" + }, + "OffPeakWindowOptionsStatus":{ + "type":"structure", + "members":{ + "Options":{ + "shape":"OffPeakWindowOptions", + "documentation":"

The domain's off-peak window configuration.

" + }, + "Status":{ + "shape":"OptionStatus", + "documentation":"

The current status of off-peak window options.

" + } + }, + "documentation":"

The status of off-peak window options for a domain.

" + }, "OpenSearchPartitionInstanceType":{ "type":"string", "enum":[ @@ -4349,7 +4523,7 @@ "type":"structure", "members":{ }, - "documentation":"

An exception for accessing or deleting a resource that doesn't exist.

", + "documentation":"

An exception for accessing or deleting a resource that does not exist..

", "error":{"httpStatusCode":409}, "exception":true }, @@ -4489,6 +4663,66 @@ }, "documentation":"

Describes the SAML application configured for the domain.

" }, + "ScheduleAt":{ + "type":"string", + "enum":[ + "NOW", + "TIMESTAMP", + "OFF_PEAK_WINDOW" + ] + }, + "ScheduledAction":{ + "type":"structure", + "required":[ + "Id", + "Type", + "Severity", + "ScheduledTime" + ], + "members":{ + "Id":{ + "shape":"String", + "documentation":"

The unique identifier of the scheduled action.

" + }, + "Type":{ + "shape":"ActionType", + "documentation":"

The type of action that will be taken on the domain.

" + }, + "Severity":{ + "shape":"ActionSeverity", + "documentation":"

The severity of the action.

" + }, + "ScheduledTime":{ + "shape":"Long", + "documentation":"

The time when the change is scheduled to happen.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description of the action to be taken.

" + }, + "ScheduledBy":{ + "shape":"ScheduledBy", + "documentation":"

Whether the action was scheduled manually (CUSTOMER, or by OpenSearch Service automatically (SYSTEM).

" + }, + "Status":{ + "shape":"ActionStatus", + "documentation":"

The current status of the scheduled action.

" + }, + "Mandatory":{ + "shape":"Boolean", + "documentation":"

Whether the action is required or optional.

" + }, + "Cancellable":{ + "shape":"Boolean", + "documentation":"

Whether or not the scheduled action is cancellable.

" + } + }, + "documentation":"

Information about a scheduled configuration change for an OpenSearch Service domain. This actions can be a service software update or a blue/green Auto-Tune enhancement.

" + }, + "ScheduledActionsList":{ + "type":"list", + "member":{"shape":"ScheduledAction"} + }, "ScheduledAutoTuneActionType":{ "type":"string", "documentation":"

The Auto-Tune action type.

", @@ -4532,6 +4766,13 @@ "HIGH" ] }, + "ScheduledBy":{ + "type":"string", + "enum":[ + "CUSTOMER", + "SYSTEM" + ] + }, "ServiceSoftwareOptions":{ "type":"structure", "members":{ @@ -4574,6 +4815,22 @@ "type":"string", "documentation":"

The domain endpoint to which index and search requests are submitted. For example, search-imdb-movies-oopcnjfn6ugo.eu-west-1.es.amazonaws.com or doc-imdb-movies-oopcnjfn6u.eu-west-1.es.amazonaws.com.

" }, + "SlotList":{ + "type":"list", + "member":{"shape":"Long"} + }, + "SlotNotAvailableException":{ + "type":"structure", + "members":{ + "SlotSuggestions":{ + "shape":"SlotList", + "documentation":"

Alternate time slots during which OpenSearch Service has available capacity to schedule a domain action.

" + } + }, + "documentation":"

An exception for attempting to schedule a domain action during an unavailable time slot.

", + "error":{"httpStatusCode":409}, + "exception":true + }, "SnapshotOptions":{ "type":"structure", "members":{ @@ -4602,6 +4859,30 @@ }, "documentation":"

Container for information about a daily automated snapshot for an OpenSearch Service domain.

" }, + "SoftwareUpdateOptions":{ + "type":"structure", + "members":{ + "AutoSoftwareUpdateEnabled":{ + "shape":"Boolean", + "documentation":"

Whether automatic service software updates are enabled for the domain.

" + } + }, + "documentation":"

Options for configuring service software updates for a domain.

" + }, + "SoftwareUpdateOptionsStatus":{ + "type":"structure", + "members":{ + "Options":{ + "shape":"SoftwareUpdateOptions", + "documentation":"

The service software update options for a domain.

" + }, + "Status":{ + "shape":"OptionStatus", + "documentation":"

The status of service software update options, including creation date and last updated date.

" + } + }, + "documentation":"

The status of the service software options for a domain.

" + }, "StartAt":{"type":"timestamp"}, "StartServiceSoftwareUpdateRequest":{ "type":"structure", @@ -4610,6 +4891,14 @@ "DomainName":{ "shape":"DomainName", "documentation":"

The name of the domain that you want to update to the latest service software.

" + }, + "ScheduleAt":{ + "shape":"ScheduleAt", + "documentation":"

When to start the service software update.

  • NOW - Immediately schedules the update to happen in the current hour if there's capacity available.

  • TIMESTAMP - Lets you specify a custom date and time to apply the update. If you specify this value, you must also provide a value for DesiredStartTime.

  • OFF_PEAK_WINDOW - Marks the update to be picked up during an upcoming off-peak window. There's no guarantee that the update will happen during the next immediate window. Depending on capacity, it might happen in subsequent days.

Default: NOW if you don't specify a value for DesiredStartTime, and TIMESTAMP if you do.

" + }, + "DesiredStartTime":{ + "shape":"Long", + "documentation":"

The Epoch timestamp when you want the service software update to start. You only need to specify this parameter if you set ScheduleAt to TIMESTAMP.

" } }, "documentation":"

Container for the request parameters to the StartServiceSoftwareUpdate operation.

" @@ -4624,6 +4913,16 @@ }, "documentation":"

Represents the output of a StartServiceSoftwareUpdate operation. Contains the status of the update.

" }, + "StartTimeHours":{ + "type":"long", + "max":23, + "min":0 + }, + "StartTimeMinutes":{ + "type":"long", + "max":59, + "min":0 + }, "StartTimestamp":{"type":"timestamp"}, "StorageSubTypeName":{ "type":"string", @@ -4772,7 +5071,7 @@ }, "LogPublishingOptions":{ "shape":"LogPublishingOptions", - "documentation":"

Options to publish OpenSearch lots to Amazon CloudWatch Logs.

" + "documentation":"

Options to publish OpenSearch logs to Amazon CloudWatch Logs.

" }, "EncryptionAtRestOptions":{ "shape":"EncryptionAtRestOptions", @@ -4784,7 +5083,7 @@ }, "NodeToNodeEncryptionOptions":{ "shape":"NodeToNodeEncryptionOptions", - "documentation":"

Node-To-Node Encryption options for the domain.

" + "documentation":"

Node-to-node encryption options for the domain.

" }, "AdvancedSecurityOptions":{ "shape":"AdvancedSecurityOptionsInput", @@ -4801,6 +5100,14 @@ "DryRunMode":{ "shape":"DryRunMode", "documentation":"

The type of dry run to perform.

  • Basic only returns the type of deployment (blue/green or dynamic) that the update will cause.

  • Verbose runs an additional check to validate the changes you're making. For more information, see Validating a domain update.

" + }, + "OffPeakWindowOptions":{ + "shape":"OffPeakWindowOptions", + "documentation":"

Off-peak window options for the domain.

" + }, + "SoftwareUpdateOptions":{ + "shape":"SoftwareUpdateOptions", + "documentation":"

Service software update options for the domain.

" } }, "documentation":"

Container for the request parameters to the UpdateDomain operation.

" @@ -4860,6 +5167,48 @@ }, "documentation":"

Container for the response returned by the UpdatePackage operation.

" }, + "UpdateScheduledActionRequest":{ + "type":"structure", + "required":[ + "DomainName", + "ActionID", + "ActionType", + "ScheduleAt" + ], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the domain to reschedule an action for.

", + "location":"uri", + "locationName":"DomainName" + }, + "ActionID":{ + "shape":"String", + "documentation":"

The unique identifier of the action to reschedule. To retrieve this ID, send a ListScheduledActions request.

" + }, + "ActionType":{ + "shape":"ActionType", + "documentation":"

The type of action to reschedule. Can be one of SERVICE_SOFTWARE_UPDATE, JVM_HEAP_SIZE_TUNING, or JVM_YOUNG_GEN_TUNING. To retrieve this value, send a ListScheduledActions request.

" + }, + "ScheduleAt":{ + "shape":"ScheduleAt", + "documentation":"

When to schedule the action.

  • NOW - Immediately schedules the update to happen in the current hour if there's capacity available.

  • TIMESTAMP - Lets you specify a custom date and time to apply the update. If you specify this value, you must also provide a value for DesiredStartTime.

  • OFF_PEAK_WINDOW - Marks the action to be picked up during an upcoming off-peak window. There's no guarantee that the change will be implemented during the next immediate window. Depending on capacity, it might happen in subsequent days.

" + }, + "DesiredStartTime":{ + "shape":"Long", + "documentation":"

The time to implement the change, in Coordinated Universal Time (UTC). Only specify this parameter if you set ScheduleAt to TIMESTAMP.

" + } + } + }, + "UpdateScheduledActionResponse":{ + "type":"structure", + "members":{ + "ScheduledAction":{ + "shape":"ScheduledAction", + "documentation":"

Information about the rescheduled action.

" + } + } + }, "UpdateTimestamp":{"type":"timestamp"}, "UpdateVpcEndpointRequest":{ "type":"structure", @@ -5085,7 +5434,7 @@ "type":"structure", "members":{ }, - "documentation":"

An exception for missing or invalid input fields.

", + "documentation":"

An exception for accessing or deleting a resource that doesn't exist.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -5262,6 +5611,24 @@ "type":"list", "member":{"shape":"VpcEndpoint"} }, + "WindowStartTime":{ + "type":"structure", + "required":[ + "Hours", + "Minutes" + ], + "members":{ + "Hours":{ + "shape":"StartTimeHours", + "documentation":"

The start hour of the window in Coordinated Universal Time (UTC), using 24-hour time. For example, 17 refers to 5:00 P.M. UTC.

" + }, + "Minutes":{ + "shape":"StartTimeMinutes", + "documentation":"

The start minute of the window, in UTC.

" + } + }, + "documentation":"

The desired start time for an off-peak maintenance window.

" + }, "ZoneAwarenessConfig":{ "type":"structure", "members":{ diff --git a/services/opensearchserverless/pom.xml b/services/opensearchserverless/pom.xml index 2e95c6422221..dfd619d4f9de 100644 --- a/services/opensearchserverless/pom.xml +++ b/services/opensearchserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT opensearchserverless AWS Java SDK :: Services :: Open Search Serverless diff --git a/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-rule-set.json index 6c4f0a782a1f..879c877db37f 100644 --- a/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://aoss-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://aoss-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://aoss.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://aoss.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-tests.json b/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-tests.json index c00d2d53e42b..394379dc69cb 100644 --- a/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/opensearchserverless/src/main/resources/codegen-resources/endpoint-tests.json @@ -9,8 +9,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": true } }, { @@ -22,8 +22,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": true } }, { @@ -35,8 +35,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { @@ -48,8 +48,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false } }, { @@ -61,8 +61,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": true } }, { @@ -74,8 +74,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": true } }, { @@ -87,8 +87,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": false } }, { @@ -100,8 +100,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": false } }, { @@ -111,8 +111,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true } }, { @@ -124,8 +124,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true } }, { @@ -135,8 +135,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": false } }, { @@ -148,8 +148,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseFIPS": false } }, { @@ -161,8 +161,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": true } }, { @@ -174,8 +174,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": true } }, { @@ -187,8 +187,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": false } }, { @@ -200,8 +200,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseFIPS": false } }, { @@ -211,8 +211,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": true } }, { @@ -224,8 +224,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": true } }, { @@ -235,8 +235,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": false } }, { @@ -248,8 +248,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseFIPS": false } }, { @@ -261,8 +261,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -273,8 +273,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -285,8 +285,8 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/opensearchserverless/src/main/resources/codegen-resources/service-2.json b/services/opensearchserverless/src/main/resources/codegen-resources/service-2.json index 2bbaf35336db..5e39befc357c 100644 --- a/services/opensearchserverless/src/main/resources/codegen-resources/service-2.json +++ b/services/opensearchserverless/src/main/resources/codegen-resources/service-2.json @@ -52,7 +52,8 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates a data access policy for OpenSearch Serverless. Access policies limit access to collections and the resources within them, and allow a user to access that data irrespective of the access mechanism or network source. For more information, see Data access control for Amazon OpenSearch Serverless.

", "idempotent":true @@ -66,9 +67,11 @@ "input":{"shape":"CreateCollectionRequest"}, "output":{"shape":"CreateCollectionResponse"}, "errors":[ + {"shape":"OcuLimitExceededException"}, {"shape":"InternalServerException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates a new OpenSearch Serverless collection. For more information, see Creating and managing Amazon OpenSearch Serverless collections.

", "idempotent":true @@ -84,7 +87,8 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Specifies a security configuration for OpenSearch Serverless. For more information, see SAML authentication for Amazon OpenSearch Serverless.

", "idempotent":true @@ -100,7 +104,8 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates a security policy to be used by one or more OpenSearch Serverless collections. Security policies provide access to a collection and its OpenSearch Dashboards endpoint from public networks or specific VPC endpoints. They also allow you to secure a collection with a KMS encryption key. For more information, see Network access for Amazon OpenSearch Serverless and Encryption at rest for Amazon OpenSearch Serverless.

", "idempotent":true @@ -116,7 +121,8 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates an OpenSearch Serverless-managed interface VPC endpoint. For more information, see Access Amazon OpenSearch Serverless using an interface endpoint.

", "idempotent":true @@ -375,7 +381,8 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Associates tags with an OpenSearch Serverless resource. For more information, see Tagging Amazon OpenSearch Serverless collections.

" }, @@ -424,7 +431,7 @@ {"shape":"InternalServerException"}, {"shape":"ValidationException"} ], - "documentation":"

Update the OpenSearch Serverless settings for the current Amazon Web Services account. For more information, see Autoscaling.

" + "documentation":"

Update the OpenSearch Serverless settings for the current Amazon Web Services account. For more information, see Managing capacity limits for Amazon OpenSearch Serverless.

" }, "UpdateCollection":{ "name":"UpdateCollection", @@ -471,7 +478,8 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Updates an OpenSearch Serverless security policy. For more information, see Network access for Amazon OpenSearch Serverless and Encryption at rest for Amazon OpenSearch Serverless.

", "idempotent":true @@ -649,7 +657,7 @@ "documentation":"

The maximum search capacity for collections.

" } }, - "documentation":"

The maximum capacity limits for all OpenSearch Serverless collections, in OpenSearch Compute Units (OCUs). These limits are used to scale your collections based on the current workload. For more information, see Autoscaling.

" + "documentation":"

The maximum capacity limits for all OpenSearch Serverless collections, in OpenSearch Compute Units (OCUs). These limits are used to scale your collections based on the current workload. For more information, see Managing capacity limits for Amazon OpenSearch Serverless.

" }, "ClientToken":{ "type":"string", @@ -832,7 +840,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

When creating a collection, thrown when a collection with the same name already exists or is being created. When deleting a collection, thrown when the collection is not in the ACTIVE or FAILED state.

", + "documentation":"

When creating a resource, thrown when a resource with the same name already exists or is being created. When deleting a resource, thrown when the resource is not in the ACTIVE or FAILED state.

", "exception":true }, "CreateAccessPolicyRequest":{ @@ -980,7 +988,7 @@ }, "samlOptions":{ "shape":"SamlConfigOptions", - "documentation":"

Describes SAML options in in the form of a key-value map.

" + "documentation":"

Describes SAML options in in the form of a key-value map. This field is required if you specify saml for the type parameter.

" }, "type":{ "shape":"SecurityConfigType", @@ -1398,7 +1406,7 @@ }, "resource":{ "shape":"ListAccessPoliciesRequestResourceList", - "documentation":"

Resource filters (can be collection or indexes) that policies can apply to.

" + "documentation":"

Resource filters (can be collections or indexes) that policies can apply to.

" }, "type":{ "shape":"AccessPolicyType", @@ -1610,10 +1618,22 @@ "type":"long", "box":true }, + "OcuLimitExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{ + "shape":"String", + "documentation":"

Description of the error.

" + } + }, + "documentation":"

OCU Limit Exceeded for service limits

", + "exception":true + }, "PolicyDescription":{ "type":"string", "max":1000, - "min":1 + "min":0 }, "PolicyDocument":{ "type":"string", @@ -1656,7 +1676,7 @@ }, "sessionTimeout":{ "shape":"SamlConfigOptionsSessionTimeoutInteger", - "documentation":"

The session timeout, in minutes. Minimum is 15 minutes and maximum is 1440 minutes (24 hours or 1 day). Default is 60 minutes.

" + "documentation":"

The session timeout, in minutes. Default is 60 minutes (12 hours).

" }, "userAttribute":{ "shape":"samlUserAttribute", @@ -1864,6 +1884,37 @@ "network" ] }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "serviceCode" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

Description of the error.

" + }, + "quotaCode":{ + "shape":"String", + "documentation":"

Service Quotas requirement to identify originating quota.

" + }, + "resourceId":{ + "shape":"String", + "documentation":"

Identifier of the resource affected.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

Type of the resource affected.

" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

Service Quotas requirement to identify originating service.

" + } + }, + "documentation":"

Thrown when you attempt to create more resources than the service allows based on service quotas.

", + "exception":true + }, "String":{"type":"string"}, "SubnetId":{ "type":"string", @@ -2281,7 +2332,7 @@ }, "vpcId":{ "shape":"VpcId", - "documentation":"

The ID of the VPC from which you access OpenSearch Serverless

" + "documentation":"

The ID of the VPC from which you access OpenSearch Serverless.

" } }, "documentation":"

Details about an OpenSearch Serverless-managed interface endpoint.

" diff --git a/services/opsworks/pom.xml b/services/opsworks/pom.xml index 264d2697c4fd..4aed4712788b 100644 --- a/services/opsworks/pom.xml +++ b/services/opsworks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT opsworks AWS Java SDK :: Services :: AWS OpsWorks diff --git a/services/opsworkscm/pom.xml b/services/opsworkscm/pom.xml index 67cbf67fb210..d55724bdf1eb 100644 --- a/services/opsworkscm/pom.xml +++ b/services/opsworkscm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT opsworkscm AWS Java SDK :: Services :: AWS OpsWorks for Chef Automate diff --git a/services/organizations/pom.xml b/services/organizations/pom.xml index 4eb9b4b9334e..9c343c8803f1 100644 --- a/services/organizations/pom.xml +++ b/services/organizations/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT organizations AWS Java SDK :: Services :: AWS Organizations diff --git a/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json index 16108abb1918..b31c53546631 100644 --- a/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/organizations/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,64 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "isSet", "argv": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws" + "ref": "Region" + } ] } ], @@ -137,22 +111,13 @@ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -160,108 +125,221 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] - } + }, + "aws" ] - }, + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { - "conditions": [], - "endpoint": { - "url": "https://organizations-fips.{Region}.api.aws", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "organizations" + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" } ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://organizations-fips.us-east-1.amazonaws.com", + "url": "https://organizations.us-east-1.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "organizations" + "signingName": "organizations", + "signingRegion": "us-east-1" } ] }, @@ -271,180 +349,216 @@ } ] }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsDualStack" + "name" ] - } + }, + "aws-cn" ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://organizations.{Region}.api.aws", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "organizations" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://organizations.us-east-1.amazonaws.com", - "properties": { - "authSchemes": [ + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "organizations" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-cn" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.api.amazonwebservices.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://organizations-fips.{Region}.api.amazonwebservices.com.cn", + "url": "https://organizations.cn-northwest-1.amazonaws.com.cn", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "organizations" + "signingName": "organizations", + "signingRegion": "cn-northwest-1" } ] }, @@ -454,240 +568,224 @@ } ] }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "stringEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "supportsFIPS" + "name" ] - } + }, + "aws-us-gov" ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://organizations-fips.{Region}.amazonaws.com.cn", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "organizations" - } + "ref": "UseFIPS" + }, + true ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://organizations.{Region}.api.amazonwebservices.com.cn", - "properties": { - "authSchemes": [ + ], + "type": "tree", + "rules": [ + { + "conditions": [ { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "organizations" + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://organizations.cn-northwest-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "organizations" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - }, - "aws-us-gov" - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "endpoint": { - "url": "https://organizations-fips.{Region}.api.aws", + "url": "https://organizations.us-gov-west-1.amazonaws.com", "properties": { "authSchemes": [ { "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "organizations" + "signingName": "organizations", + "signingRegion": "us-gov-west-1" } ] }, @@ -698,261 +796,257 @@ ] }, { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ + "conditions": [ { - "ref": "UseFIPS" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseDualStack" + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://organizations.us-gov-west-1.amazonaws.com", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "organizations" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] } ] }, - "headers": {} - }, - "type": "endpoint" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseFIPS" + }, + true ] } ], "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://organizations.{Region}.api.aws", - "properties": { - "authSchemes": [ + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "organizations" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] } ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://organizations.us-gov-west-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "organizations" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ + } + ], + "type": "tree", + "rules": [ { - "ref": "PartitionResult" - }, - "supportsFIPS" + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://organizations-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://organizations.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://organizations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + ], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ + "conditions": [ { - "ref": "PartitionResult" - }, - "supportsFIPS" + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -970,8 +1064,43 @@ } ], "endpoint": { - "url": "https://organizations-fips.us-east-1.amazonaws.com", - "properties": {}, + "url": "https://organizations.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://organizations.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "cn-northwest-1" + } + ] + }, "headers": {} }, "type": "endpoint" @@ -990,7 +1119,15 @@ ], "endpoint": { "url": "https://organizations.us-gov-west-1.amazonaws.com", - "properties": {}, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-gov-west-1" + } + ] + }, "headers": {} }, "type": "endpoint" @@ -998,7 +1135,7 @@ { "conditions": [], "endpoint": { - "url": "https://organizations-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://organizations.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -1007,161 +1144,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://organizations.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-global" - ] - } - ], - "endpoint": { - "url": "https://organizations.us-east-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-east-1", - "signingName": "organizations" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-cn-global" - ] - } - ], - "endpoint": { - "url": "https://organizations.cn-northwest-1.amazonaws.com.cn", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "cn-northwest-1", - "signingName": "organizations" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "aws-us-gov-global" - ] - } - ], - "endpoint": { - "url": "https://organizations.us-gov-west-1.amazonaws.com", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingRegion": "us-gov-west-1", - "signingName": "organizations" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://organizations.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/organizations/src/main/resources/codegen-resources/endpoint-tests.json b/services/organizations/src/main/resources/codegen-resources/endpoint-tests.json index e85dca797692..9f0b8e8ae1d5 100644 --- a/services/organizations/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/organizations/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,5 +1,119 @@ { "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://organizations.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "aws-global" + } + }, + { + "documentation": "For region aws-global with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://organizations-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "aws-global" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://organizations-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://organizations-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://organizations.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://organizations.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, { "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", "expect": { @@ -17,13 +131,52 @@ } }, "params": { - "Region": "aws-cn-global", + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": false + "Region": "aws-cn-global" } }, { - "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://organizations-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://organizations-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://organizations.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { "properties": { @@ -31,17 +184,17 @@ { "name": "sigv4", "signingName": "organizations", - "signingRegion": "us-east-1" + "signingRegion": "cn-northwest-1" } ] }, - "url": "https://organizations.us-east-1.amazonaws.com" + "url": "https://organizations.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "Region": "aws-global", + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": false + "Region": "cn-north-1" } }, { @@ -61,22 +214,179 @@ } }, "params": { - "Region": "aws-us-gov-global", + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": false + "Region": "aws-us-gov-global" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region aws-us-gov-global with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://organizations.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "aws-us-gov-global" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://organizations-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://organizations.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://organizations.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://organizations.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://organizations-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://organizations.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://organizations-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://organizations.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -86,9 +396,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", - "UseFIPS": true, "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -98,9 +408,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", - "UseFIPS": false, "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/organizations/src/main/resources/codegen-resources/service-2.json b/services/organizations/src/main/resources/codegen-resources/service-2.json index 3340840ddefe..699b8c7b3a89 100644 --- a/services/organizations/src/main/resources/codegen-resources/service-2.json +++ b/services/organizations/src/main/resources/codegen-resources/service-2.json @@ -100,7 +100,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"UnsupportedAPIEndpointException"} ], - "documentation":"

Closes an Amazon Web Services member account within an organization. You can't close the management account with this API. This is an asynchronous request that Amazon Web Services performs in the background. Because CloseAccount operates asynchronously, it can return a successful completion message even though account closure might still be in progress. You need to wait a few minutes before the account is fully closed. To check the status of the request, do one of the following:

  • Use the AccountId that you sent in the CloseAccount request to provide as a parameter to the DescribeAccount operation.

    While the close account request is in progress, Account status will indicate PENDING_CLOSURE. When the close account request completes, the status will change to SUSPENDED.

  • Check the CloudTrail log for the CloseAccountResult event that gets published after the account closes successfully. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

  • You can only close 10% of active member accounts within a rolling 30 day period. This quota is not bound by a calendar month, but starts when you close an account. Within 30 days of that initial account closure, you can't exceed the 10% account closure limit.

  • To reinstate a closed account, contact Amazon Web Services Support within the 90-day grace period while the account is in SUSPENDED status.

  • If the Amazon Web Services account you attempt to close is linked to an Amazon Web Services GovCloud (US) account, the CloseAccount request will close both accounts. To learn important pre-closure details, see Closing an Amazon Web Services GovCloud (US) account in the Amazon Web Services GovCloud User Guide.

For more information about closing accounts, see Closing an Amazon Web Services account in the Organizations User Guide.

" + "documentation":"

Closes an Amazon Web Services member account within an organization. You can close an account when all features are enabled . You can't close the management account with this API. This is an asynchronous request that Amazon Web Services performs in the background. Because CloseAccount operates asynchronously, it can return a successful completion message even though account closure might still be in progress. You need to wait a few minutes before the account is fully closed. To check the status of the request, do one of the following:

  • Use the AccountId that you sent in the CloseAccount request to provide as a parameter to the DescribeAccount operation.

    While the close account request is in progress, Account status will indicate PENDING_CLOSURE. When the close account request completes, the status will change to SUSPENDED.

  • Check the CloudTrail log for the CloseAccountResult event that gets published after the account closes successfully. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

  • You can close only 10% of member accounts, between 10 and 200, within a rolling 30 day period. This quota is not bound by a calendar month, but starts when you close an account.

    After you reach this limit, you can close additional accounts in the Billing console. For more information, see Closing an account in the Amazon Web Services Billing and Cost Management User Guide.

  • To reinstate a closed account, contact Amazon Web Services Support within the 90-day grace period while the account is in SUSPENDED status.

  • If the Amazon Web Services account you attempt to close is linked to an Amazon Web Services GovCloud (US) account, the CloseAccount request will close both accounts. To learn important pre-closure details, see Closing an Amazon Web Services GovCloud (US) account in the Amazon Web Services GovCloud User Guide.

For more information about closing accounts, see Closing an Amazon Web Services account in the Organizations User Guide.

" }, "CreateAccount":{ "name":"CreateAccount", @@ -468,7 +468,7 @@ {"shape":"ResourcePolicyNotFoundException"}, {"shape":"ConstraintViolationException"} ], - "documentation":"

Retrieves information about a resource policy.

You can only call this operation from the organization's management account or by a member account that is a delegated administrator for an AWS service.

" + "documentation":"

Retrieves information about a resource policy.

You can only call this operation from the organization's management account or by a member account that is a delegated administrator for an Amazon Web Services service.

" }, "DetachPolicy":{ "name":"DetachPolicy", @@ -1378,7 +1378,7 @@ "Message":{"shape":"ExceptionMessage"}, "Reason":{"shape":"ConstraintViolationExceptionReason"} }, - "documentation":"

Performing this operation violates a minimum or maximum value limit. For example, attempting to remove the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the organization, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation.

  • ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization. You can't remove the management account. Instead, after you remove all member accounts, delete the organization itself.

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.

  • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact Amazon Web Services Support to request an increase in your limit.

    Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase in the number of accounts.

    Deleted and closed accounts still count toward your limit.

    If you get this exception when running a command immediately after creating the organization, wait one hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.

  • CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of the organization as a delegated administrator for an Amazon Web Services service integrated with Organizations. You can designate only a member account as a delegated administrator.

  • CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management account for the organization, you must first either remove or close all member accounts in the organization. Follow standard account closure process using root credentials.​

  • CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as a delegated administrator for a service integrated with your organization. To complete this operation, you must first deregister this account as a delegated administrator.

  • CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.

  • CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close at a time. ​

  • CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified region, you must enable all features mode.

  • DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account as a delegated administrator for an Amazon Web Services service that already has a delegated administrator. To complete this operation, you must first deregister any existing delegated administrators for this service.

  • EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time. You must resubmit the request and generate a new verfication code.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one day.

  • INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is associated with the account. Amazon Web Services does not support cards issued by financial institutions in Russia or Belarus. For more information, see Managing your Amazon Web Services payments.

  • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's management account to the marketplace that corresponds to the management account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

  • MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services /> Regions in China. To create an organization, the master must have a valid business license. For more information, contact customer support.

  • MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact address and phone number for the management account. Then try the operation again.

  • MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations in the Amazon Web Services GovCloud User Guide.

  • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the Organizations User Guide.

  • MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated administrators than allowed for the service principal.

  • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

  • MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.

  • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the Organizations User Guide.

  • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would cause the entity to have fewer than the minimum number of policies of a certain type required.

  • ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the organization to be configured to support all features. An organization that supports only consolidated billing features can't perform this operation.

  • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.

  • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.

  • POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.

  • POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an organization.

  • SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled service access. Call the EnableAWSServiceAccess API first.

  • TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with the tag policy requirements for this account.

  • WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, there is a waiting period before you can remove it from the organization. If you get an error that indicates that a wait period is required, try again in a few days.

", + "documentation":"

Performing this operation violates a minimum or maximum value limit. For example, attempting to remove the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the organization, or attaching too many policies to an account, OU, or root. This exception includes a reason that contains additional information about the violated limit:

Some of the reasons in the following list might not be applicable to this specific API or operation.

  • ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization. You can't remove the management account. Instead, after you remove all member accounts, delete the organization itself.

  • ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization that doesn't yet have enough information to exist as a standalone account. This account requires you to first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.

  • ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create in one day.

  • ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You must complete the account setup before you create an organization.

  • ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an organization. If you need more accounts, contact Amazon Web Services Support to request an increase in your limit.

    Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase in the number of accounts.

    Deleted and closed accounts still count toward your limit.

    If you get this exception when running a command immediately after creating the organization, wait one hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.

  • CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of the organization as a delegated administrator for an Amazon Web Services service integrated with Organizations. You can designate only a member account as a delegated administrator.

  • CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management account for the organization, you must first either remove or close all member accounts in the organization. Follow standard account closure process using root credentials.​

  • CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as a delegated administrator for a service integrated with your organization. To complete this operation, you must first deregister this account as a delegated administrator.

  • CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.

  • CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close at a time. ​

  • CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified region, you must enable all features mode.

  • DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account as a delegated administrator for an Amazon Web Services service that already has a delegated administrator. To complete this operation, you must first deregister any existing delegated administrators for this service.

  • EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time. You must resubmit the request and generate a new verfication code.

  • HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one day.

  • INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is associated with the account. Amazon Web Services does not support cards issued by financial institutions in Russia or Belarus. For more information, see Managing your Amazon Web Services payments.

  • MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first must migrate the organization's management account to the marketplace that corresponds to the management account's address. For example, accounts with India addresses must be associated with the AISPL marketplace. All accounts in an organization must be associated with the same marketplace.

  • MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services /> Regions in China. To create an organization, the master must have a valid business license. For more information, contact customer support.

  • MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact address and phone number for the management account. Then try the operation again.

  • MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations in the Amazon Web Services GovCloud User Guide.

  • MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the Organizations User Guide.

  • MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated administrators than allowed for the service principal.

  • MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain type that can be attached to an entity at one time.

  • MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.

  • MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you first must associate a valid payment instrument, such as a credit card, with the account. Follow the steps at To leave an organization when all required account information has not yet been provided in the Organizations User Guide.

  • MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would cause the entity to have fewer than the minimum number of policies of a certain type required.

  • ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the organization to be configured to support all features. An organization that supports only consolidated billing features can't perform this operation.

  • OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.

  • OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.

  • POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.

  • POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an organization.

  • SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled service access. Call the EnableAWSServiceAccess API first.

  • TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with the tag policy requirements for this account.

  • WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, there is a waiting period before you can remove it from the organization. If you get an error that indicates that a wait period is required, try again in a few days.

", "exception":true }, "ConstraintViolationExceptionReason":{ @@ -1416,7 +1416,8 @@ "CLOSE_ACCOUNT_QUOTA_EXCEEDED", "CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED", "SERVICE_ACCESS_NOT_ENABLED", - "INVALID_PAYMENT_INSTRUMENT" + "INVALID_PAYMENT_INSTRUMENT", + "ACCOUNT_CREATION_NOT_COMPLETE" ] }, "CreateAccountFailureReason":{ @@ -1471,7 +1472,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

A list of tags that you want to attach to the newly created account. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is invalid or if you exceed the maximum allowed number of tags for an account, then the entire request fails and the account is not created.

" + "documentation":"

A list of tags that you want to attach to the newly created account. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an account, then the entire request fails and the account is not created.

" } } }, @@ -1576,7 +1577,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

A list of tags that you want to attach to the newly created account. These tags are attached to the commercial account associated with the GovCloud account, and not to the GovCloud account itself. To add tags to the actual GovCloud account, call the TagResource operation in the GovCloud region after the new GovCloud account exists.

For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is invalid or if you exceed the maximum allowed number of tags for an account, then the entire request fails and the account is not created.

" + "documentation":"

A list of tags that you want to attach to the newly created account. These tags are attached to the commercial account associated with the GovCloud account, and not to the GovCloud account itself. To add tags to the actual GovCloud account, call the TagResource operation in the GovCloud region after the new GovCloud account exists.

For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an account, then the entire request fails and the account is not created.

" } } }, @@ -1621,7 +1622,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

A list of tags that you want to attach to the newly created OU. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is invalid or if you exceed the allowed number of tags for an OU, then the entire request fails and the OU is not created.

" + "documentation":"

A list of tags that you want to attach to the newly created OU. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is not valid or if you exceed the allowed number of tags for an OU, then the entire request fails and the OU is not created.

" } } }, @@ -1661,7 +1662,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

A list of tags that you want to attach to the newly created policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is invalid or if you exceed the allowed number of tags for a policy, then the entire request fails and the policy is not created.

" + "documentation":"

A list of tags that you want to attach to the newly created policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

If any one of the tags is not valid or if you exceed the allowed number of tags for a policy, then the entire request fails and the policy is not created.

" } } }, @@ -2423,7 +2424,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

A list of tags that you want to attach to the account when it becomes a member of the organization. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

Any tags in the request are checked for compliance with any applicable tag policies when the request is made. The request is rejected if the tags in the request don't match the requirements of the policy at that time. Tag policy compliance is not checked again when the invitation is accepted and the tags are actually attached to the account. That means that if the tag policy changes between the invitation and the acceptance, then that tags could potentially be non-compliant.

If any one of the tags is invalid or if you exceed the allowed number of tags for an account, then the entire request fails and invitations are not sent.

" + "documentation":"

A list of tags that you want to attach to the account when it becomes a member of the organization. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

Any tags in the request are checked for compliance with any applicable tag policies when the request is made. The request is rejected if the tags in the request don't match the requirements of the policy at that time. Tag policy compliance is not checked again when the invitation is accepted and the tags are actually attached to the account. That means that if the tag policy changes between the invitation and the acceptance, then that tags could potentially be non-compliant.

If any one of the tags is not valid or if you exceed the allowed number of tags for an account, then the entire request fails and invitations are not sent.

" } } }, @@ -3326,7 +3327,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

Updates the list of tags that you want to attach to the newly-created resource policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

Calls with tags apply to the initial creation of the resource policy, otherwise an exception is thrown. If any one of the tags is invalid or if you exceed the allowed number of tags for the resource policy, then the entire request fails and the resource policy is not created.

" + "documentation":"

A list of tags that you want to attach to the newly created resource policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

Calls with tags apply to the initial creation of the resource policy, otherwise an exception is thrown. If any one of the tags is not valid or if you exceed the allowed number of tags for the resource policy, then the entire request fails and the resource policy is not created.

" } } }, @@ -3533,7 +3534,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

A list of tags to add to the specified resource.

For each tag in the list, you must specify both a tag key and a value. The value can be an empty string, but you can't set it to null.

If any one of the tags is invalid or if you exceed the maximum allowed number of tags for a resource, then the entire request fails.

" + "documentation":"

A list of tags to add to the specified resource.

For each tag in the list, you must specify both a tag key and a value. The value can be an empty string, but you can't set it to null.

If any one of the tags is not valid or if you exceed the maximum allowed number of tags for a resource, then the entire request fails.

" } } }, diff --git a/services/outposts/pom.xml b/services/outposts/pom.xml index 75aebdeb5f06..eea421382ba8 100644 --- a/services/outposts/pom.xml +++ b/services/outposts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT outposts AWS Java SDK :: Services :: Outposts diff --git a/services/panorama/pom.xml b/services/panorama/pom.xml index 3ee2220d6710..3b10ad471fe6 100644 --- a/services/panorama/pom.xml +++ b/services/panorama/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT panorama AWS Java SDK :: Services :: Panorama diff --git a/services/personalize/pom.xml b/services/personalize/pom.xml index 65349723baf4..0f606072fdb0 100644 --- a/services/personalize/pom.xml +++ b/services/personalize/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT personalize AWS Java SDK :: Services :: Personalize diff --git a/services/personalizeevents/pom.xml b/services/personalizeevents/pom.xml index 99daee5321cc..c5142eefb786 100644 --- a/services/personalizeevents/pom.xml +++ b/services/personalizeevents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT personalizeevents AWS Java SDK :: Services :: Personalize Events diff --git a/services/personalizeruntime/pom.xml b/services/personalizeruntime/pom.xml index 691cc0f463d1..f04c7eea9234 100644 --- a/services/personalizeruntime/pom.xml +++ b/services/personalizeruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT personalizeruntime AWS Java SDK :: Services :: Personalize Runtime diff --git a/services/pi/pom.xml b/services/pi/pom.xml index c69a370d15e2..ccf6fc387d4c 100644 --- a/services/pi/pom.xml +++ b/services/pi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT pi AWS Java SDK :: Services :: PI diff --git a/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json index 416bab79b707..ca59653fa9b9 100644 --- a/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/pi/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pi-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pi-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://pi-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pi.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://pi-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://pi.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://pi.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://pi.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/pi/src/main/resources/codegen-resources/endpoint-tests.json b/services/pi/src/main/resources/codegen-resources/endpoint-tests.json index 03f343a0050c..a720fcbb69af 100644 --- a/services/pi/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/pi/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1472 +1,510 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-2", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://pi-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.me-south-1.api.aws" + "url": "https://pi.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.me-south-1.amazonaws.com" + "url": "https://pi.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.sa-east-1.api.aws" + "url": "https://pi.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.sa-east-1.amazonaws.com" + "url": "https://pi.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.sa-east-1.api.aws" + "url": "https://pi.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.sa-east-1.amazonaws.com" + "url": "https://pi.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-east-1.api.aws" + "url": "https://pi.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-east-1.amazonaws.com" + "url": "https://pi.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.ap-east-1.api.aws" + "url": "https://pi.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.ap-east-1.amazonaws.com" + "url": "https://pi.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://pi.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.cn-north-1.amazonaws.com.cn" + "url": "https://pi.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://pi.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.cn-north-1.amazonaws.com.cn" + "url": "https://pi.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-southeast-1.api.aws" + "url": "https://pi.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-southeast-1.amazonaws.com" + "url": "https://pi.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.ap-southeast-1.api.aws" + "url": "https://pi.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.ap-southeast-1.amazonaws.com" + "url": "https://pi.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-southeast-2.api.aws" + "url": "https://pi.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-southeast-2.amazonaws.com" + "url": "https://pi.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.ap-southeast-2.api.aws" + "url": "https://pi.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://pi.ap-southeast-2.amazonaws.com" + "url": "https://pi-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-southeast-3.api.aws" + "url": "https://pi-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://pi-fips.ap-southeast-3.amazonaws.com" + "url": "https://pi.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.ap-southeast-3.api.aws" + "url": "https://pi.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.ap-southeast-3.amazonaws.com" + "url": "https://pi.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": false + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://pi-fips.us-east-1.api.aws" + "url": "https://pi-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.us-east-1.amazonaws.com" + "url": "https://pi-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://pi.us-east-1.api.aws" + "url": "https://pi.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://pi.us-east-1.amazonaws.com" + "url": "https://pi-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.us-east-2.api.aws" + "url": "https://pi-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://pi-fips.us-east-2.amazonaws.com" + "url": "https://pi.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.us-east-2.api.aws" + "url": "https://pi.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.us-east-2.amazonaws.com" + "url": "https://pi-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://pi.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://pi-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://pi.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://pi.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://pi.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1476,9 +514,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1488,9 +526,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/pi/src/main/resources/codegen-resources/service-2.json b/services/pi/src/main/resources/codegen-resources/service-2.json index d3a7e1cf536b..4a2840b5f600 100644 --- a/services/pi/src/main/resources/codegen-resources/service-2.json +++ b/services/pi/src/main/resources/codegen-resources/service-2.json @@ -487,6 +487,10 @@ "NextToken":{ "shape":"NextToken", "documentation":"

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by MaxRecords.

" + }, + "PeriodAlignment":{ + "shape":"PeriodAlignment", + "documentation":"

The returned timestamp which is the start or end time of the time periods. The default value is END_TIME.

" } } }, @@ -724,6 +728,13 @@ "documentation":"

The user is not authorized to perform this request.

", "exception":true }, + "PeriodAlignment":{ + "type":"string", + "enum":[ + "END_TIME", + "START_TIME" + ] + }, "RequestString":{ "type":"string", "max":256, diff --git a/services/pinpoint/pom.xml b/services/pinpoint/pom.xml index 383a431ae4be..08ae077f0635 100644 --- a/services/pinpoint/pom.xml +++ b/services/pinpoint/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT pinpoint AWS Java SDK :: Services :: Amazon Pinpoint diff --git a/services/pinpointemail/pom.xml b/services/pinpointemail/pom.xml index 7850d3fe7281..8f4b78a0798d 100644 --- a/services/pinpointemail/pom.xml +++ b/services/pinpointemail/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT pinpointemail AWS Java SDK :: Services :: Pinpoint Email diff --git a/services/pinpointsmsvoice/pom.xml b/services/pinpointsmsvoice/pom.xml index 61dfcd9add46..ccd6990f6058 100644 --- a/services/pinpointsmsvoice/pom.xml +++ b/services/pinpointsmsvoice/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT pinpointsmsvoice AWS Java SDK :: Services :: Pinpoint SMS Voice diff --git a/services/pinpointsmsvoicev2/pom.xml b/services/pinpointsmsvoicev2/pom.xml index 3ca3d0a599de..44532b1fd33c 100644 --- a/services/pinpointsmsvoicev2/pom.xml +++ b/services/pinpointsmsvoicev2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT pinpointsmsvoicev2 AWS Java SDK :: Services :: Pinpoint SMS Voice V2 diff --git a/services/pipes/pom.xml b/services/pipes/pom.xml index 6fee859451ef..be9f80e98a12 100644 --- a/services/pipes/pom.xml +++ b/services/pipes/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT pipes AWS Java SDK :: Services :: Pipes diff --git a/services/pipes/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/pipes/src/main/resources/codegen-resources/endpoint-rule-set.json index 4872229c5ccb..29e73f0ed246 100644 --- a/services/pipes/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/pipes/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pipes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://pipes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pipes-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://pipes-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pipes.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://pipes.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pipes.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://pipes.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/pipes/src/main/resources/codegen-resources/endpoint-tests.json b/services/pipes/src/main/resources/codegen-resources/endpoint-tests.json index 6fbff86af972..a94a4fe7c642 100644 --- a/services/pipes/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/pipes/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -110,9 +110,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -123,9 +123,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { @@ -134,9 +134,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -147,9 +147,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { @@ -160,9 +160,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -173,9 +173,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -186,9 +186,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -199,9 +199,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -210,9 +210,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -223,9 +223,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -234,9 +234,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -247,9 +247,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -260,9 +260,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -272,9 +272,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -284,9 +284,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/pipes/src/main/resources/codegen-resources/service-2.json b/services/pipes/src/main/resources/codegen-resources/service-2.json index a2ef7e513008..860d486078cc 100644 --- a/services/pipes/src/main/resources/codegen-resources/service-2.json +++ b/services/pipes/src/main/resources/codegen-resources/service-2.json @@ -186,7 +186,7 @@ {"shape":"NotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Update an existing pipe. When you call UpdatePipe, only the fields that are included in the request are changed, the rest are unchanged. The exception to this is if you modify any Amazon Web Services-service specific fields in the SourceParameters, EnrichmentParameters, or TargetParameters objects. The fields in these objects are updated atomically as one and override existing values. This is by design and means that if you don't specify an optional field in one of these Parameters objects, that field will be set to its system-default value after the update.

 <p>For more information about pipes, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html"> Amazon EventBridge Pipes</a> in the Amazon EventBridge User Guide.</p> 
", + "documentation":"

Update an existing pipe. When you call UpdatePipe, only the fields that are included in the request are changed, the rest are unchanged. The exception to this is if you modify any Amazon Web Services-service specific fields in the SourceParameters, EnrichmentParameters, or TargetParameters objects. The fields in these objects are updated atomically as one and override existing values. This is by design and means that if you don't specify an optional field in one of these Parameters objects, that field will be set to its system-default value after the update.

For more information about pipes, see Amazon EventBridge Pipes in the Amazon EventBridge User Guide.

", "idempotent":true } }, @@ -195,19 +195,19 @@ "type":"string", "max":1600, "min":1, - "pattern":"^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)$" + "pattern":"^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" }, "ArnOrJsonPath":{ "type":"string", "max":1600, "min":1, - "pattern":"^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern":"^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" }, "ArnOrUrl":{ "type":"string", "max":1600, "min":1, - "pattern":"^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)$" + "pattern":"^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" }, "AssignPublicIp":{ "type":"string", @@ -874,7 +874,7 @@ "type":"string", "max":50, "min":1, - "pattern":"^[A-Za-z0-9\\-]+[\\.][A-Za-z0-9\\-]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern":"^[A-Za-z0-9\\-]+[\\.][A-Za-z0-9\\-]+$", "sensitive":true }, "EventBridgeEventResourceList":{ @@ -887,7 +887,7 @@ "type":"string", "max":256, "min":1, - "pattern":"(?=[/\\.\\-_A-Za-z0-9]+)((?!aws\\.).*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)", + "pattern":"(?=[/\\.\\-_A-Za-z0-9]+)((?!aws\\.).*)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)", "sensitive":true }, "EventPattern":{ @@ -926,7 +926,7 @@ "type":"string", "max":512, "min":0, - "pattern":"^[!#$%&'*+-.^_`|~0-9a-zA-Z]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern":"^[!#$%&'*+-.^_`|~0-9a-zA-Z]+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" }, "HeaderParametersMap":{ "type":"map", @@ -937,7 +937,7 @@ "type":"string", "max":512, "min":0, - "pattern":"^[ \\t]*[\\x20-\\x7E]+([ \\t]+[\\x20-\\x7E]+)*[ \\t]*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern":"^[ \\t]*[\\x20-\\x7E]+([ \\t]+[\\x20-\\x7E]+)*[ \\t]*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", "sensitive":true }, "InputTemplate":{ @@ -971,7 +971,7 @@ "type":"string", "max":256, "min":1, - "pattern":"^\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*$" + "pattern":"^\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*$" }, "KafkaBootstrapServers":{ "type":"list", @@ -1020,12 +1020,6 @@ "max":100, "min":1 }, - "LimitMax1000":{ - "type":"integer", - "box":true, - "max":1000, - "min":1 - }, "LimitMax10000":{ "type":"integer", "box":true, @@ -1229,11 +1223,11 @@ "type":"string", "max":1600, "min":0, - "pattern":"^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)$" + "pattern":"^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" }, "PathParameter":{ "type":"string", - "pattern":"^(?!\\s*$).+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern":"^(?!\\s*$).+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", "sensitive":true }, "PathParameterList":{ @@ -1292,7 +1286,7 @@ "type":"string", "max":1600, "min":1, - "pattern":"^arn:aws([a-z]|\\-)*:([a-zA-Z0-9\\-]+):([a-z]|\\d|\\-)*:([0-9]{12})?:(.*)$" + "pattern":"^arn:aws([a-z]|\\-)*:([a-zA-Z0-9\\-]+):([a-z]|\\d|\\-)*:([0-9]{12})?:(.+)$" }, "PipeDescription":{ "type":"string", @@ -1374,7 +1368,7 @@ "required":["StartingPosition"], "members":{ "BatchSize":{ - "shape":"LimitMax1000", + "shape":"LimitMax10000", "documentation":"

The maximum number of records to include in each batch.

" }, "DeadLetterConfig":{ @@ -2017,7 +2011,7 @@ "type":"string", "max":512, "min":0, - "pattern":"^[^\\x00-\\x1F\\x7F]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern":"^[^\\x00-\\x1F\\x7F]+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" }, "QueryStringParametersMap":{ "type":"map", @@ -2028,7 +2022,7 @@ "type":"string", "max":512, "min":0, - "pattern":"^[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern":"^[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", "sensitive":true }, "ReferenceId":{ @@ -2091,7 +2085,7 @@ "type":"string", "max":256, "min":1, - "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", "sensitive":true }, "SageMakerPipelineParameterValue":{ @@ -2105,20 +2099,20 @@ "documentation":"

// Optional SecretManager ARN which stores the database credentials

", "max":1600, "min":1, - "pattern":"^(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern":"^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$" }, "SecretManagerArnOrJsonPath":{ "type":"string", "documentation":"

// For targets, can either specify an ARN or a jsonpath pointing to the ARN.

", "max":1600, "min":1, - "pattern":"^(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern":"^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" }, "SecurityGroup":{ "type":"string", "max":1024, "min":1, - "pattern":"^sg-[0-9a-zA-Z]*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern":"^sg-[0-9a-zA-Z]*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", "sensitive":true }, "SecurityGroupId":{ @@ -2331,7 +2325,7 @@ "type":"string", "max":1024, "min":1, - "pattern":"^subnet-[0-9a-z]*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern":"^subnet-[0-9a-z]*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", "sensitive":true }, "SubnetId":{ @@ -2584,7 +2578,7 @@ "type":"structure", "members":{ "BatchSize":{ - "shape":"LimitMax1000", + "shape":"LimitMax10000", "documentation":"

The maximum number of records to include in each batch.

" }, "DeadLetterConfig":{ diff --git a/services/polly/pom.xml b/services/polly/pom.xml index ec5048eaf928..7e7bebbdb9bf 100644 --- a/services/polly/pom.xml +++ b/services/polly/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT polly AWS Java SDK :: Services :: Amazon Polly diff --git a/services/polly/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/polly/src/main/resources/codegen-resources/endpoint-rule-set.json index 7000433722d4..52b2277d14f1 100644 --- a/services/polly/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/polly/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://polly-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://polly-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://polly-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://polly.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://polly-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://polly.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://polly.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://polly.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/polly/src/main/resources/codegen-resources/endpoint-tests.json b/services/polly/src/main/resources/codegen-resources/endpoint-tests.json index c016bb9d2052..e1561a79081f 100644 --- a/services/polly/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/polly/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,562 +1,42 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.eu-west-1.amazonaws.com" + "url": "https://polly.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.eu-west-1.amazonaws.com" + "url": "https://polly.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.ap-northeast-2.amazonaws.com" + "url": "https://polly.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" + "UseFIPS": false } }, { @@ -567,152 +47,139 @@ } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.ap-northeast-1.amazonaws.com" + "url": "https://polly.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.ap-northeast-1.api.aws" + "url": "https://polly.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.ap-northeast-1.amazonaws.com" + "url": "https://polly.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.me-south-1.api.aws" + "url": "https://polly.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.me-south-1.amazonaws.com" + "url": "https://polly.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.me-south-1.api.aws" + "url": "https://polly.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.me-south-1.amazonaws.com" + "url": "https://polly.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.sa-east-1.api.aws" + "url": "https://polly.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.sa-east-1.amazonaws.com" + "url": "https://polly.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.sa-east-1.api.aws" + "url": "https://polly.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -723,377 +190,352 @@ } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.ap-east-1.api.aws" + "url": "https://polly.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.ap-east-1.amazonaws.com" + "url": "https://polly-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "UseFIPS": true } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.ap-east-1.api.aws" + "url": "https://polly.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.ap-east-1.amazonaws.com" + "url": "https://polly-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.us-gov-west-1.api.aws" + "url": "https://polly.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.us-gov-west-1.amazonaws.com" + "url": "https://polly-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": true } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.us-gov-west-1.api.aws" + "url": "https://polly.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.us-gov-west-1.amazonaws.com" + "url": "https://polly-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://polly-fips.ap-southeast-1.api.aws" + "url": "https://polly-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://polly-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://polly.ap-southeast-1.api.aws" + "url": "https://polly.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.ap-southeast-1.amazonaws.com" + "url": "https://polly.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://polly-fips.ap-southeast-2.api.aws" + "url": "https://polly-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.ap-southeast-2.amazonaws.com" + "url": "https://polly-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://polly.ap-southeast-2.api.aws" + "url": "https://polly.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.ap-southeast-2.amazonaws.com" + "url": "https://polly.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.us-east-1.api.aws" + "url": "https://polly.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.us-east-1.amazonaws.com" + "url": "https://polly-fips.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://polly.us-east-1.api.aws" + "url": "https://polly-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.us-east-1.amazonaws.com" + "url": "https://polly-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://polly-fips.us-east-2.api.aws" + "url": "https://polly.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.us-east-2.amazonaws.com" + "url": "https://polly.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://polly.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.us-east-2.amazonaws.com" + "url": "https://polly-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://polly.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://polly-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://polly.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://polly.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://polly.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "cn-northwest-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1102,7 +544,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1112,9 +553,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1124,9 +565,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/polly/src/main/resources/codegen-resources/service-2.json b/services/polly/src/main/resources/codegen-resources/service-2.json index 34e7e573deb0..37736df2d508 100644 --- a/services/polly/src/main/resources/codegen-resources/service-2.json +++ b/services/polly/src/main/resources/codegen-resources/service-2.json @@ -1099,7 +1099,9 @@ "Adriano", "Thiago", "Ruth", - "Stephen" + "Stephen", + "Kazuha", + "Tomoko" ] }, "VoiceList":{ diff --git a/services/pom.xml b/services/pom.xml index ea8169c09b12..68c318d09408 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -17,7 +17,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT services AWS Java SDK :: Services @@ -359,6 +359,10 @@ kendraranking cleanrooms cloudtraildata + tnb + internetmonitor + ivsrealtime + vpclattice The AWS Java SDK services https://aws.amazon.com/sdkforjava diff --git a/services/pricing/pom.xml b/services/pricing/pom.xml index 155c86828f4a..5ba04c23a067 100644 --- a/services/pricing/pom.xml +++ b/services/pricing/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 pricing diff --git a/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json index 4668df6b4abd..4d15779673a7 100644 --- a/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/pricing/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,174 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.pricing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", "rules": [ { - "conditions": [], + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], "endpoint": { - "url": "https://api.pricing-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://api.pricing.{Region}.amazonaws.com", "properties": {}, "headers": {} }, "type": "endpoint" - } - ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "conditions": [], + "endpoint": { + "url": "https://api.pricing.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.pricing.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://api.pricing.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/pricing/src/main/resources/codegen-resources/endpoint-tests.json b/services/pricing/src/main/resources/codegen-resources/endpoint-tests.json index cfda43161bf3..6d77c402ab9b 100644 --- a/services/pricing/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/pricing/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,120 +1,250 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.pricing-fips.ap-south-1.api.aws" + "url": "https://api.pricing.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.pricing-fips.ap-south-1.amazonaws.com" + "url": "https://api.pricing-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.pricing.ap-south-1.api.aws" + "url": "https://api.pricing.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.pricing.ap-south-1.amazonaws.com" + "url": "https://api.pricing-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.pricing-fips.us-east-1.api.aws" + "url": "https://api.pricing.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.pricing-fips.us-east-1.amazonaws.com" + "url": "https://api.pricing.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://api.pricing.us-east-1.api.aws" + "url": "https://api.pricing-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://api.pricing.us-east-1.amazonaws.com" + "url": "https://api.pricing-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -124,9 +254,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -136,9 +266,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/pricing/src/main/resources/codegen-resources/paginators-1.json b/services/pricing/src/main/resources/codegen-resources/paginators-1.json index f4b247c29ace..a5ebc8352635 100644 --- a/services/pricing/src/main/resources/codegen-resources/paginators-1.json +++ b/services/pricing/src/main/resources/codegen-resources/paginators-1.json @@ -3,17 +3,26 @@ "DescribeServices": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "Services" }, "GetAttributeValues": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "AttributeValues" }, "GetProducts": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "PriceList" + }, + "ListPriceLists": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "PriceLists" } } } diff --git a/services/pricing/src/main/resources/codegen-resources/service-2.json b/services/pricing/src/main/resources/codegen-resources/service-2.json index 27adad05fa5c..1b648c420ccb 100644 --- a/services/pricing/src/main/resources/codegen-resources/service-2.json +++ b/services/pricing/src/main/resources/codegen-resources/service-2.json @@ -48,6 +48,22 @@ ], "documentation":"

Returns a list of attribute values. Attributes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the Billing and Cost Management User Guide.

" }, + "GetPriceListFileUrl":{ + "name":"GetPriceListFileUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPriceListFileUrlRequest"}, + "output":{"shape":"GetPriceListFileUrlResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

This returns the URL that you can retrieve your Price List file from. This URL is based on the PriceListArn and FileFormat that you retrieve from the ListPriceLists response.

" + }, "GetProducts":{ "name":"GetProducts", "http":{ @@ -64,9 +80,35 @@ {"shape":"ExpiredNextTokenException"} ], "documentation":"

Returns a list of all products that match the filter criteria.

" + }, + "ListPriceLists":{ + "name":"ListPriceLists", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPriceListsRequest"}, + "output":{"shape":"ListPriceListsResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

This returns a list of Price List references that the requester if authorized to view, given a ServiceCode, CurrencyCode, and an EffectiveDate. Use without a RegionCode filter to list Price List references from all available Amazon Web Services Regions. Use with a RegionCode filter to get the Price List reference that's specific to a specific Amazon Web Services Region. You can use the PriceListArn from the response to get your preferred Price List files through the GetPriceListFileUrl API.

" } }, "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"

General authentication failure. The request wasn't signed correctly.

", + "exception":true + }, "AttributeNameList":{ "type":"list", "member":{"shape":"String"} @@ -90,6 +132,10 @@ "max":100, "min":1 }, + "CurrencyCode":{ + "type":"string", + "pattern":"^[A-Z]{3}$" + }, "DescribeServicesRequest":{ "type":"structure", "members":{ @@ -129,6 +175,7 @@ } } }, + "EffectiveDate":{"type":"timestamp"}, "ExpiredNextTokenException":{ "type":"structure", "members":{ @@ -137,6 +184,15 @@ "documentation":"

The pagination token expired. Try again without a pagination token.

", "exception":true }, + "FileFormat":{ + "type":"string", + "max":255, + "min":1 + }, + "FileFormats":{ + "type":"list", + "member":{"shape":"FileFormat"} + }, "Filter":{ "type":"structure", "required":[ @@ -155,7 +211,7 @@ }, "Value":{ "shape":"String", - "documentation":"

The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as AmazonEC2. If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume.

" + "documentation":"

The service code or attribute value that you want to filter by. If you're filtering by service code this is the actual service code, such as AmazonEC2. If you're filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume.

" } }, "documentation":"

The constraints that you want all returned products to match.

" @@ -207,6 +263,32 @@ } } }, + "GetPriceListFileUrlRequest":{ + "type":"structure", + "required":[ + "PriceListArn", + "FileFormat" + ], + "members":{ + "PriceListArn":{ + "shape":"PriceListArn", + "documentation":"

The unique identifier that maps to where your Price List files are located. PriceListArn can be obtained from the ListPriceLists response.

" + }, + "FileFormat":{ + "shape":"FileFormat", + "documentation":"

The format that you want to retrieve your Price List files in. The FileFormat can be obtained from the ListPriceLists response.

" + } + } + }, + "GetPriceListFileUrlResponse":{ + "type":"structure", + "members":{ + "Url":{ + "shape":"String", + "documentation":"

The URL to download your Price List file from.

" + } + } + }, "GetProductsRequest":{ "type":"structure", "required":["ServiceCode"], @@ -275,6 +357,58 @@ "documentation":"

One or more parameters had an invalid value.

", "exception":true }, + "ListPriceListsRequest":{ + "type":"structure", + "required":[ + "ServiceCode", + "EffectiveDate", + "CurrencyCode" + ], + "members":{ + "ServiceCode":{ + "shape":"ServiceCode", + "documentation":"

The service code or the Savings Plan service code for the attributes that you want to retrieve. For example, to get the list of applicable Amazon EC2 price lists, use AmazonEC2. For a full list of service codes containing On-Demand and Reserved Instance (RI) pricing, use the DescribeServices API.

To retrieve the Compute Savings Plan price lists, use ComputeSavingsPlans. To retrieve Machine Learning Savings Plans price lists, use MachineLearningSavingsPlans.

" + }, + "EffectiveDate":{ + "shape":"EffectiveDate", + "documentation":"

The date that the Price List file prices are effective from.

" + }, + "RegionCode":{ + "shape":"RegionCode", + "documentation":"

This is used to filter the Price List by Amazon Web Services Region. For example, to get the price list only for the US East (N. Virginia) Region, use us-east-1. If nothing is specified, you retrieve price lists for all applicable Regions. The available RegionCode list can be retrieved from GetAttributeValues API.

" + }, + "CurrencyCode":{ + "shape":"CurrencyCode", + "documentation":"

The three alphabetical character ISO-4217 currency code that the Price List files are denominated in.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The pagination token that indicates the next set of results that you want to retrieve.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return in the response.

" + } + } + }, + "ListPriceListsResponse":{ + "type":"structure", + "members":{ + "PriceLists":{ + "shape":"PriceLists", + "documentation":"

The type of price list references that match your request.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The pagination token that indicates the next set of results to retrieve.

" + } + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, "NotFoundException":{ "type":"structure", "members":{ @@ -283,6 +417,34 @@ "documentation":"

The requested resource can't be found.

", "exception":true }, + "PriceList":{ + "type":"structure", + "members":{ + "PriceListArn":{ + "shape":"PriceListArn", + "documentation":"

The unique identifier that maps to where your Price List files are located. PriceListArn can be obtained from the ListPriceList response.

" + }, + "RegionCode":{ + "shape":"RegionCode", + "documentation":"

This is used to filter the Price List by Amazon Web Services Region. For example, to get the price list only for the US East (N. Virginia) Region, use us-east-1. If nothing is specified, you retrieve price lists for all applicable Regions. The available RegionCode list can be retrieved from GetAttributeValues API.

" + }, + "CurrencyCode":{ + "shape":"CurrencyCode", + "documentation":"

The three alphabetical character ISO-4217 currency code the Price List files are denominated in.

" + }, + "FileFormats":{ + "shape":"FileFormats", + "documentation":"

The format you want to retrieve your Price List files. The FileFormat can be obtained from the ListPriceList response.

" + } + }, + "documentation":"

This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

This is the type of price list references that match your request.

" + }, + "PriceListArn":{ + "type":"string", + "max":2048, + "min":18, + "pattern":"^arn:.+:pricing::.*:price-list/.{1,255}/.{1,32}/[A-Z]{3}/[0-9]{14}/[^/]*$" + }, "PriceListJsonItem":{"type":"string"}, "PriceListJsonItems":{ "type":"list", @@ -291,6 +453,15 @@ "jsonvalue":true } }, + "PriceLists":{ + "type":"list", + "member":{"shape":"PriceList"} + }, + "RegionCode":{ + "type":"string", + "max":255, + "min":1 + }, "Service":{ "type":"structure", "required":["ServiceCode"], @@ -306,6 +477,11 @@ }, "documentation":"

The metadata for a service, such as the service code and available attribute names.

" }, + "ServiceCode":{ + "type":"string", + "max":32, + "min":1 + }, "ServiceList":{ "type":"list", "member":{"shape":"Service"} diff --git a/services/privatenetworks/pom.xml b/services/privatenetworks/pom.xml index 6449ef7085d1..6f207388f5f6 100644 --- a/services/privatenetworks/pom.xml +++ b/services/privatenetworks/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT privatenetworks AWS Java SDK :: Services :: Private Networks diff --git a/services/privatenetworks/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/privatenetworks/src/main/resources/codegen-resources/endpoint-rule-set.json index 98ea1aca0894..ea9a97d1fd47 100644 --- a/services/privatenetworks/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/privatenetworks/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://private-networks-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://private-networks-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://private-networks-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://private-networks-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://private-networks.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://private-networks.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://private-networks.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://private-networks.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/privatenetworks/src/main/resources/codegen-resources/endpoint-tests.json b/services/privatenetworks/src/main/resources/codegen-resources/endpoint-tests.json index 9a44c67e7600..24fcde110fb5 100644 --- a/services/privatenetworks/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/privatenetworks/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,172 +1,237 @@ { "testCases": [ { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://private-networks-fips.us-west-2.api.aws" + "url": "https://private-networks-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": true, - "Region": "us-west-2" + "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://private-networks-fips.us-west-2.amazonaws.com" + "url": "https://private-networks-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-west-2" + "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://private-networks.us-west-2.api.aws" + "url": "https://private-networks.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": true, - "Region": "us-west-2" + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://private-networks.us-west-2.amazonaws.com" + "url": "https://private-networks.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-west-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://private-networks-fips.us-east-1.api.aws" + "url": "https://private-networks-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://private-networks-fips.us-east-1.amazonaws.com" + "url": "https://private-networks-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://private-networks.us-east-1.api.aws" + "url": "https://private-networks.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://private-networks.us-east-1.amazonaws.com" + "url": "https://private-networks.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://private-networks-fips.us-east-2.api.aws" + "url": "https://private-networks-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://private-networks-fips.us-east-2.amazonaws.com" + "url": "https://private-networks-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://private-networks.us-east-2.api.aws" + "url": "https://private-networks.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://private-networks.us-east-2.amazonaws.com" + "url": "https://private-networks.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "us-east-2" + "UseFIPS": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseDualStack": false, - "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -176,9 +241,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -188,9 +253,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/privatenetworks/src/main/resources/codegen-resources/service-2.json b/services/privatenetworks/src/main/resources/codegen-resources/service-2.json index 26848719f29a..e1d92a841196 100644 --- a/services/privatenetworks/src/main/resources/codegen-resources/service-2.json +++ b/services/privatenetworks/src/main/resources/codegen-resources/service-2.json @@ -141,6 +141,7 @@ "output":{"shape":"DeleteNetworkResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], @@ -158,6 +159,7 @@ "output":{"shape":"DeleteNetworkSiteResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], @@ -258,7 +260,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists device identifiers. Add filters to your request to return a more specific list of results. Use filters to match the Amazon Resource Name (ARN) of an order, the status of device identifiers, or the ARN of the traffic group.

 <p>If you specify multiple filters, filters are joined with an OR, and the request 

returns results that match all of the specified filters.

" + "documentation":"

Lists device identifiers. Add filters to your request to return a more specific list of results. Use filters to match the Amazon Resource Name (ARN) of an order, the status of device identifiers, or the ARN of the traffic group.

If you specify multiple filters, filters are joined with an OR, and the request returns results that match all of the specified filters.

" }, "ListNetworkResources":{ "name":"ListNetworkResources", @@ -355,6 +357,23 @@ ], "documentation":"

Checks the health of the service.

" }, + "StartNetworkResourceUpdate":{ + "name":"StartNetworkResourceUpdate", + "http":{ + "method":"POST", + "requestUri":"/v1/network-resources/update", + "responseCode":200 + }, + "input":{"shape":"StartNetworkResourceUpdateRequest"}, + "output":{"shape":"StartNetworkResourceUpdateResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Starts an update of the specified network resource.

After you submit a request to replace or return a network resource, the status of the network resource is CREATING_SHIPPING_LABEL. The shipping label is available when the status of the network resource is PENDING_RETURN. After the network resource is successfully returned, its status is DELETED. For more information, see Return a radio unit.

", + "idempotent":true + }, "TagResource":{ "name":"TagResource", "http":{ @@ -1106,8 +1125,7 @@ }, "maxResults":{ "shape":"ListDeviceIdentifiersRequestMaxResultsInteger", - "documentation":"

The maximum number of results to return.

", - "box":true + "documentation":"

The maximum number of results to return.

" }, "networkArn":{ "shape":"Arn", @@ -1148,8 +1166,7 @@ }, "maxResults":{ "shape":"ListNetworkResourcesRequestMaxResultsInteger", - "documentation":"

The maximum number of results to return.

", - "box":true + "documentation":"

The maximum number of results to return.

" }, "networkArn":{ "shape":"Arn", @@ -1190,8 +1207,7 @@ }, "maxResults":{ "shape":"ListNetworkSitesRequestMaxResultsInteger", - "documentation":"

The maximum number of results to return.

", - "box":true + "documentation":"

The maximum number of results to return.

" }, "networkArn":{ "shape":"Arn", @@ -1231,8 +1247,7 @@ }, "maxResults":{ "shape":"ListNetworksRequestMaxResultsInteger", - "documentation":"

The maximum number of results to return.

", - "box":true + "documentation":"

The maximum number of results to return.

" }, "startToken":{ "shape":"PaginationToken", @@ -1269,8 +1284,7 @@ }, "maxResults":{ "shape":"ListOrdersRequestMaxResultsInteger", - "documentation":"

The maximum number of results to return.

", - "box":true + "documentation":"

The maximum number of results to return.

" }, "networkArn":{ "shape":"Arn", @@ -1442,6 +1456,10 @@ "shape":"Position", "documentation":"

The position of the network resource.

" }, + "returnInformation":{ + "shape":"ReturnInformation", + "documentation":"

Information about a request to return the network resource.

" + }, "serialNumber":{ "shape":"String", "documentation":"

The serial number of the network resource.

" @@ -1533,7 +1551,8 @@ "AVAILABLE", "DELETING", "PENDING_RETURN", - "DELETED" + "DELETED", + "CREATING_SHIPPING_LABEL" ] }, "NetworkResourceType":{ @@ -1755,6 +1774,28 @@ }, "exception":true }, + "ReturnInformation":{ + "type":"structure", + "members":{ + "replacementOrderArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the replacement order.

" + }, + "returnReason":{ + "shape":"String", + "documentation":"

The reason for the return. If the return request did not include a reason for the return, this value is null.

" + }, + "shippingAddress":{ + "shape":"Address", + "documentation":"

The shipping address.

" + }, + "shippingLabel":{ + "shape":"String", + "documentation":"

The URL of the shipping label. The shipping label is available for download only if the status of the network resource is PENDING_RETURN. For more information, see Return a radio unit.

" + } + }, + "documentation":"

Information about a request to return a network resource.

" + }, "SitePlan":{ "type":"structure", "members":{ @@ -1769,6 +1810,45 @@ }, "documentation":"

Information about a site plan.

" }, + "StartNetworkResourceUpdateRequest":{ + "type":"structure", + "required":[ + "networkResourceArn", + "updateType" + ], + "members":{ + "networkResourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network resource.

" + }, + "returnReason":{ + "shape":"StartNetworkResourceUpdateRequestReturnReasonString", + "documentation":"

The reason for the return. Providing a reason for a return is optional.

" + }, + "shippingAddress":{ + "shape":"Address", + "documentation":"

The shipping address. If you don't provide a shipping address when replacing or returning a network resource, we use the address from the original order for the network resource.

" + }, + "updateType":{ + "shape":"UpdateType", + "documentation":"

The update type.

  • REPLACE - Submits a request to replace a defective radio unit. We provide a shipping label that you can use for the return process and we ship a replacement radio unit to you.

  • RETURN - Submits a request to replace a radio unit that you no longer need. We provide a shipping label that you can use for the return process.

" + } + } + }, + "StartNetworkResourceUpdateRequestReturnReasonString":{ + "type":"string", + "max":1000, + "min":0 + }, + "StartNetworkResourceUpdateResponse":{ + "type":"structure", + "members":{ + "networkResource":{ + "shape":"NetworkResource", + "documentation":"

The network resource.

" + } + } + }, "String":{"type":"string"}, "TagKey":{ "type":"string", @@ -1930,6 +2010,13 @@ } } }, + "UpdateType":{ + "type":"string", + "enum":[ + "REPLACE", + "RETURN" + ] + }, "ValidationException":{ "type":"structure", "required":[ diff --git a/services/proton/pom.xml b/services/proton/pom.xml index 1944996f7de1..58eac57be8e3 100644 --- a/services/proton/pom.xml +++ b/services/proton/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT proton AWS Java SDK :: Services :: Proton diff --git a/services/proton/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/proton/src/main/resources/codegen-resources/endpoint-rule-set.json index 6c6fa3e77158..ddd3a046e583 100644 --- a/services/proton/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/proton/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://proton-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://proton-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://proton-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://proton-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://proton.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://proton.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://proton.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://proton.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/proton/src/main/resources/codegen-resources/endpoint-tests.json b/services/proton/src/main/resources/codegen-resources/endpoint-tests.json index 9aba7e293da1..fd7da6d333f0 100644 --- a/services/proton/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/proton/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,81 +1,107 @@ { "testCases": [ { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton-fips.us-gov-east-1.api.aws" + "url": "https://proton.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton-fips.us-gov-east-1.amazonaws.com" + "url": "https://proton.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton.us-gov-east-1.api.aws" + "url": "https://proton.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton.us-gov-east-1.amazonaws.com" + "url": "https://proton.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton-fips.us-isob-east-1.sc2s.sgov.gov" + "url": "https://proton.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton.us-isob-east-1.sc2s.sgov.gov" + "url": "https://proton-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { @@ -87,8 +113,8 @@ }, "params": { "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { @@ -100,8 +126,8 @@ }, "params": { "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { @@ -113,8 +139,8 @@ }, "params": { "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { @@ -126,142 +152,174 @@ }, "params": { "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://proton-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://proton-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton.us-iso-east-1.c2s.ic.gov" + "url": "https://proton-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": false + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://proton.us-west-2.amazonaws.com" + "url": "https://proton.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton.us-east-1.amazonaws.com" + "url": "https://proton.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://proton.us-east-2.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton.eu-west-1.amazonaws.com" + "url": "https://proton-fips.us-iso-east-1.c2s.ic.gov" } }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton.ap-northeast-1.amazonaws.com" + "url": "https://proton.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton-fips.us-east-1.api.aws" + "url": "https://proton-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://proton-fips.us-east-1.amazonaws.com" + "url": "https://proton.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://proton.us-east-1.api.aws" + "url": "https://example.com" } }, "params": { "UseFIPS": false, + "UseDualStack": false, "Region": "us-east-1", - "UseDualStack": true + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -269,7 +327,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -281,8 +338,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -293,10 +350,16 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/proton/src/main/resources/codegen-resources/service-2.json b/services/proton/src/main/resources/codegen-resources/service-2.json index 6eed66e5f77c..35dbe3926f19 100644 --- a/services/proton/src/main/resources/codegen-resources/service-2.json +++ b/services/proton/src/main/resources/codegen-resources/service-2.json @@ -241,6 +241,44 @@ "documentation":"

Create an Proton service. An Proton service is an instantiation of a service template and often includes several service instances and pipeline. For more information, see Services in the Proton User Guide.

", "idempotent":true }, + "CreateServiceInstance":{ + "name":"CreateServiceInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateServiceInstanceInput"}, + "output":{"shape":"CreateServiceInstanceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Create a service instance.

", + "idempotent":true + }, + "CreateServiceSyncConfig":{ + "name":"CreateServiceSyncConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateServiceSyncConfigInput"}, + "output":{"shape":"CreateServiceSyncConfigOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Create the Proton Ops configuration file.

", + "idempotent":true + }, "CreateServiceTemplate":{ "name":"CreateServiceTemplate", "http":{ @@ -432,6 +470,25 @@ "documentation":"

Delete a service, with its instances and pipeline.

You can't delete a service if it has any service instances that have components attached to them.

For more information about components, see Proton components in the Proton User Guide.

", "idempotent":true }, + "DeleteServiceSyncConfig":{ + "name":"DeleteServiceSyncConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteServiceSyncConfigInput"}, + "output":{"shape":"DeleteServiceSyncConfigOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Delete the Proton Ops file.

", + "idempotent":true + }, "DeleteServiceTemplate":{ "name":"DeleteServiceTemplate", "http":{ @@ -639,7 +696,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get counts of Proton resources.

For infrastructure-provisioning resources (environments, services, service instances, pipelines), the action returns staleness counts. A resource is stale when it's behind the recommended version of the Proton template that it uses and it needs an update to become current.

The action returns staleness counts (counts of resources that are up-to-date, behind a template major version, or behind a template minor version), the total number of resources, and the number of resources that are in a failed state, grouped by resource type. Components, environments, and service templates are exceptions—see the components, environments, and serviceTemplates field descriptions.

For context, the action also returns the total number of each type of Proton template in the Amazon Web Services account.

For more information, see Proton dashboard in the Proton User Guide.

" + "documentation":"

Get counts of Proton resources.

For infrastructure-provisioning resources (environments, services, service instances, pipelines), the action returns staleness counts. A resource is stale when it's behind the recommended version of the Proton template that it uses and it needs an update to become current.

The action returns staleness counts (counts of resources that are up-to-date, behind a template major version, or behind a template minor version), the total number of resources, and the number of resources that are in a failed state, grouped by resource type. Components, environments, and service templates return less information - see the components, environments, and serviceTemplates field descriptions.

For context, the action also returns the total number of each type of Proton template in the Amazon Web Services account.

For more information, see Proton dashboard in the Proton User Guide.

" }, "GetService":{ "name":"GetService", @@ -675,6 +732,57 @@ ], "documentation":"

Get detailed data for a service instance. A service instance is an instantiation of service template and it runs in a specific environment.

" }, + "GetServiceInstanceSyncStatus":{ + "name":"GetServiceInstanceSyncStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetServiceInstanceSyncStatusInput"}, + "output":{"shape":"GetServiceInstanceSyncStatusOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get the status of the synced service instance.

" + }, + "GetServiceSyncBlockerSummary":{ + "name":"GetServiceSyncBlockerSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetServiceSyncBlockerSummaryInput"}, + "output":{"shape":"GetServiceSyncBlockerSummaryOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get detailed data for the service sync blocker summary.

" + }, + "GetServiceSyncConfig":{ + "name":"GetServiceSyncConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetServiceSyncConfigInput"}, + "output":{"shape":"GetServiceSyncConfigOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get detailed information for the service sync configuration.

" + }, "GetServiceTemplate":{ "name":"GetServiceTemplate", "http":{ @@ -1317,6 +1425,42 @@ ], "documentation":"

Update the service pipeline.

There are four modes for updating a service pipeline. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the service pipeline is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include major or minor version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the service pipeline is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the service pipeline is deployed and updated with the published, recommended (latest) major and minor version of the current template by default. You can specify a different major version that's higher than the major version in use and a minor version.

" }, + "UpdateServiceSyncBlocker":{ + "name":"UpdateServiceSyncBlocker", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateServiceSyncBlockerInput"}, + "output":{"shape":"UpdateServiceSyncBlockerOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Update the service sync blocker by resolving it.

" + }, + "UpdateServiceSyncConfig":{ + "name":"UpdateServiceSyncConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateServiceSyncConfigInput"}, + "output":{"shape":"UpdateServiceSyncConfigOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Update the Proton Ops config file.

" + }, "UpdateServiceTemplate":{ "name":"UpdateServiceTemplate", "http":{ @@ -1430,6 +1574,17 @@ "type":"string", "pattern":"^\\d{12}$" }, + "BlockerStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "RESOLVED" + ] + }, + "BlockerType":{ + "type":"string", + "enum":["AUTOMATED"] + }, "Boolean":{ "type":"boolean", "box":true @@ -1608,6 +1763,10 @@ "shape":"ResourceName", "documentation":"

The name of the Proton environment that this component is associated with.

" }, + "lastClientRequestToken":{ + "shape":"String", + "documentation":"

The last token the client requested.

" + }, "lastDeploymentAttemptedAt":{ "shape":"Timestamp", "documentation":"

The time when a deployment of the component was last attempted.

" @@ -1727,7 +1886,7 @@ }, "environmentTemplates":{ "shape":"ResourceCountsSummary", - "documentation":"

The total number of environment templates in the Amazon Web Services account.

" + "documentation":"

The total number of environment templates in the Amazon Web Services account. The environmentTemplates object will only contain total members.

" }, "environments":{ "shape":"ResourceCountsSummary", @@ -1760,6 +1919,11 @@ "templateFile" ], "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client token for the created component.

", + "idempotencyToken":true + }, "description":{ "shape":"Description", "documentation":"

An optional customer-provided description of the component.

" @@ -2100,6 +2264,55 @@ } } }, + "CreateServiceInstanceInput":{ + "type":"structure", + "required":[ + "name", + "serviceName", + "spec" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client token of the service instance to create.

", + "idempotencyToken":true + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the service instance to create.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service the service instance is added to.

" + }, + "spec":{ + "shape":"SpecContents", + "documentation":"

The spec for the service instance you want to create.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

An optional list of metadata items that you can associate with the Proton service instance. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" + }, + "templateMajorVersion":{ + "shape":"TemplateVersionPart", + "documentation":"

To create a new major and minor version of the service template, exclude major Version.

" + }, + "templateMinorVersion":{ + "shape":"TemplateVersionPart", + "documentation":"

To create a new minor version of the service template, include a major Version.

" + } + } + }, + "CreateServiceInstanceOutput":{ + "type":"structure", + "required":["serviceInstance"], + "members":{ + "serviceInstance":{ + "shape":"ServiceInstance", + "documentation":"

The detailed data of the service instance being created.

" + } + } + }, "CreateServiceOutput":{ "type":"structure", "required":["service"], @@ -2110,6 +2323,47 @@ } } }, + "CreateServiceSyncConfigInput":{ + "type":"structure", + "required":[ + "branch", + "filePath", + "repositoryName", + "repositoryProvider", + "serviceName" + ], + "members":{ + "branch":{ + "shape":"GitBranchName", + "documentation":"

The repository branch for your Proton Ops file.

" + }, + "filePath":{ + "shape":"OpsFilePath", + "documentation":"

The path to the Proton Ops file.

" + }, + "repositoryName":{ + "shape":"RepositoryName", + "documentation":"

The repository name.

" + }, + "repositoryProvider":{ + "shape":"RepositoryProvider", + "documentation":"

The provider type for your repository.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service the Proton Ops file is for.

" + } + } + }, + "CreateServiceSyncConfigOutput":{ + "type":"structure", + "members":{ + "serviceSyncConfig":{ + "shape":"ServiceSyncConfig", + "documentation":"

The detailed data of the Proton Ops file.

" + } + } + }, "CreateServiceTemplateInput":{ "type":"structure", "required":["name"], @@ -2400,6 +2654,25 @@ } } }, + "DeleteServiceSyncConfigInput":{ + "type":"structure", + "required":["serviceName"], + "members":{ + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that you want to delete the service sync configuration for.

" + } + } + }, + "DeleteServiceSyncConfigOutput":{ + "type":"structure", + "members":{ + "serviceSyncConfig":{ + "shape":"ServiceSyncConfig", + "documentation":"

The detailed data for the service sync config.

" + } + } + }, "DeleteServiceTemplateInput":{ "type":"structure", "required":["name"], @@ -2591,7 +2864,7 @@ }, "provisioningRepository":{ "shape":"RepositoryBranch", - "documentation":"

The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

" + "documentation":"

The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

" }, "spec":{ "shape":"SpecContents", @@ -3318,7 +3591,7 @@ }, "serviceName":{ "shape":"ResourceName", - "documentation":"

The name of the service that the service instance belongs to.

" + "documentation":"

The name of the service that you want the service instance input for.

" } } }, @@ -3332,6 +3605,40 @@ } } }, + "GetServiceInstanceSyncStatusInput":{ + "type":"structure", + "required":[ + "serviceInstanceName", + "serviceName" + ], + "members":{ + "serviceInstanceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service instance that you want the sync status input for.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that the service instance belongs to.

" + } + } + }, + "GetServiceInstanceSyncStatusOutput":{ + "type":"structure", + "members":{ + "desiredState":{ + "shape":"Revision", + "documentation":"

The service instance sync desired state that's returned by Proton

" + }, + "latestSuccessfulSync":{ + "shape":"ResourceSyncAttempt", + "documentation":"

The detailed data of the latest successful sync with the service instance.

" + }, + "latestSync":{ + "shape":"ResourceSyncAttempt", + "documentation":"

The detailed data of the latest sync with the service instance.

" + } + } + }, "GetServiceOutput":{ "type":"structure", "members":{ @@ -3341,6 +3648,48 @@ } } }, + "GetServiceSyncBlockerSummaryInput":{ + "type":"structure", + "required":["serviceName"], + "members":{ + "serviceInstanceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service instance that you want to get the service sync blocker summary for. If given bothe the instance name and the service name, only the instance is blocked.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that you want to get the service sync blocker summary for. If given only the service name, all instances are blocked.

" + } + } + }, + "GetServiceSyncBlockerSummaryOutput":{ + "type":"structure", + "members":{ + "serviceSyncBlockerSummary":{ + "shape":"ServiceSyncBlockerSummary", + "documentation":"

The detailed data of the requested service sync blocker summary.

" + } + } + }, + "GetServiceSyncConfigInput":{ + "type":"structure", + "required":["serviceName"], + "members":{ + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that you want to get the service sync configuration for.

" + } + } + }, + "GetServiceSyncConfigOutput":{ + "type":"structure", + "members":{ + "serviceSyncConfig":{ + "shape":"ServiceSyncConfig", + "documentation":"

The detailed data of the requested service sync configuration.

" + } + } + }, "GetServiceTemplateInput":{ "type":"structure", "required":["name"], @@ -3478,6 +3827,10 @@ "fault":true, "retryable":{"throttling":false} }, + "LatestSyncBlockers":{ + "type":"list", + "member":{"shape":"SyncBlocker"} + }, "ListComponentOutputsInput":{ "type":"structure", "required":["componentName"], @@ -4220,6 +4573,11 @@ "members":{ } }, + "OpsFilePath":{ + "type":"string", + "max":4096, + "min":1 + }, "Output":{ "type":"structure", "members":{ @@ -4420,6 +4778,7 @@ "type":"structure", "required":[ "arn", + "connectionArn", "name", "provider" ], @@ -4428,6 +4787,10 @@ "shape":"RepositoryArn", "documentation":"

The Amazon Resource Name (ARN) of the linked repository.

" }, + "connectionArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the of your connection that connects Proton to your repository.

" + }, "name":{ "shape":"RepositoryName", "documentation":"

The repository name.

" @@ -4857,6 +5220,10 @@ "shape":"ResourceName", "documentation":"

The name of the environment that the service instance was deployed into.

" }, + "lastClientRequestToken":{ + "shape":"String", + "documentation":"

The last client request token received.

" + }, "lastDeploymentAttemptedAt":{ "shape":"Timestamp", "documentation":"

The time when a deployment of the service instance was last attempted.

" @@ -5098,6 +5465,58 @@ "type":"list", "member":{"shape":"ServiceSummary"} }, + "ServiceSyncBlockerSummary":{ + "type":"structure", + "required":["serviceName"], + "members":{ + "latestBlockers":{ + "shape":"LatestSyncBlockers", + "documentation":"

The latest active blockers for the synced service.

" + }, + "serviceInstanceName":{ + "shape":"String", + "documentation":"

The name of the service instance that you want sync your service configuration with.

" + }, + "serviceName":{ + "shape":"String", + "documentation":"

The name of the service that you want to get the sync blocker summary for. If given a service instance name and a service name, it will return the blockers only applying to the instance that is blocked.

If given only a service name, it will return the blockers that apply to all of the instances. In order to get the blockers for a single instance, you will need to make two distinct calls, one to get the sync blocker summary for the service and the other to get the sync blocker for the service instance.

" + } + }, + "documentation":"

If a service instance is manually updated, Proton wants to prevent accidentally overriding a manual change.

A blocker is created because of the manual update or deletion of a service instance. The summary describes the blocker as being active or resolved.

" + }, + "ServiceSyncConfig":{ + "type":"structure", + "required":[ + "branch", + "filePath", + "repositoryName", + "repositoryProvider", + "serviceName" + ], + "members":{ + "branch":{ + "shape":"GitBranchName", + "documentation":"

The name of the code repository branch that holds the service code Proton will sync with.

" + }, + "filePath":{ + "shape":"OpsFilePath", + "documentation":"

The file path to the service sync configuration file.

" + }, + "repositoryName":{ + "shape":"RepositoryName", + "documentation":"

The name of the code repository that holds the service code Proton will sync with.

" + }, + "repositoryProvider":{ + "shape":"RepositoryProvider", + "documentation":"

The name of the repository provider that holds the repository Proton will sync with.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that the service instance is added to.

" + } + }, + "documentation":"

Detailed data of the service sync configuration.

" + }, "ServiceTemplate":{ "type":"structure", "required":[ @@ -5354,9 +5773,79 @@ "max":4096, "min":1 }, + "SyncBlocker":{ + "type":"structure", + "required":[ + "createdAt", + "createdReason", + "id", + "status", + "type" + ], + "members":{ + "contexts":{ + "shape":"SyncBlockerContexts", + "documentation":"

The contexts for the sync blocker.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The time when the sync blocker was created.

" + }, + "createdReason":{ + "shape":"String", + "documentation":"

The reason why the sync blocker was created.

" + }, + "id":{ + "shape":"String", + "documentation":"

The ID of the sync blocker.

" + }, + "resolvedAt":{ + "shape":"Timestamp", + "documentation":"

The time the sync blocker was resolved.

" + }, + "resolvedReason":{ + "shape":"String", + "documentation":"

The reason the sync blocker was resolved.

" + }, + "status":{ + "shape":"BlockerStatus", + "documentation":"

The status of the sync blocker.

" + }, + "type":{ + "shape":"BlockerType", + "documentation":"

The type of the sync blocker.

" + } + }, + "documentation":"

Detailed data of the sync blocker.

" + }, + "SyncBlockerContext":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"String", + "documentation":"

The key for the sync blocker context.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value of the sync blocker context.

" + } + }, + "documentation":"

Detailed data of the context of the sync blocker.

" + }, + "SyncBlockerContexts":{ + "type":"list", + "member":{"shape":"SyncBlockerContext"} + }, "SyncType":{ "type":"string", - "enum":["TEMPLATE_SYNC"] + "enum":[ + "TEMPLATE_SYNC", + "SERVICE_SYNC" + ] }, "Tag":{ "type":"structure", @@ -5579,6 +6068,11 @@ "name" ], "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client token for the updated component.

", + "idempotencyToken":true + }, "deploymentType":{ "shape":"ComponentDeploymentUpdateType", "documentation":"

The deployment type. It defines the mode for updating a component, as follows:

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated. You can only specify description in this mode.

CURRENT_VERSION

In this mode, the component is deployed and updated with the new serviceSpec, templateSource, and/or type that you provide. Only requested parameters are updated.

" @@ -5808,6 +6302,11 @@ "serviceName" ], "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client token of the service instance to update.

", + "idempotencyToken":true + }, "deploymentType":{ "shape":"DeploymentUpdateType", "documentation":"

The deployment type. It defines the mode for updating a service instance, as follows:

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the service instance is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include major or minor version parameters when you use this deployment type.

MINOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can specify a different major version that's higher than the major version in use and a minor version.

" @@ -5894,6 +6393,85 @@ } } }, + "UpdateServiceSyncBlockerInput":{ + "type":"structure", + "required":[ + "id", + "resolvedReason" + ], + "members":{ + "id":{ + "shape":"String", + "documentation":"

The ID of the service sync blocker.

" + }, + "resolvedReason":{ + "shape":"String", + "documentation":"

The reason the service sync blocker was resolved.

" + } + } + }, + "UpdateServiceSyncBlockerOutput":{ + "type":"structure", + "required":[ + "serviceName", + "serviceSyncBlocker" + ], + "members":{ + "serviceInstanceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service instance that you want to update the service sync blocker for.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that you want to update the service sync blocker for.

" + }, + "serviceSyncBlocker":{ + "shape":"SyncBlocker", + "documentation":"

The detailed data on the service sync blocker that was updated.

" + } + } + }, + "UpdateServiceSyncConfigInput":{ + "type":"structure", + "required":[ + "branch", + "filePath", + "repositoryName", + "repositoryProvider", + "serviceName" + ], + "members":{ + "branch":{ + "shape":"GitBranchName", + "documentation":"

The name of the code repository branch where the Proton Ops file is found.

" + }, + "filePath":{ + "shape":"OpsFilePath", + "documentation":"

The path to the Proton Ops file.

" + }, + "repositoryName":{ + "shape":"RepositoryName", + "documentation":"

The name of the repository where the Proton Ops file is found.

" + }, + "repositoryProvider":{ + "shape":"RepositoryProvider", + "documentation":"

The name of the repository provider where the Proton Ops file is found.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service the Proton Ops file is for.

" + } + } + }, + "UpdateServiceSyncConfigOutput":{ + "type":"structure", + "members":{ + "serviceSyncConfig":{ + "shape":"ServiceSyncConfig", + "documentation":"

The detailed data of the Proton Ops file.

" + } + } + }, "UpdateServiceTemplateInput":{ "type":"structure", "required":["name"], diff --git a/services/qldb/pom.xml b/services/qldb/pom.xml index 2023ea71c91a..626ec6762ce2 100644 --- a/services/qldb/pom.xml +++ b/services/qldb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT qldb AWS Java SDK :: Services :: QLDB diff --git a/services/qldbsession/pom.xml b/services/qldbsession/pom.xml index 17b463ba6b4d..453e1ac4040a 100644 --- a/services/qldbsession/pom.xml +++ b/services/qldbsession/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT qldbsession AWS Java SDK :: Services :: QLDB Session diff --git a/services/quicksight/pom.xml b/services/quicksight/pom.xml index 18ee86b3b03a..fbe8fbd85354 100644 --- a/services/quicksight/pom.xml +++ b/services/quicksight/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT quicksight AWS Java SDK :: Services :: QuickSight diff --git a/services/quicksight/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/quicksight/src/main/resources/codegen-resources/endpoint-rule-set.json index 6f653eb85349..8eeea50afb8a 100644 --- a/services/quicksight/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/quicksight/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://quicksight-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://quicksight-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://quicksight-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://quicksight-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://quicksight.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://quicksight.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://quicksight.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://quicksight.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/quicksight/src/main/resources/codegen-resources/endpoint-tests.json b/services/quicksight/src/main/resources/codegen-resources/endpoint-tests.json index 8102d1c826f5..726ca1da1334 100644 --- a/services/quicksight/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/quicksight/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "api", "UseFIPS": false, - "Region": "api" + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { @@ -112,9 +112,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { @@ -125,9 +125,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { @@ -138,9 +138,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "sa-east-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { @@ -151,9 +151,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -164,9 +164,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-2", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { @@ -177,9 +177,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-west-2" + "UseDualStack": false } }, { @@ -190,9 +190,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -203,9 +203,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -216,9 +216,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -229,9 +229,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -242,9 +242,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -255,9 +255,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -268,9 +268,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -281,9 +281,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "api", "UseFIPS": false, - "Region": "api" + "UseDualStack": false } }, { @@ -294,9 +294,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -307,9 +307,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -320,9 +320,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { @@ -333,9 +333,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -346,9 +346,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -359,9 +370,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -372,9 +394,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -385,9 +418,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -398,22 +442,35 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -423,9 +480,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -435,11 +492,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/quicksight/src/main/resources/codegen-resources/service-2.json b/services/quicksight/src/main/resources/codegen-resources/service-2.json index aa621249d431..f5afef434906 100644 --- a/services/quicksight/src/main/resources/codegen-resources/service-2.json +++ b/services/quicksight/src/main/resources/codegen-resources/service-2.json @@ -292,6 +292,26 @@ ], "documentation":"

(Enterprise edition only) Creates a new namespace for you to use with Amazon QuickSight.

A namespace allows you to isolate the Amazon QuickSight users and groups that are registered for that namespace. Users that access the namespace can share assets only with other users or groups in the same namespace. They can't see users and groups in other namespaces. You can create a namespace after your Amazon Web Services account is subscribed to Amazon QuickSight. The namespace must be unique within the Amazon Web Services account. By default, there is a limit of 100 namespaces per Amazon Web Services account. To increase your limit, create a ticket with Amazon Web Services Support.

" }, + "CreateRefreshSchedule":{ + "name":"CreateRefreshSchedule", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules" + }, + "input":{"shape":"CreateRefreshScheduleRequest"}, + "output":{"shape":"CreateRefreshScheduleResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceExistsException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Creates a refresh schedule for a dataset. You can create up to 5 different schedules for a single dataset.

" + }, "CreateTemplate":{ "name":"CreateTemplate", "http":{ @@ -464,6 +484,25 @@ ], "documentation":"

Deletes a dataset.

" }, + "DeleteDataSetRefreshProperties":{ + "name":"DeleteDataSetRefreshProperties", + "http":{ + "method":"DELETE", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties" + }, + "input":{"shape":"DeleteDataSetRefreshPropertiesRequest"}, + "output":{"shape":"DeleteDataSetRefreshPropertiesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Deletes the dataset refresh properties of the dataset.

" + }, "DeleteDataSource":{ "name":"DeleteDataSource", "http":{ @@ -595,6 +634,24 @@ ], "documentation":"

Deletes a namespace and the users and groups that are associated with the namespace. This is an asynchronous process. Assets including dashboards, analyses, datasets and data sources are not deleted. To delete these assets, you use the API operations for the relevant asset.

" }, + "DeleteRefreshSchedule":{ + "name":"DeleteRefreshSchedule", + "http":{ + "method":"DELETE", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules/{ScheduleId}" + }, + "input":{"shape":"DeleteRefreshScheduleRequest"}, + "output":{"shape":"DeleteRefreshScheduleResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Deletes a refresh schedule from a dataset.

" + }, "DeleteTemplate":{ "name":"DeleteTemplate", "http":{ @@ -685,7 +742,7 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceUnavailableException"} ], - "documentation":"

Deletes the Amazon QuickSight user that is associated with the identity of the Identity and Access Management (IAM) user or role that's making the call. The IAM user isn't deleted as a result of this call.

" + "documentation":"

Deletes the Amazon QuickSight user that is associated with the identity of the IAM user or role that's making the call. The IAM user isn't deleted as a result of this call.

" }, "DeleteUserByPrincipalId":{ "name":"DeleteUserByPrincipalId", @@ -904,6 +961,25 @@ ], "documentation":"

Describes the permissions on a dataset.

The permissions resource is arn:aws:quicksight:region:aws-account-id:dataset/data-set-id.

" }, + "DescribeDataSetRefreshProperties":{ + "name":"DescribeDataSetRefreshProperties", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties" + }, + "input":{"shape":"DescribeDataSetRefreshPropertiesRequest"}, + "output":{"shape":"DescribeDataSetRefreshPropertiesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Describes the refresh properties of a dataset.

" + }, "DescribeDataSource":{ "name":"DescribeDataSource", "http":{ @@ -1101,6 +1177,24 @@ ], "documentation":"

Describes the current namespace.

" }, + "DescribeRefreshSchedule":{ + "name":"DescribeRefreshSchedule", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules/{ScheduleId}" + }, + "input":{"shape":"DescribeRefreshScheduleRequest"}, + "output":{"shape":"DescribeRefreshScheduleResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Provides a summary of a refresh schedule.

" + }, "DescribeTemplate":{ "name":"DescribeTemplate", "http":{ @@ -1573,6 +1667,24 @@ ], "documentation":"

Lists the namespaces for the specified Amazon Web Services account. This operation doesn't list deleted namespaces.

" }, + "ListRefreshSchedules":{ + "name":"ListRefreshSchedules", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules" + }, + "input":{"shape":"ListRefreshSchedulesRequest"}, + "output":{"shape":"ListRefreshSchedulesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Lists the refresh schedules of a dataset. Each dataset can have up to 5 schedules.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -1739,6 +1851,26 @@ ], "documentation":"

Returns a list of all of the Amazon QuickSight users belonging to this account.

" }, + "PutDataSetRefreshProperties":{ + "name":"PutDataSetRefreshProperties", + "http":{ + "method":"PUT", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties" + }, + "input":{"shape":"PutDataSetRefreshPropertiesRequest"}, + "output":{"shape":"PutDataSetRefreshPropertiesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Creates or updates the dataset refresh properties for the dataset.

" + }, "RegisterUser":{ "name":"RegisterUser", "http":{ @@ -2243,6 +2375,25 @@ ], "documentation":"

Use the UpdatePublicSharingSettings operation to turn on or turn off the public sharing settings of an Amazon QuickSight dashboard.

To use this operation, turn on session capacity pricing for your Amazon QuickSight account.

Before you can turn on public sharing on your account, make sure to give public sharing permissions to an administrative user in the Identity and Access Management (IAM) console. For more information on using IAM with Amazon QuickSight, see Using Amazon QuickSight with IAM in the Amazon QuickSight User Guide.

" }, + "UpdateRefreshSchedule":{ + "name":"UpdateRefreshSchedule", + "http":{ + "method":"PUT", + "requestUri":"/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules" + }, + "input":{"shape":"UpdateRefreshScheduleRequest"}, + "output":{"shape":"UpdateRefreshScheduleResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Updates a refresh schedule for a dataset.

" + }, "UpdateTemplate":{ "name":"UpdateTemplate", "http":{ @@ -2388,7 +2539,7 @@ "documentation":"

The Amazon Web Services request ID for this request.

" } }, - "documentation":"

You don't have access to this item. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Make sure that your account is authorized to use the Amazon QuickSight service, that your policies have the correct permissions, and that you are using the correct access keys.

", + "documentation":"

You don't have access to this item. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Make sure that your account is authorized to use the Amazon QuickSight service, that your policies have the correct permissions, and that you are using the correct credentials.

", "error":{"httpStatusCode":401}, "exception":true }, @@ -2678,7 +2829,7 @@ }, "ViolatedEntities":{ "shape":"EntityList", - "documentation":"

" + "documentation":"

Lists the violated entities that caused the analysis error

" } }, "documentation":"

Analysis error.

" @@ -5727,6 +5878,54 @@ } } }, + "CreateRefreshScheduleRequest":{ + "type":"structure", + "required":[ + "DataSetId", + "AwsAccountId", + "Schedule" + ], + "members":{ + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Schedule":{ + "shape":"RefreshSchedule", + "documentation":"

The refresh schedule.

" + } + } + }, + "CreateRefreshScheduleResponse":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "ScheduleId":{ + "shape":"String", + "documentation":"

The ID of the refresh schedule.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the refresh schedule.

" + } + } + }, "CreateTemplateAliasRequest":{ "type":"structure", "required":[ @@ -7175,6 +7374,17 @@ "member":{"shape":"DataSetReference"}, "min":1 }, + "DataSetRefreshProperties":{ + "type":"structure", + "required":["RefreshConfiguration"], + "members":{ + "RefreshConfiguration":{ + "shape":"RefreshConfiguration", + "documentation":"

The refresh configuration for a dataset.

" + } + }, + "documentation":"

The refresh properties of a dataset.

" + }, "DataSetSchema":{ "type":"structure", "members":{ @@ -7827,6 +8037,24 @@ }, "documentation":"

The configuration that defines the default value of a DateTime parameter when a value has not been set.

" }, + "DayOfMonth":{ + "type":"string", + "max":17, + "min":1, + "pattern":"^(?:LAST_DAY_OF_MONTH|1[0-9]|2[0-8]|[12]|[3-9])$" + }, + "DayOfWeek":{ + "type":"string", + "enum":[ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ] + }, "DecimalDefaultValueList":{ "type":"list", "member":{"shape":"SensitiveDoubleObject"}, @@ -8167,6 +8395,41 @@ } } }, + "DeleteDataSetRefreshPropertiesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "DataSetId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + } + } + }, + "DeleteDataSetRefreshPropertiesResponse":{ + "type":"structure", + "members":{ + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "DeleteDataSetRequest":{ "type":"structure", "required":[ @@ -8516,6 +8779,56 @@ } } }, + "DeleteRefreshScheduleRequest":{ + "type":"structure", + "required":[ + "DataSetId", + "AwsAccountId", + "ScheduleId" + ], + "members":{ + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "ScheduleId":{ + "shape":"String", + "documentation":"

The ID of the refresh schedule.

", + "location":"uri", + "locationName":"ScheduleId" + } + } + }, + "DeleteRefreshScheduleResponse":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "ScheduleId":{ + "shape":"String", + "documentation":"

The ID of the refresh schedule.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the refresh schedule.

" + } + } + }, "DeleteTemplateAliasRequest":{ "type":"structure", "required":[ @@ -9295,6 +9608,45 @@ } } }, + "DescribeDataSetRefreshPropertiesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "DataSetId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + } + } + }, + "DescribeDataSetRefreshPropertiesResponse":{ + "type":"structure", + "members":{ + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "DataSetRefreshProperties":{ + "shape":"DataSetRefreshProperties", + "documentation":"

The dataset refresh properties.

" + } + } + }, "DescribeDataSetRequest":{ "type":"structure", "required":[ @@ -9818,6 +10170,56 @@ } } }, + "DescribeRefreshScheduleRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "DataSetId", + "ScheduleId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + }, + "ScheduleId":{ + "shape":"String", + "documentation":"

The ID of the refresh schedule.

", + "location":"uri", + "locationName":"ScheduleId" + } + } + }, + "DescribeRefreshScheduleResponse":{ + "type":"structure", + "members":{ + "RefreshSchedule":{ + "shape":"RefreshSchedule", + "documentation":"

The refresh schedule.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the refresh schedule.

" + } + } + }, "DescribeTemplateAliasRequest":{ "type":"structure", "required":[ @@ -12562,7 +12964,7 @@ }, "UserArn":{ "shape":"Arn", - "documentation":"

The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT identity type. You can use this for any type of Amazon QuickSight users in your account (readers, authors, or admins). They need to be authenticated as one of the following:

  1. Active Directory (AD) users or group members

  2. Invited nonfederated users

  3. Identity and Access Management (IAM) users and IAM role-based sessions authenticated through Federated Single Sign-On using SAML, OpenID Connect, or IAM federation

Omit this parameter for users in the third group, IAM users and IAM role-based sessions.

", + "documentation":"

The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT identity type. You can use this for any type of Amazon QuickSight users in your account (readers, authors, or admins). They need to be authenticated as one of the following:

  1. Active Directory (AD) users or group members

  2. Invited nonfederated users

  3. IAM users and IAM role-based sessions authenticated through Federated Single Sign-On using SAML, OpenID Connect, or IAM federation

Omit this parameter for users in the third group, IAM users and IAM role-based sessions.

", "location":"querystring", "locationName":"user-arn" } @@ -13306,6 +13708,17 @@ "error":{"httpStatusCode":403}, "exception":true }, + "IncrementalRefresh":{ + "type":"structure", + "required":["LookbackWindow"], + "members":{ + "LookbackWindow":{ + "shape":"LookbackWindow", + "documentation":"

The lookback window setup for an incremental refresh configuration.

" + } + }, + "documentation":"

The incremental refresh configuration for a dataset.

" + }, "Ingestion":{ "type":"structure", "required":[ @@ -13403,7 +13816,8 @@ "REFRESH_SUPPRESSED_BY_EDIT", "PERMISSION_NOT_FOUND", "ELASTICSEARCH_CURSOR_NOT_ENABLED", - "CURSOR_NOT_ENABLED" + "CURSOR_NOT_ENABLED", + "DUPLICATE_COLUMN_NAMES_FOUND" ] }, "IngestionId":{ @@ -15101,6 +15515,45 @@ } } }, + "ListRefreshSchedulesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "DataSetId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + } + } + }, + "ListRefreshSchedulesResponse":{ + "type":"structure", + "members":{ + "RefreshSchedules":{ + "shape":"RefreshSchedules", + "documentation":"

The list of refresh schedules for the dataset.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -15683,6 +16136,37 @@ "max":1800, "min":-1800 }, + "LookbackWindow":{ + "type":"structure", + "required":[ + "ColumnName", + "Size", + "SizeUnit" + ], + "members":{ + "ColumnName":{ + "shape":"String", + "documentation":"

The name of the lookback window column.

" + }, + "Size":{ + "shape":"PositiveLong", + "documentation":"

The lookback window column size.

" + }, + "SizeUnit":{ + "shape":"LookbackWindowSizeUnit", + "documentation":"

The size unit that is used for the lookback window column. Valid values for this structure are HOUR, DAY, and WEEK.

" + } + }, + "documentation":"

The lookback window setup of an incremental refresh configuration.

" + }, + "LookbackWindowSizeUnit":{ + "type":"string", + "enum":[ + "HOUR", + "DAY", + "WEEK" + ] + }, "ManifestFileLocation":{ "type":"structure", "required":[ @@ -17431,6 +17915,10 @@ "RowAlternateColorOptions":{ "shape":"RowAlternateColorOptions", "documentation":"

The row alternate color options (widget status, row alternate colors).

" + }, + "CollapsedRowDimensionsVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility setting of a pivot table's collapsed row dimension fields. If the value of this structure is HIDDEN, all collapsed columns in a pivot table are automatically hidden. The default value is VISIBLE.

" } }, "documentation":"

The table options for a pivot table visual.

" @@ -17585,6 +18073,10 @@ "type":"integer", "min":1 }, + "PositiveLong":{ + "type":"long", + "min":1 + }, "PostgreSqlParameters":{ "type":"structure", "required":[ @@ -17729,6 +18221,46 @@ "max":2000, "min":1 }, + "PutDataSetRefreshPropertiesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "DataSetId", + "DataSetRefreshProperties" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + }, + "DataSetRefreshProperties":{ + "shape":"DataSetRefreshProperties", + "documentation":"

The dataset refresh properties.

" + } + } + }, + "PutDataSetRefreshPropertiesResponse":{ + "type":"structure", + "members":{ + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "Query":{ "type":"string", "max":256, @@ -18190,6 +18722,89 @@ "AFTER_CUSTOM_LABEL" ] }, + "RefreshConfiguration":{ + "type":"structure", + "required":["IncrementalRefresh"], + "members":{ + "IncrementalRefresh":{ + "shape":"IncrementalRefresh", + "documentation":"

The incremental refresh for the dataset.

" + } + }, + "documentation":"

The refresh configuration of a dataset.

" + }, + "RefreshFrequency":{ + "type":"structure", + "required":["Interval"], + "members":{ + "Interval":{ + "shape":"RefreshInterval", + "documentation":"

The interval between scheduled refreshes. Valid values are as follows:

  • MINUTE15: The dataset refreshes every 15 minutes. This value is only supported for incremental refreshes. This interval can only be used for one schedule per dataset.

  • MINUTE30:The dataset refreshes every 30 minutes. This value is only supported for incremental refreshes. This interval can only be used for one schedule per dataset.

  • HOURLY: The dataset refreshes every hour. This interval can only be used for one schedule per dataset.

  • DAILY: The dataset refreshes every day.

  • WEEKLY: The dataset refreshes every week.

  • MONTHLY: The dataset refreshes every month.

" + }, + "RefreshOnDay":{ + "shape":"ScheduleRefreshOnEntity", + "documentation":"

The day of the week that you want to schedule the refresh on. This value is required for weekly and monthly refresh intervals.

" + }, + "Timezone":{ + "shape":"String", + "documentation":"

The timezone that you want the refresh schedule to use. The timezone ID must match a corresponding ID found on java.util.time.getAvailableIDs().

" + }, + "TimeOfTheDay":{ + "shape":"String", + "documentation":"

The time of day that you want the datset to refresh. This value is expressed in HH:MM format. This field is not required for schedules that refresh hourly.

" + } + }, + "documentation":"

Specifies the interval between each scheduled refresh of a dataset.

" + }, + "RefreshInterval":{ + "type":"string", + "enum":[ + "MINUTE15", + "MINUTE30", + "HOURLY", + "DAILY", + "WEEKLY", + "MONTHLY" + ] + }, + "RefreshSchedule":{ + "type":"structure", + "required":[ + "ScheduleId", + "ScheduleFrequency", + "RefreshType" + ], + "members":{ + "ScheduleId":{ + "shape":"String", + "documentation":"

An identifier for the refresh schedule.

" + }, + "ScheduleFrequency":{ + "shape":"RefreshFrequency", + "documentation":"

The frequency for the refresh schedule.

" + }, + "StartAfterDateTime":{ + "shape":"Timestamp", + "documentation":"

Time after which the refresh schedule can be started, expressed in YYYY-MM-DDTHH:MM:SS format.

" + }, + "RefreshType":{ + "shape":"IngestionType", + "documentation":"

The type of refresh that a datset undergoes. Valid values are as follows:

  • FULL_REFRESH: A complete refresh of a dataset.

  • INCREMENTAL_REFRESH: A partial refresh of some rows of a dataset, based on the time window specified.

For more information on full and incremental refreshes, see Refreshing SPICE data in the Amazon QuickSight User Guide.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the refresh schedule.

" + } + }, + "documentation":"

The refresh schedule of a dataset.

" + }, + "RefreshSchedules":{ + "type":"list", + "member":{ + "shape":"RefreshSchedule", + "documentation":"

A list of RefreshSchedule objects.

" + } + }, "RegisterUserRequest":{ "type":"structure", "required":[ @@ -18276,6 +18891,16 @@ } } }, + "RegisteredUserConsoleFeatureConfigurations":{ + "type":"structure", + "members":{ + "StatePersistence":{ + "shape":"StatePersistenceConfigurations", + "documentation":"

The state persistence configurations of an embedded Amazon QuickSight console.

" + } + }, + "documentation":"

The feature configurations of an embedded Amazon QuickSight console.

" + }, "RegisteredUserDashboardEmbeddingConfiguration":{ "type":"structure", "required":["InitialDashboardId"], @@ -18283,10 +18908,24 @@ "InitialDashboardId":{ "shape":"ShortRestrictiveResourceId", "documentation":"

The dashboard ID for the dashboard that you want the user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders this dashboard if the user has permissions to view it.

If the user does not have permission to view this dashboard, they see a permissions error message.

" + }, + "FeatureConfigurations":{ + "shape":"RegisteredUserDashboardFeatureConfigurations", + "documentation":"

The feature configurations of an embbedded Amazon QuickSight dashboard.

" } }, "documentation":"

Information about the dashboard you want to embed.

" }, + "RegisteredUserDashboardFeatureConfigurations":{ + "type":"structure", + "members":{ + "StatePersistence":{ + "shape":"StatePersistenceConfigurations", + "documentation":"

The state persistence settings of an embedded dashboard.

" + } + }, + "documentation":"

The feature configuration for an embedded dashboard.

" + }, "RegisteredUserDashboardVisualEmbeddingConfiguration":{ "type":"structure", "required":["InitialDashboardVisualId"], @@ -18336,6 +18975,10 @@ "InitialPath":{ "shape":"EntryPath", "documentation":"

The initial URL path for the Amazon QuickSight console. InitialPath is required.

The entry point URL is constrained to the following paths:

  • /start

  • /start/analyses

  • /start/dashboards

  • /start/favorites

  • /dashboards/DashboardId. DashboardId is the actual ID key from the Amazon QuickSight console URL of the dashboard.

  • /analyses/AnalysisId. AnalysisId is the actual ID key from the Amazon QuickSight console URL of the analysis.

" + }, + "FeatureConfigurations":{ + "shape":"RegisteredUserConsoleFeatureConfigurations", + "documentation":"

The embedding configuration of an embedded Amazon QuickSight console.

" } }, "documentation":"

Information about the Amazon QuickSight console that you want to embed.

" @@ -18767,6 +19410,10 @@ "TagRules":{ "shape":"RowLevelPermissionTagRuleList", "documentation":"

A set of rules associated with row-level security, such as the tag names and columns that they are assigned to.

" + }, + "TagRuleConfigurations":{ + "shape":"RowLevelPermissionTagRuleConfigurationList", + "documentation":"

A list of tag configuration rules to apply to a dataset. All tag configurations have the OR condition. Tags within each tile will be joined (AND). At least one rule in this structure must have all tag values assigned to it to apply Row-level security (RLS) to the dataset.

" } }, "documentation":"

The configuration of tags on a dataset to set row-level security.

" @@ -18801,6 +19448,18 @@ }, "documentation":"

A set of rules associated with a tag.

" }, + "RowLevelPermissionTagRuleConfiguration":{ + "type":"list", + "member":{"shape":"SessionTagKey"}, + "max":50, + "min":1 + }, + "RowLevelPermissionTagRuleConfigurationList":{ + "type":"list", + "member":{"shape":"RowLevelPermissionTagRuleConfiguration"}, + "max":50, + "min":1 + }, "RowLevelPermissionTagRuleList":{ "type":"list", "member":{"shape":"RowLevelPermissionTagRule"}, @@ -18829,6 +19488,10 @@ "ManifestFileLocation":{ "shape":"ManifestFileLocation", "documentation":"

Location of the Amazon S3 manifest file. This is NULL if the manifest file was uploaded into Amazon QuickSight.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

Use the RoleArn structure to override an account-wide role for a specific S3 data source. For example, say an account administrator has turned off all S3 access with an account-wide role. The administrator can then use RoleArn to bypass the account-wide role and allow S3 access for the single S3 data source that is specified in the structure, even if the account-wide role forbidding S3 access is still active.

" } }, "documentation":"

The parameters for S3.

" @@ -19087,6 +19750,20 @@ }, "documentation":"

A scatter plot.

For more information, see Using scatter plots in the Amazon QuickSight User Guide.

" }, + "ScheduleRefreshOnEntity":{ + "type":"structure", + "members":{ + "DayOfWeek":{ + "shape":"DayOfWeek", + "documentation":"

The day of the week that you want to schedule a refresh on.

" + }, + "DayOfMonth":{ + "shape":"DayOfMonth", + "documentation":"

The day of the month that you want to schedule refresh on.

" + } + }, + "documentation":"

The refresh on entity for weekly or monthly schedules.

" + }, "ScrollBarOptions":{ "type":"structure", "members":{ @@ -20229,6 +20906,17 @@ }, "documentation":"

Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying data source.

" }, + "StatePersistenceConfigurations":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Determines if a Amazon QuickSight dashboard's state persistence settings are turned on or off.

" + } + }, + "documentation":"

The state perssitence configuration of an embedded dashboard.

" + }, "Status":{ "type":"string", "enum":[ @@ -22513,7 +23201,7 @@ }, "DefaultNamespace":{ "shape":"Namespace", - "documentation":"

The default namespace for this Amazon Web Services account. Currently, the default is default. Identity and Access Management (IAM) users that register for the first time with Amazon QuickSight provide an email address that becomes associated with the default namespace.

" + "documentation":"

The default namespace for this Amazon Web Services account. Currently, the default is default. IAM users that register for the first time with Amazon QuickSight provide an email address that becomes associated with the default namespace.

" }, "NotificationEmail":{ "shape":"String", @@ -23418,6 +24106,54 @@ } } }, + "UpdateRefreshScheduleRequest":{ + "type":"structure", + "required":[ + "DataSetId", + "AwsAccountId", + "Schedule" + ], + "members":{ + "DataSetId":{ + "shape":"ResourceId", + "documentation":"

The ID of the dataset.

", + "location":"uri", + "locationName":"DataSetId" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Schedule":{ + "shape":"RefreshSchedule", + "documentation":"

The refresh schedule.

" + } + } + }, + "UpdateRefreshScheduleResponse":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "ScheduleId":{ + "shape":"String", + "documentation":"

The ID of the refresh schedule.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the refresh schedule.

" + } + } + }, "UpdateResourcePermissionList":{ "type":"list", "member":{"shape":"ResourcePermission"}, @@ -23899,7 +24635,7 @@ }, "Active":{ "shape":"Boolean", - "documentation":"

The active status of user. When you create an Amazon QuickSight user that’s not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.

" + "documentation":"

The active status of user. When you create an Amazon QuickSight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.

" }, "PrincipalId":{ "shape":"String", diff --git a/services/ram/pom.xml b/services/ram/pom.xml index 4a9ba227dfdf..62442e80b208 100644 --- a/services/ram/pom.xml +++ b/services/ram/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ram AWS Java SDK :: Services :: RAM diff --git a/services/rbin/pom.xml b/services/rbin/pom.xml index ce650820cb40..2b66c623c405 100644 --- a/services/rbin/pom.xml +++ b/services/rbin/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT rbin AWS Java SDK :: Services :: Rbin diff --git a/services/rds/pom.xml b/services/rds/pom.xml index f40633835edd..23ed76fffdcb 100644 --- a/services/rds/pom.xml +++ b/services/rds/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT rds AWS Java SDK :: Services :: Amazon RDS diff --git a/services/rds/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/rds/src/main/resources/codegen-resources/endpoint-rule-set.json index 7ab4d4e1957e..b9aff9f06c88 100644 --- a/services/rds/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/rds/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,294 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.ca-central-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] - } - ], - "endpoint": { - "url": "https://rds-fips.ca-central-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + }, { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.us-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://rds-fips.us-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "rds.us-east-2" + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rds-fips.us-east-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rds.us-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://rds-fips.us-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "rds.us-west-2" + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rds-fips.us-west-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/rds/src/main/resources/codegen-resources/endpoint-tests.json b/services/rds/src/main/resources/codegen-resources/endpoint-tests.json index 8b105992113f..8b0bc663a10f 100644 --- a/services/rds/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/rds/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1711 +1,597 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rds-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.sa-east-1.api.aws" + "url": "https://rds.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "af-south-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.sa-east-1.amazonaws.com" + "url": "https://rds.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-east-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-east-1.api.aws" + "url": "https://rds.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-east-1.amazonaws.com" + "url": "https://rds.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-east-1.api.aws" + "url": "https://rds.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-east-1.amazonaws.com" + "url": "https://rds.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://rds.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" + "url": "https://rds.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://rds.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-north-1.amazonaws.com.cn" + "url": "https://rds.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-gov-west-1.api.aws" + "url": "https://rds-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ca-central-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-gov-west-1.amazonaws.com" + "url": "https://rds.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-gov-west-1.api.aws" + "url": "https://rds.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-north-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-gov-west-1.amazonaws.com" + "url": "https://rds.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-south-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-1.api.aws" + "url": "https://rds.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-1.amazonaws.com" + "url": "https://rds.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-1.api.aws" + "url": "https://rds.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-3", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-1.amazonaws.com" + "url": "https://rds.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "me-south-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-2.api.aws" + "url": "https://rds.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-2.amazonaws.com" + "url": "https://rds.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-2.api.aws" + "url": "https://rds-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-2.amazonaws.com" + "url": "https://rds.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-2", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com" + } }, "params": { - "UseDualStack": true, + "Region": "us-east-2", "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://rds.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-iso-east-1.c2s.ic.gov" + "url": "https://rds.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-3.api.aws" + "url": "https://rds-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-west-2", "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-3.amazonaws.com" + "url": "https://rds-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-3.api.aws" + "url": "https://rds.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-3.amazonaws.com" + "url": "https://rds.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-4.api.aws" + "url": "https://rds.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-4" + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.ap-southeast-4.amazonaws.com" + "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-4" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-4.api.aws" + "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-4" + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds.ap-southeast-4.amazonaws.com" + "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-4" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-1.api.aws" + "url": "https://rds.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-1.amazonaws.com" + "url": "https://rds.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-1.api.aws" + "url": "https://rds.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-1.amazonaws.com" + "url": "https://rds.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-2.api.aws" + "url": "https://rds-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rds-fips.us-east-2.amazonaws.com" + "url": "https://rds.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-2.api.aws" + "url": "https://rds.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.us-east-2.amazonaws.com" + "url": "https://rds.us-iso-west-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-west-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rds-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rds.cn-northwest-1.api.amazonwebservices.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rds.cn-northwest-1.amazonaws.com.cn" + "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { @@ -1714,9 +600,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { @@ -1727,9 +613,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { @@ -1738,35 +624,35 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1776,9 +662,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1788,11 +674,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/rds/src/main/resources/codegen-resources/service-2.json b/services/rds/src/main/resources/codegen-resources/service-2.json index a2b90d2cb9e1..abbd15c849f0 100644 --- a/services/rds/src/main/resources/codegen-resources/service-2.json +++ b/services/rds/src/main/resources/codegen-resources/service-2.json @@ -145,7 +145,7 @@ {"shape":"ExportTaskNotFoundFault"}, {"shape":"InvalidExportTaskStateFault"} ], - "documentation":"

Cancels an export task in progress that is exporting a snapshot to Amazon S3. Any data that has already been written to the S3 bucket isn't removed.

" + "documentation":"

Cancels an export task in progress that is exporting a snapshot or cluster to Amazon S3. Any data that has already been written to the S3 bucket isn't removed.

" }, "CopyDBClusterParameterGroup":{ "name":"CopyDBClusterParameterGroup", @@ -184,7 +184,7 @@ {"shape":"SnapshotQuotaExceededFault"}, {"shape":"KMSKeyNotAccessibleFault"} ], - "documentation":"

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the CopyDBClusterSnapshot operation is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, you must provide the following values:

  • KmsKeyId - The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source Amazon Web Services Region and is the same value as the SourceDBClusterSnapshotIdentifier in the presigned URL.

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region to another, see Copying a Snapshot in the Amazon Aurora User Guide.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the CopyDBClusterSnapshot operation is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, you must provide the following values:

  • KmsKeyId - The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source Amazon Web Services Region and is the same value as the SourceDBClusterSnapshotIdentifier in the presigned URL.

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region to another, see Copying a Snapshot in the Amazon Aurora User Guide.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "CopyDBParameterGroup":{ "name":"CopyDBParameterGroup", @@ -284,7 +284,8 @@ {"shape":"CustomDBEngineVersionAlreadyExistsFault"}, {"shape":"CustomDBEngineVersionQuotaExceededFault"}, {"shape":"Ec2ImagePropertiesNotSupportedFault"}, - {"shape":"KMSKeyNotAccessibleFault"} + {"shape":"KMSKeyNotAccessibleFault"}, + {"shape":"CreateCustomDBEngineVersionFault"} ], "documentation":"

Creates a custom DB engine version (CEV).

" }, @@ -319,7 +320,7 @@ {"shape":"InvalidGlobalClusterStateFault"}, {"shape":"DomainNotFoundFault"} ], - "documentation":"

Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.

You can use the ReplicationSourceIdentifier parameter to create an Amazon Aurora DB cluster as a read replica of another DB cluster or Amazon RDS MySQL or PostgreSQL DB instance.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.

If you create an Aurora DB cluster, the request creates an empty cluster. You must explicitly create the writer instance for your DB cluster using the CreateDBInstance operation. If you create a Multi-AZ DB cluster, the request creates a writer and two reader DB instances for you, each in a different Availability Zone.

You can use the ReplicationSourceIdentifier parameter to create an Amazon Aurora DB cluster as a read replica of another DB cluster or Amazon RDS for MySQL or PostgreSQL DB instance. For more information about Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

You can also use the ReplicationSourceIdentifier parameter to create a Multi-AZ DB cluster read replica with an RDS for MySQL or PostgreSQL DB instance as the source. For more information about Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "CreateDBClusterEndpoint":{ "name":"CreateDBClusterEndpoint", @@ -357,7 +358,7 @@ {"shape":"DBParameterGroupQuotaExceededFault"}, {"shape":"DBParameterGroupAlreadyExistsFault"} ], - "documentation":"

Creates a new DB cluster parameter group.

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using ModifyDBCluster.

When you associate a new DB cluster parameter group with a running Aurora DB cluster, reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Creates a new DB cluster parameter group.

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using ModifyDBCluster.

When you associate a new DB cluster parameter group with a running Aurora DB cluster, reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "CreateDBClusterSnapshot":{ "name":"CreateDBClusterSnapshot", @@ -377,7 +378,7 @@ {"shape":"SnapshotQuotaExceededFault"}, {"shape":"InvalidDBClusterSnapshotStateFault"} ], - "documentation":"

Creates a snapshot of a DB cluster.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Creates a snapshot of a DB cluster.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "CreateDBInstance":{ "name":"CreateDBInstance", @@ -434,7 +435,9 @@ {"shape":"InstanceQuotaExceededFault"}, {"shape":"StorageQuotaExceededFault"}, {"shape":"DBInstanceNotFoundFault"}, + {"shape":"DBClusterNotFoundFault"}, {"shape":"InvalidDBInstanceStateFault"}, + {"shape":"InvalidDBClusterStateFault"}, {"shape":"DBSubnetGroupNotFoundFault"}, {"shape":"DBSubnetGroupDoesNotCoverEnoughAZs"}, {"shape":"InvalidSubnet"}, @@ -448,7 +451,7 @@ {"shape":"DomainNotFoundFault"}, {"shape":"NetworkTypeNotSupported"} ], - "documentation":"

Creates a new DB instance that acts as a read replica for an existing source DB instance. You can create a read replica for a DB instance running MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server. For more information, see Working with Read Replicas in the Amazon RDS User Guide.

Amazon Aurora doesn't support this operation. Call the CreateDBInstance operation to create a DB instance for an Aurora DB cluster.

All read replica DB instances are created with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified.

Your source DB instance must have backup retention enabled.

" + "documentation":"

Creates a new DB instance that acts as a read replica for an existing source DB instance or Multi-AZ DB cluster. You can create a read replica for a DB instance running MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server. You can create a read replica for a Multi-AZ DB cluster running MySQL or PostgreSQL. For more information, see Working with read replicas and Migrating from a Multi-AZ DB cluster to a DB instance using a read replica in the Amazon RDS User Guide.

Amazon Aurora doesn't support this operation. Call the CreateDBInstance operation to create a DB instance for an Aurora DB cluster.

All read replica DB instances are created with backups disabled. All other attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance or cluster, except as specified.

Your source DB instance or cluster must have backup retention enabled.

" }, "CreateDBParameterGroup":{ "name":"CreateDBParameterGroup", @@ -652,7 +655,7 @@ {"shape":"CustomDBEngineVersionNotFoundFault"}, {"shape":"InvalidCustomDBEngineVersionStateFault"} ], - "documentation":"

Deletes a custom engine version. To run this command, make sure you meet the following prerequisites:

  • The CEV must not be the default for RDS Custom. If it is, change the default before running this command.

  • The CEV must not be associated with an RDS Custom DB instance, RDS Custom instance snapshot, or automated backup of your RDS Custom instance.

Typically, deletion takes a few minutes.

The MediaImport service that imports files from Amazon S3 to create CEVs isn't integrated with Amazon Web Services CloudTrail. If you turn on data logging for Amazon RDS in CloudTrail, calls to the DeleteCustomDbEngineVersion event aren't logged. However, you might see calls from the API gateway that accesses your Amazon S3 bucket. These calls originate from the MediaImport service for the DeleteCustomDbEngineVersion event.

For more information, see Deleting a CEV in the Amazon RDS User Guide.

" + "documentation":"

Deletes a custom engine version. To run this command, make sure you meet the following prerequisites:

  • The CEV must not be the default for RDS Custom. If it is, change the default before running this command.

  • The CEV must not be associated with an RDS Custom DB instance, RDS Custom instance snapshot, or automated backup of your RDS Custom instance.

Typically, deletion takes a few minutes.

The MediaImport service that imports files from Amazon S3 to create CEVs isn't integrated with Amazon Web Services CloudTrail. If you turn on data logging for Amazon RDS in CloudTrail, calls to the DeleteCustomDbEngineVersion event aren't logged. However, you might see calls from the API gateway that accesses your Amazon S3 bucket. These calls originate from the MediaImport service for the DeleteCustomDbEngineVersion event.

For more information, see Deleting a CEV in the Amazon RDS User Guide.

" }, "DeleteDBCluster":{ "name":"DeleteDBCluster", @@ -672,7 +675,7 @@ {"shape":"SnapshotQuotaExceededFault"}, {"shape":"InvalidDBClusterSnapshotStateFault"} ], - "documentation":"

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

If you're deleting a Multi-AZ DB cluster with read replicas, all cluster members are terminated and read replicas are promoted to standalone instances.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "DeleteDBClusterEndpoint":{ "name":"DeleteDBClusterEndpoint", @@ -703,7 +706,7 @@ {"shape":"InvalidDBParameterGroupStateFault"}, {"shape":"DBParameterGroupNotFoundFault"} ], - "documentation":"

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "DeleteDBClusterSnapshot":{ "name":"DeleteDBClusterSnapshot", @@ -720,7 +723,7 @@ {"shape":"InvalidDBClusterSnapshotStateFault"}, {"shape":"DBClusterSnapshotNotFoundFault"} ], - "documentation":"

Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated.

The DB cluster snapshot must be in the available state to be deleted.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated.

The DB cluster snapshot must be in the available state to be deleted.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "DeleteDBInstance":{ "name":"DeleteDBInstance", @@ -1009,7 +1012,7 @@ "errors":[ {"shape":"DBParameterGroupNotFoundFault"} ], - "documentation":"

Returns a list of DBClusterParameterGroup descriptions. If a DBClusterParameterGroupName parameter is specified, the list will contain only the description of the specified DB cluster parameter group.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Returns a list of DBClusterParameterGroup descriptions. If a DBClusterParameterGroupName parameter is specified, the list will contain only the description of the specified DB cluster parameter group.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "DescribeDBClusterParameters":{ "name":"DescribeDBClusterParameters", @@ -1025,7 +1028,7 @@ "errors":[ {"shape":"DBParameterGroupNotFoundFault"} ], - "documentation":"

Returns the detailed parameter list for a particular DB cluster parameter group.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Returns the detailed parameter list for a particular DB cluster parameter group.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "DescribeDBClusterSnapshotAttributes":{ "name":"DescribeDBClusterSnapshotAttributes", @@ -1057,7 +1060,7 @@ "errors":[ {"shape":"DBClusterSnapshotNotFoundFault"} ], - "documentation":"

Returns information about DB cluster snapshots. This API action supports pagination.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Returns information about DB cluster snapshots. This API action supports pagination.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "DescribeDBClusters":{ "name":"DescribeDBClusters", @@ -1073,7 +1076,7 @@ "errors":[ {"shape":"DBClusterNotFoundFault"} ], - "documentation":"

Returns information about Amazon Aurora DB clusters and Multi-AZ DB clusters. This API supports pagination.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances.

" + "documentation":"

Returns information about Amazon Aurora DB clusters and Multi-AZ DB clusters. This API supports pagination.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances.

" }, "DescribeDBEngineVersions":{ "name":"DescribeDBEngineVersions", @@ -1384,7 +1387,7 @@ "errors":[ {"shape":"ExportTaskNotFoundFault"} ], - "documentation":"

Returns information about a snapshot export to Amazon S3. This API operation supports pagination.

" + "documentation":"

Returns information about a snapshot or cluster export to Amazon S3. This API operation supports pagination.

" }, "DescribeGlobalClusters":{ "name":"DescribeGlobalClusters", @@ -1555,7 +1558,7 @@ {"shape":"InvalidDBClusterStateFault"}, {"shape":"InvalidDBInstanceStateFault"} ], - "documentation":"

Forces a failover for a DB cluster.

For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

For a Multi-AZ DB cluster, failover for a DB cluster promotes one of the readable standby DB instances (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readable standby DB instance when the primary DB instance fails.

To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Forces a failover for a DB cluster.

For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

For a Multi-AZ DB cluster, failover for a DB cluster promotes one of the readable standby DB instances (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readable standby DB instance when the primary DB instance fails.

To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "FailoverGlobalCluster":{ "name":"FailoverGlobalCluster", @@ -1613,7 +1616,7 @@ {"shape":"ResourceNotFoundFault"}, {"shape":"DBInstanceNotFoundFault"} ], - "documentation":"

Changes the audit policy state of a database activity stream to either locked (default) or unlocked. A locked policy is read-only, whereas an unlocked policy is read/write. If your activity stream is started and locked, you can unlock it, customize your audit policy, and then lock your activity stream. Restarting the activity stream isn't required. For more information, see Modifying a database activity stream in the Amazon RDS User Guide.

This operation is supported for RDS for Oracle only.

" + "documentation":"

Changes the audit policy state of a database activity stream to either locked (default) or unlocked. A locked policy is read-only, whereas an unlocked policy is read/write. If your activity stream is started and locked, you can unlock it, customize your audit policy, and then lock your activity stream. Restarting the activity stream isn't required. For more information, see Modifying a database activity stream in the Amazon RDS User Guide.

This operation is supported for RDS for Oracle and Microsoft SQL Server.

" }, "ModifyCertificates":{ "name":"ModifyCertificates", @@ -1691,7 +1694,7 @@ {"shape":"DBClusterAlreadyExistsFault"}, {"shape":"DomainNotFoundFault"} ], - "documentation":"

Modify the settings for an Amazon Aurora DB cluster or a Multi-AZ DB cluster. You can change one or more settings by specifying these parameters and the new values in the request.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Modify the settings for an Amazon Aurora DB cluster or a Multi-AZ DB cluster. You can change one or more settings by specifying these parameters and the new values in the request.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "ModifyDBClusterEndpoint":{ "name":"ModifyDBClusterEndpoint", @@ -1728,7 +1731,7 @@ {"shape":"DBParameterGroupNotFoundFault"}, {"shape":"InvalidDBParameterGroupStateFault"} ], - "documentation":"

Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

If the modified DB cluster parameter group is used by an Aurora Serverless v1 cluster, Aurora applies the update immediately. The cluster restart might interrupt your workload. In that case, your application must reopen any connections and retry any transactions that were active when the parameter changes took effect.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

If the modified DB cluster parameter group is used by an Aurora Serverless v1 cluster, Aurora applies the update immediately. The cluster restart might interrupt your workload. In that case, your application must reopen any connections and retry any transactions that were active when the parameter changes took effect.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "ModifyDBClusterSnapshotAttribute":{ "name":"ModifyDBClusterSnapshotAttribute", @@ -2034,7 +2037,7 @@ {"shape":"InvalidDBClusterStateFault"}, {"shape":"InvalidDBInstanceStateFault"} ], - "documentation":"

You might need to reboot your DB cluster, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB cluster parameter group associated with the DB cluster, reboot the DB cluster for the changes to take effect.

Rebooting a DB cluster restarts the database engine service. Rebooting a DB cluster results in a momentary outage, during which the DB cluster status is set to rebooting.

Use this operation only for a non-Aurora Multi-AZ DB cluster.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

You might need to reboot your DB cluster, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB cluster parameter group associated with the DB cluster, reboot the DB cluster for the changes to take effect.

Rebooting a DB cluster restarts the database engine service. Rebooting a DB cluster results in a momentary outage, during which the DB cluster status is set to rebooting.

Use this operation only for a non-Aurora Multi-AZ DB cluster.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "RebootDBInstance":{ "name":"RebootDBInstance", @@ -2107,7 +2110,7 @@ {"shape":"DBClusterRoleNotFoundFault"}, {"shape":"InvalidDBClusterStateFault"} ], - "documentation":"

Removes the asssociation of an Amazon Web Services Identity and Access Management (IAM) role from a DB cluster.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Removes the asssociation of an Amazon Web Services Identity and Access Management (IAM) role from a DB cluster.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "RemoveRoleFromDBInstance":{ "name":"RemoveRoleFromDBInstance", @@ -2172,7 +2175,7 @@ {"shape":"InvalidDBParameterGroupStateFault"}, {"shape":"DBParameterGroupNotFoundFault"} ], - "documentation":"

Modifies the parameters of a DB cluster parameter group to the default value. To reset specific parameters submit a list of the following: ParameterName and ApplyMethod. To reset the entire DB cluster parameter group, specify the DBClusterParameterGroupName and ResetAllParameters parameters.

When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request. You must call RebootDBInstance for every DB instance in your DB cluster that you want the updated static parameter to apply to.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Modifies the parameters of a DB cluster parameter group to the default value. To reset specific parameters submit a list of the following: ParameterName and ApplyMethod. To reset the entire DB cluster parameter group, specify the DBClusterParameterGroupName and ResetAllParameters parameters.

When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request. You must call RebootDBInstance for every DB instance in your DB cluster that you want the updated static parameter to apply to.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "ResetDBParameterGroup":{ "name":"ResetDBParameterGroup", @@ -2253,7 +2256,7 @@ {"shape":"DBClusterParameterGroupNotFoundFault"}, {"shape":"InvalidDBInstanceStateFault"} ], - "documentation":"

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group.

This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterFromSnapshot action has completed and the DB cluster is available.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group.

This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterFromSnapshot action has completed and the DB cluster is available.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "RestoreDBClusterToPointInTime":{ "name":"RestoreDBClusterToPointInTime", @@ -2286,7 +2289,7 @@ {"shape":"DomainNotFoundFault"}, {"shape":"DBClusterParameterGroupNotFoundFault"} ], - "documentation":"

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.

For Aurora, this action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime action has completed and the DB cluster is available.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.

For Aurora, this action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime action has completed and the DB cluster is available.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

" }, "RestoreDBInstanceFromDBSnapshot":{ "name":"RestoreDBInstanceFromDBSnapshot", @@ -2522,7 +2525,7 @@ {"shape":"KMSKeyNotAccessibleFault"}, {"shape":"InvalidExportSourceStateFault"} ], - "documentation":"

Starts an export of a snapshot to Amazon S3. The provided IAM role must have access to the S3 bucket.

This command doesn't apply to RDS Custom.

" + "documentation":"

Starts an export of DB snapshot or DB cluster data to Amazon S3. The provided IAM role must have access to the S3 bucket.

You can't export snapshot data from RDS Custom DB instances.

You can't export cluster data from Multi-AZ DB clusters.

For more information on exporting DB snapshot data, see Exporting DB snapshot data to Amazon S3 in the Amazon RDS User Guide or Exporting DB cluster snapshot data to Amazon S3 in the Amazon Aurora User Guide.

For more information on exporting DB cluster data, see Exporting DB cluster data to Amazon S3 in the Amazon Aurora User Guide.

" }, "StopActivityStream":{ "name":"StopActivityStream", @@ -3137,7 +3140,7 @@ "members":{ "ExportTaskIdentifier":{ "shape":"String", - "documentation":"

The identifier of the snapshot export task to cancel.

" + "documentation":"

The identifier of the snapshot or cluster export task to cancel.

" } } }, @@ -3565,6 +3568,18 @@ "BlueGreenDeployment":{"shape":"BlueGreenDeployment"} } }, + "CreateCustomDBEngineVersionFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

An error occurred while trying to create the CEV.

", + "error":{ + "code":"CreateCustomDBEngineVersionFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "CreateCustomDBEngineVersionMessage":{ "type":"structure", "required":[ @@ -3682,11 +3697,11 @@ }, "Engine":{ "shape":"String", - "documentation":"

The name of the database engine to be used for this DB cluster.

Valid Values:

  • aurora (for MySQL 5.6-compatible Aurora)

  • aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

  • aurora-postgresql

  • mysql

  • postgres

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

The name of the database engine to be used for this DB cluster.

Valid Values:

  • aurora-mysql

  • aurora-postgresql

  • mysql

  • postgres

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "EngineVersion":{ "shape":"String", - "documentation":"

The version number of the database engine to use.

To list all of the available engine versions for MySQL 5.6-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

For information, see MySQL on Amazon RDS Versions in the Amazon Aurora User Guide.

Aurora PostgreSQL

For information, see Amazon Aurora PostgreSQL releases and engine versions in the Amazon Aurora User Guide.

MySQL

For information, see MySQL on Amazon RDS Versions in the Amazon RDS User Guide.

PostgreSQL

For information, see Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

The version number of the database engine to use.

To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (MySQL 8.0-compatible), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

You can supply either 5.7 or 8.0 to use the default engine version for Aurora MySQL version 2 or version 3, respectively.

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

For information, see Database engine updates for Amazon Aurora MySQL in the Amazon Aurora User Guide.

Aurora PostgreSQL

For information, see Amazon Aurora PostgreSQL releases and engine versions in the Amazon Aurora User Guide.

MySQL

For information, see Amazon RDS for MySQL in the Amazon RDS User Guide.

PostgreSQL

For information, see Amazon RDS for PostgreSQL in the Amazon RDS User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "Port":{ "shape":"IntegerOptional", @@ -3714,7 +3729,7 @@ }, "ReplicationSourceIdentifier":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a read replica.

Valid for: Aurora DB clusters only

" + "documentation":"

The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a read replica.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "Tags":{ "shape":"TagList", @@ -3746,7 +3761,7 @@ }, "EngineMode":{ "shape":"String", - "documentation":"

The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.

The parallelquery engine mode isn't required for Aurora MySQL version 1.23 and higher 1.x versions, and version 2.09 and higher 2.x versions.

The global engine mode isn't required for Aurora MySQL version 1.22 and higher 1.x versions, and global engine mode isn't required for any 2.x versions.

The multimaster engine mode only applies for DB clusters created with Aurora MySQL version 5.6.10a.

The serverless engine mode only applies for Aurora Serverless v1 DB clusters.

For Aurora PostgreSQL, the global engine mode isn't required, and both the parallelquery and the multimaster engine modes currently aren't supported.

Limitations and requirements apply to some DB engine modes. For more information, see the following sections in the Amazon Aurora User Guide:

Valid for: Aurora DB clusters only

" + "documentation":"

The DB engine mode of the DB cluster, either provisioned or serverless.

The serverless engine mode only applies for Aurora Serverless v1 DB clusters.

Limitations and requirements apply to some DB engine modes. For more information, see the following sections in the Amazon Aurora User Guide:

Valid for: Aurora DB clusters only

" }, "ScalingConfiguration":{ "shape":"ScalingConfiguration", @@ -3794,7 +3809,7 @@ }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Provisioned IOPS storage in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

Valid for: Multi-AZ DB clusters only

" }, "PubliclyAccessible":{ "shape":"BooleanOptional", @@ -3937,7 +3952,7 @@ }, "Engine":{ "shape":"String", - "documentation":"

The name of the database engine to be used for this instance.

Not every database engine is available for every Amazon Web Services Region.

Valid Values:

  • aurora (for MySQL 5.6-compatible Aurora)

  • aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

  • aurora-postgresql

  • custom-oracle-ee (for RDS Custom for Oracle instances)

  • custom-sqlserver-ee (for RDS Custom for SQL Server instances)

  • custom-sqlserver-se (for RDS Custom for SQL Server instances)

  • custom-sqlserver-web (for RDS Custom for SQL Server instances)

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" + "documentation":"

The name of the database engine to be used for this instance.

Not every database engine is available for every Amazon Web Services Region.

Valid Values:

  • aurora (for MySQL 5.6-compatible Aurora)

  • aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

  • aurora-postgresql

  • custom-oracle-ee (for RDS Custom for Oracle DB instances)

  • custom-oracle-ee-cdb (for RDS Custom for Oracle DB instances)

  • custom-sqlserver-ee (for RDS Custom for SQL Server DB instances)

  • custom-sqlserver-se (for RDS Custom for SQL Server DB instances)

  • custom-sqlserver-web (for RDS Custom for SQL Server DB instances)

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" }, "MasterUsername":{ "shape":"String", @@ -4144,10 +4159,7 @@ }, "CreateDBInstanceReadReplicaMessage":{ "type":"structure", - "required":[ - "DBInstanceIdentifier", - "SourceDBInstanceIdentifier" - ], + "required":["DBInstanceIdentifier"], "members":{ "DBInstanceIdentifier":{ "shape":"String", @@ -4155,7 +4167,7 @@ }, "SourceDBInstanceIdentifier":{ "shape":"String", - "documentation":"

The identifier of the DB instance that will act as the source for the read replica. Each DB instance can have up to five read replicas.

Constraints:

  • Must be the identifier of an existing MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server DB instance.

  • Can specify a DB instance that is a MySQL read replica only if the source is running MySQL 5.6 or later.

  • For the limitations of Oracle read replicas, see Read Replica Limitations with Oracle in the Amazon RDS User Guide.

  • For the limitations of SQL Server read replicas, see Read Replica Limitations with Microsoft SQL Server in the Amazon RDS User Guide.

  • Can specify a PostgreSQL DB instance only if the source is running PostgreSQL 9.3.5 or later (9.4.7 and higher for cross-Region replication).

  • The specified DB instance must have automatic backups enabled, that is, its backup retention period must be greater than 0.

  • If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a valid DB instance identifier.

  • If the source DB instance is in a different Amazon Web Services Region from the read replica, specify a valid DB instance ARN. For more information, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide. This doesn't apply to SQL Server or RDS Custom, which don't support cross-Region replicas.

" + "documentation":"

The identifier of the DB instance that will act as the source for the read replica. Each DB instance can have up to 15 read replicas, with the exception of Oracle and SQL Server, which can have up to five.

Constraints:

  • Must be the identifier of an existing MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server DB instance.

  • Can't be specified if the SourceDBClusterIdentifier parameter is also specified.

  • For the limitations of Oracle read replicas, see Version and licensing considerations for RDS for Oracle replicas in the Amazon RDS User Guide.

  • For the limitations of SQL Server read replicas, see Read replica limitations with SQL Server in the Amazon RDS User Guide.

  • The specified DB instance must have automatic backups enabled, that is, its backup retention period must be greater than 0.

  • If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a valid DB instance identifier.

  • If the source DB instance is in a different Amazon Web Services Region from the read replica, specify a valid DB instance ARN. For more information, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide. This doesn't apply to SQL Server or RDS Custom, which don't support cross-Region replicas.

" }, "DBInstanceClass":{ "shape":"String", @@ -4171,7 +4183,7 @@ }, "MultiAZ":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether the read replica is in a Multi-AZ deployment.

You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another Availability Zone for failover support for the replica. Creating your read replica as a Multi-AZ DB instance is independent of whether the source database is a Multi-AZ DB instance.

This setting doesn't apply to RDS Custom.

" + "documentation":"

A value that indicates whether the read replica is in a Multi-AZ deployment.

You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another Availability Zone for failover support for the replica. Creating your read replica as a Multi-AZ DB instance is independent of whether the source is a Multi-AZ DB instance or a Multi-AZ DB cluster.

This setting doesn't apply to RDS Custom.

" }, "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", @@ -4183,7 +4195,7 @@ }, "OptionGroupName":{ "shape":"String", - "documentation":"

The option group the DB instance is associated with. If omitted, the option group associated with the source instance is used.

For SQL Server, you must use the option group associated with the source instance.

This setting doesn't apply to RDS Custom.

" + "documentation":"

The option group the DB instance is associated with. If omitted, the option group associated with the source instance or cluster is used.

For SQL Server, you must use the option group associated with the source.

This setting doesn't apply to RDS Custom.

" }, "DBParameterGroupName":{ "shape":"String", @@ -4196,7 +4208,7 @@ "Tags":{"shape":"TagList"}, "DBSubnetGroupName":{ "shape":"String", - "documentation":"

Specifies a DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance isn't created in a VPC.

Constraints:

  • Can only be specified if the source DB instance identifier specifies a DB instance in another Amazon Web Services Region.

  • If supplied, must match the name of an existing DBSubnetGroup.

  • The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is running.

  • All read replicas in one Amazon Web Services Region that are created from the same source DB instance must either:>

    • Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC.

    • Not specify a DB subnet group. All these read replicas are created outside of any VPC.

Example: mydbsubnetgroup

" + "documentation":"

Specifies a DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance isn't created in a VPC.

Constraints:

  • If supplied, must match the name of an existing DBSubnetGroup.

  • The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is running.

  • All read replicas in one Amazon Web Services Region that are created from the same source DB instance must either:>

    • Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC.

    • Not specify a DB subnet group. All these read replicas are created outside of any VPC.

Example: mydbsubnetgroup

" }, "VpcSecurityGroupIds":{ "shape":"VpcSecurityGroupIdList", @@ -4220,11 +4232,11 @@ }, "KmsKeyId":{ "shape":"String", - "documentation":"

The Amazon Web Services KMS key identifier for an encrypted read replica.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you create an encrypted read replica in the same Amazon Web Services Region as the source DB instance, then do not specify a value for this parameter. A read replica in the same Amazon Web Services Region is always encrypted with the same KMS key as the source DB instance.

If you create an encrypted read replica in a different Amazon Web Services Region, then you must specify a KMS key identifier for the destination Amazon Web Services Region. KMS keys are specific to the Amazon Web Services Region that they are created in, and you can't use KMS keys from one Amazon Web Services Region in another Amazon Web Services Region.

You can't create an encrypted read replica from an unencrypted DB instance.

This setting doesn't apply to RDS Custom, which uses the same KMS key as the primary replica.

" + "documentation":"

The Amazon Web Services KMS key identifier for an encrypted read replica.

The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

If you create an encrypted read replica in the same Amazon Web Services Region as the source DB instance or Multi-AZ DB cluster, don't specify a value for this parameter. A read replica in the same Amazon Web Services Region is always encrypted with the same KMS key as the source DB instance or cluster.

If you create an encrypted read replica in a different Amazon Web Services Region, then you must specify a KMS key identifier for the destination Amazon Web Services Region. KMS keys are specific to the Amazon Web Services Region that they are created in, and you can't use KMS keys from one Amazon Web Services Region in another Amazon Web Services Region.

You can't create an encrypted read replica from an unencrypted DB instance or Multi-AZ DB cluster.

This setting doesn't apply to RDS Custom, which uses the same KMS key as the primary replica.

" }, "PreSignedUrl":{ "shape":"String", - "documentation":"

When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or from one China Amazon Web Services Region to another, the URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API operation in the source Amazon Web Services Region that contains the source DB instance.

This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. It's ignored in other Amazon Web Services Regions.

You must specify this parameter when you create an encrypted read replica from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are creating an encrypted read replica in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API operation that can run in the source Amazon Web Services Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted read replica is created in. This Amazon Web Services Region is the same one where the CreateDBInstanceReadReplica operation is called that contains this presigned URL.

    For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a source DB instance in the us-east-2 Amazon Web Services Region, then you call the CreateDBInstanceReadReplica operation in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica operation in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the destination Amazon Web Services Region. This is the same identifier for both the CreateDBInstanceReadReplica operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

SourceRegion isn't supported for SQL Server, because Amazon RDS for SQL Server doesn't support cross-Region read replicas.

This setting doesn't apply to RDS Custom.

" + "documentation":"

When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or from one China Amazon Web Services Region to another, the URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API operation in the source Amazon Web Services Region that contains the source DB instance.

This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. It's ignored in other Amazon Web Services Regions.

This setting applies only when replicating from a source DB instance. Source DB clusters aren't supported in Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions.

You must specify this parameter when you create an encrypted read replica from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are creating an encrypted read replica in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API operation that can run in the source Amazon Web Services Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted read replica is created in. This Amazon Web Services Region is the same one where the CreateDBInstanceReadReplica operation is called that contains this presigned URL.

    For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a source DB instance in the us-east-2 Amazon Web Services Region, then you call the CreateDBInstanceReadReplica operation in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica operation in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the destination Amazon Web Services Region. This is the same identifier for both the CreateDBInstanceReadReplica operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

SourceRegion isn't supported for SQL Server, because Amazon RDS for SQL Server doesn't support cross-Region read replicas.

This setting doesn't apply to RDS Custom.

" }, "EnableIAMDatabaseAuthentication":{ "shape":"BooleanOptional", @@ -4264,7 +4276,7 @@ }, "DomainIAMRoleName":{ "shape":"String", - "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom.

" + "documentation":"

The name of the IAM role to be used when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom.

" }, "ReplicaMode":{ "shape":"ReplicaMode", @@ -4292,7 +4304,11 @@ }, "AllocatedStorage":{ "shape":"IntegerOptional", - "documentation":"

The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough memory for your read replica so that the create operation can succeed. You can also allocate additional memory for future growth.

" + "documentation":"

The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough storage for your read replica so that the create operation can succeed. You can also allocate additional storage for future growth.

" + }, + "SourceDBClusterIdentifier":{ + "shape":"String", + "documentation":"

The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.

Constraints:

  • Must be the identifier of an existing Multi-AZ DB cluster.

  • Can't be specified if the SourceDBInstanceIdentifier parameter is also specified.

  • The specified DB cluster must have automatic backups enabled, that is, its backup retention period must be greater than 0.

  • The source DB cluster must be in the same Amazon Web Services Region as the read replica. Cross-Region replication isn't supported.

" } } }, @@ -4574,7 +4590,7 @@ "members":{ "GlobalClusterIdentifier":{ "shape":"String", - "documentation":"

The cluster identifier of the new global database cluster.

" + "documentation":"

The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string.

" }, "SourceDBClusterIdentifier":{ "shape":"String", @@ -6105,6 +6121,10 @@ "CertificateDetails":{ "shape":"CertificateDetails", "documentation":"

The details of the DB instance's server certificate.

" + }, + "ReadReplicaSourceDBClusterIdentifier":{ + "shape":"String", + "documentation":"

Contains the identifier of the source DB cluster if this DB instance is a read replica.

" } }, "documentation":"

Contains the details of an Amazon RDS DB instance.

This data type is used as a response element in the operations CreateDBInstance, CreateDBInstanceReadReplica, DeleteDBInstance, DescribeDBInstances, ModifyDBInstance, PromoteReadReplica, RebootDBInstance, RestoreDBInstanceFromDBSnapshot, RestoreDBInstanceFromS3, RestoreDBInstanceToPointInTime, StartDBInstance, and StopDBInstance.

", @@ -7421,7 +7441,7 @@ }, "DeleteTarget":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether to delete the resources in the green environment.

" + "documentation":"

A value that indicates whether to delete the resources in the green environment. You can't specify this option if the blue/green deployment status is SWITCHOVER_COMPLETED.

" } } }, @@ -7440,7 +7460,7 @@ "members":{ "Engine":{ "shape":"CustomEngineName", - "documentation":"

The database engine. The only supported engine is custom-oracle-ee.

" + "documentation":"

The database engine. The only supported engines are custom-oracle-ee and custom-oracle-ee-cdb.

" }, "EngineVersion":{ "shape":"CustomEngineVersion", @@ -7946,7 +7966,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

A filter that specifies one or more DB clusters to describe.

Supported filters:

  • clone-group-id - Accepts clone group identifiers. The results list only includes information about the DB clusters associated with these clone groups.

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list only includes information about the DB clusters identified by these ARNs.

  • domain - Accepts Active Directory directory IDs. The results list only includes information about the DB clusters associated with these domains.

  • engine - Accepts engine names. The results list only includes information about the DB clusters for these engines.

" + "documentation":"

A filter that specifies one or more DB clusters to describe.

Supported filters:

  • clone-group-id - Accepts clone group identifiers. The results list only includes information about the DB clusters associated with these clone groups.

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list only includes information about the DB clusters identified by these ARNs.

  • db-cluster-resource-id - Accepts DB cluster resource identifiers. The results list will only include information about the DB clusters identified by these DB cluster resource identifiers.

  • domain - Accepts Active Directory directory IDs. The results list only includes information about the DB clusters associated with these domains.

  • engine - Accepts engine names. The results list only includes information about the DB clusters for these engines.

" }, "MaxRecords":{ "shape":"IntegerOptional", @@ -7968,7 +7988,7 @@ "members":{ "Engine":{ "shape":"String", - "documentation":"

The database engine to return.

Valid Values:

  • aurora (for MySQL 5.6-compatible Aurora)

  • aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" + "documentation":"

The database engine to return.

Valid Values:

  • aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" }, "EngineVersion":{ "shape":"String", @@ -8576,15 +8596,15 @@ "members":{ "ExportTaskIdentifier":{ "shape":"String", - "documentation":"

The identifier of the snapshot export task to be described.

" + "documentation":"

The identifier of the snapshot or cluster export task to be described.

" }, "SourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the snapshot exported to Amazon S3.

" + "documentation":"

The Amazon Resource Name (ARN) of the snapshot or cluster exported to Amazon S3.

" }, "Filters":{ "shape":"FilterList", - "documentation":"

Filters specify one or more snapshot exports to describe. The filters are specified as name-value pairs that define what to include in the output. Filter names and values are case-sensitive.

Supported filters include the following:

  • export-task-identifier - An identifier for the snapshot export task.

  • s3-bucket - The Amazon S3 bucket the snapshot is exported to.

  • source-arn - The Amazon Resource Name (ARN) of the snapshot exported to Amazon S3

  • status - The status of the export task. Must be lowercase. Valid statuses are the following:

    • canceled

    • canceling

    • complete

    • failed

    • in_progress

    • starting

" + "documentation":"

Filters specify one or more snapshot or cluster exports to describe. The filters are specified as name-value pairs that define what to include in the output. Filter names and values are case-sensitive.

Supported filters include the following:

  • export-task-identifier - An identifier for the snapshot or cluster export task.

  • s3-bucket - The Amazon S3 bucket the data is exported to.

  • source-arn - The Amazon Resource Name (ARN) of the snapshot or cluster exported to Amazon S3.

  • status - The status of the export task. Must be lowercase. Valid statuses are the following:

    • canceled

    • canceling

    • complete

    • failed

    • in_progress

    • starting

" }, "Marker":{ "shape":"String", @@ -8684,7 +8704,7 @@ "members":{ "Engine":{ "shape":"String", - "documentation":"

The name of the engine to retrieve DB instance options for.

Valid Values:

  • aurora (for MySQL 5.6-compatible Aurora)

  • aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" + "documentation":"

The name of the engine to retrieve DB instance options for.

Valid Values:

  • aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-ee-cdb

  • oracle-se2

  • oracle-se2-cdb

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

" }, "EngineVersion":{ "shape":"String", @@ -9260,15 +9280,15 @@ "members":{ "ExportTaskIdentifier":{ "shape":"String", - "documentation":"

A unique identifier for the snapshot export task. This ID isn't an identifier for the Amazon S3 bucket where the snapshot is exported to.

" + "documentation":"

A unique identifier for the snapshot or cluster export task. This ID isn't an identifier for the Amazon S3 bucket where the data is exported.

" }, "SourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the snapshot exported to Amazon S3.

" + "documentation":"

The Amazon Resource Name (ARN) of the snapshot or cluster exported to Amazon S3.

" }, "ExportOnly":{ "shape":"StringList", - "documentation":"

The data exported from the snapshot. Valid values are the following:

  • database - Export all the data from a specified database.

  • database.table table-name - Export a table of the snapshot. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL.

  • database.schema schema-name - Export a database schema of the snapshot. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

  • database.schema.table table-name - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

" + "documentation":"

The data exported from the snapshot or cluster. Valid values are the following:

  • database - Export all the data from a specified database.

  • database.table table-name - Export a table of the snapshot or cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL.

  • database.schema schema-name - Export a database schema of the snapshot or cluster. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

  • database.schema.table table-name - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

" }, "SnapshotTime":{ "shape":"TStamp", @@ -9276,35 +9296,35 @@ }, "TaskStartTime":{ "shape":"TStamp", - "documentation":"

The time that the snapshot export task started.

" + "documentation":"

The time that the snapshot or cluster export task started.

" }, "TaskEndTime":{ "shape":"TStamp", - "documentation":"

The time that the snapshot export task completed.

" + "documentation":"

The time that the snapshot or cluster export task ended.

" }, "S3Bucket":{ "shape":"String", - "documentation":"

The Amazon S3 bucket that the snapshot is exported to.

" + "documentation":"

The Amazon S3 bucket that the snapshot or cluster is exported to.

" }, "S3Prefix":{ "shape":"String", - "documentation":"

The Amazon S3 bucket prefix that is the file name and path of the exported snapshot.

" + "documentation":"

The Amazon S3 bucket prefix that is the file name and path of the exported data.

" }, "IamRoleArn":{ "shape":"String", - "documentation":"

The name of the IAM role that is used to write to Amazon S3 when exporting a snapshot.

" + "documentation":"

The name of the IAM role that is used to write to Amazon S3 when exporting a snapshot or cluster.

" }, "KmsKeyId":{ "shape":"String", - "documentation":"

The key identifier of the Amazon Web Services KMS key that is used to encrypt the snapshot when it's exported to Amazon S3. The KMS key identifier is its key ARN, key ID, alias ARN, or alias name. The IAM role used for the snapshot export must have encryption and decryption permissions to use this KMS key.

" + "documentation":"

The key identifier of the Amazon Web Services KMS key that is used to encrypt the data when it's exported to Amazon S3. The KMS key identifier is its key ARN, key ID, alias ARN, or alias name. The IAM role used for the export must have encryption and decryption permissions to use this KMS key.

" }, "Status":{ "shape":"String", - "documentation":"

The progress status of the export task.

" + "documentation":"

The progress status of the export task. The status can be one of the following:

  • CANCELED

  • CANCELING

  • COMPLETE

  • FAILED

  • IN_PROGRESS

  • STARTING

" }, "PercentProgress":{ "shape":"Integer", - "documentation":"

The progress of the snapshot export task as a percentage.

" + "documentation":"

The progress of the snapshot or cluster export task as a percentage.

" }, "TotalExtractedDataInGB":{ "shape":"Integer", @@ -9316,14 +9336,14 @@ }, "WarningMessage":{ "shape":"String", - "documentation":"

A warning about the snapshot export task.

" + "documentation":"

A warning about the snapshot or cluster export task.

" }, "SourceType":{ "shape":"ExportSourceType", "documentation":"

The type of source for the export.

" } }, - "documentation":"

Contains the details of a snapshot export to Amazon S3.

This data type is used as a response element in the DescribeExportTasks action.

" + "documentation":"

Contains the details of a snapshot or cluster export to Amazon S3.

This data type is used as a response element in the DescribeExportTasks action.

" }, "ExportTaskAlreadyExistsFault":{ "type":"structure", @@ -9365,7 +9385,7 @@ }, "ExportTasks":{ "shape":"ExportTasksList", - "documentation":"

Information about an export of a snapshot to Amazon S3.

" + "documentation":"

Information about an export of a snapshot or cluster to Amazon S3.

" } } }, @@ -9517,7 +9537,7 @@ }, "GlobalClusterMembers":{ "shape":"GlobalClusterMemberList", - "documentation":"

The list of cluster IDs for secondary clusters within the global database cluster. Currently limited to 1 item.

" + "documentation":"

The list of primary and secondary clusters within the global database cluster.

" }, "FailoverState":{ "shape":"FailoverState", @@ -10138,7 +10158,7 @@ "members":{ "ResourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the RDS for Oracle DB instance, for example, arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db.

" + "documentation":"

The Amazon Resource Name (ARN) of the RDS for Oracle or Microsoft SQL Server DB instance. For example, arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db.

" }, "AuditPolicyState":{ "shape":"AuditPolicyState", @@ -10225,7 +10245,7 @@ "members":{ "Engine":{ "shape":"CustomEngineName", - "documentation":"

The DB engine. The only supported value is custom-oracle-ee.

" + "documentation":"

The DB engine. The only supported values are custom-oracle-ee and custom-oracle-ee-cdb.

" }, "EngineVersion":{ "shape":"CustomEngineVersion", @@ -10277,7 +10297,7 @@ }, "ApplyImmediately":{ "shape":"Boolean", - "documentation":"

A value that indicates whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB cluster. If this parameter is disabled, changes to the DB cluster are applied during the next maintenance window.

The ApplyImmediately parameter only affects the EnableIAMDatabaseAuthentication, MasterUserPassword, and NewDBClusterIdentifier values. If the ApplyImmediately parameter is disabled, then changes to the EnableIAMDatabaseAuthentication, MasterUserPassword, and NewDBClusterIdentifier values are applied during the next maintenance window. All other changes are applied immediately, regardless of the value of the ApplyImmediately parameter.

By default, this parameter is disabled.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

A value that indicates whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB cluster. If this parameter is disabled, changes to the DB cluster are applied during the next maintenance window.

Most modifications can be applied immediately or during the next scheduled maintenance window. Some modifications, such as turning on deletion protection and changing the master password, are applied immediately—regardless of when you choose to apply them.

By default, this parameter is disabled.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "BackupRetentionPeriod":{ "shape":"IntegerOptional", @@ -10325,7 +10345,7 @@ }, "EngineVersion":{ "shape":"String", - "documentation":"

The version number of the database engine to which you want to upgrade. Changing this parameter results in an outage. The change is applied during the next maintenance window unless ApplyImmediately is enabled.

To list all of the available engine versions for MySQL 5.6-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

The version number of the database engine to which you want to upgrade. Changing this parameter results in an outage. The change is applied during the next maintenance window unless ApplyImmediately is enabled.

If the cluster that you're modifying has one or more read replicas, all replicas must be running an engine version that's the same or later than the version you specify.

To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (MySQL 8.0-compatible), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for MySQL 5.6-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "AllowMajorVersionUpgrade":{ "shape":"Boolean", @@ -10537,7 +10557,7 @@ }, "EngineVersion":{ "shape":"String", - "documentation":"

The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request.

For major version upgrades, if a nondefault DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family.

If you specify only a major version, Amazon RDS will update the DB instance to the default minor version if the current minor version is lower. For information about valid engine versions, see CreateDBInstance, or call DescribeDBEngineVersions.

In RDS Custom for Oracle, this parameter is supported for read replicas only if they are in the PATCH_DB_FAILURE lifecycle.

" + "documentation":"

The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request.

For major version upgrades, if a nondefault DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family.

If you specify only a major version, Amazon RDS will update the DB instance to the default minor version if the current minor version is lower. For information about valid engine versions, see CreateDBInstance, or call DescribeDBEngineVersions.

If the instance that you're modifying is acting as a read replica, the engine version that you specify must be the same or later than the version that the source DB instance or cluster is running.

In RDS Custom for Oracle, this parameter is supported for read replicas only if they are in the PATCH_DB_FAILURE lifecycle.

" }, "AllowMajorVersionUpgrade":{ "shape":"Boolean", @@ -12533,11 +12553,11 @@ }, "Engine":{ "shape":"String", - "documentation":"

The name of the database engine to be used for this DB cluster.

Valid Values: aurora (for MySQL 5.6-compatible Aurora) and aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

" + "documentation":"

The name of the database engine to be used for this DB cluster.

Valid Values: aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

" }, "EngineVersion":{ "shape":"String", - "documentation":"

The version number of the database engine to use.

To list all of the available engine versions for aurora (for MySQL 5.6-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

Example: 5.6.10a, 5.6.mysql_aurora.1.19.2, 5.7.mysql_aurora.2.07.1, 8.0.mysql_aurora.3.02.0

" + "documentation":"

The version number of the database engine to use.

To list all of the available engine versions for aurora-mysql (MySQL 5.7-compatible and MySQL 8.0-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

Examples: 5.7.mysql_aurora.2.07.1, 8.0.mysql_aurora.3.02.0

" }, "Port":{ "shape":"IntegerOptional", @@ -12602,7 +12622,7 @@ }, "EnableCloudwatchLogsExports":{ "shape":"LogTypeList", - "documentation":"

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used.

Aurora MySQL

Possible values are audit, error, general, and slowquery.

Aurora PostgreSQL

Possible value is postgresql.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" + "documentation":"

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used.

Aurora MySQL

Possible values are audit, error, general, and slowquery.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" }, "DeletionProtection":{ "shape":"BooleanOptional", @@ -12667,7 +12687,7 @@ }, "EngineVersion":{ "shape":"String", - "documentation":"

The version of the database engine to use for the new DB cluster.

To list all of the available engine versions for MySQL 5.6-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

See MySQL on Amazon RDS Versions in the Amazon Aurora User Guide.

Aurora PostgreSQL

See Amazon Aurora PostgreSQL releases and engine versions in the Amazon Aurora User Guide.

MySQL

See MySQL on Amazon RDS Versions in the Amazon RDS User Guide.

PostgreSQL

See Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

The version of the database engine to use for the new DB cluster. If you don't specify an engine version, the default version for the database engine in the Amazon Web Services Region is used.

To list all of the available engine versions for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora, use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for Aurora PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for MySQL, use the following command:

aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for RDS for PostgreSQL, use the following command:

aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

See Database engine updates for Amazon Aurora MySQL in the Amazon Aurora User Guide.

Aurora PostgreSQL

See Amazon Aurora PostgreSQL releases and engine versions in the Amazon Aurora User Guide.

MySQL

See Amazon RDS for MySQL in the Amazon RDS User Guide.

PostgreSQL

See Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "Port":{ "shape":"IntegerOptional", @@ -13020,11 +13040,11 @@ }, "DBClusterSnapshotIdentifier":{ "shape":"String", - "documentation":"

The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

Constraints:

  • Must match the identifier of an existing Multi-AZ DB cluster snapshot.

  • Can't be specified when DBSnapshotIdentifier is specified.

  • Must be specified when DBSnapshotIdentifier isn't specified.

  • If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.

  • Can't be the identifier of an Aurora DB cluster snapshot.

  • Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.

" + "documentation":"

The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from.

For more information on Multi-AZ DB clusters, see Multi-AZ DB cluster deployments in the Amazon RDS User Guide.

Constraints:

  • Must match the identifier of an existing Multi-AZ DB cluster snapshot.

  • Can't be specified when DBSnapshotIdentifier is specified.

  • Must be specified when DBSnapshotIdentifier isn't specified.

  • If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.

  • Can't be the identifier of an Aurora DB cluster snapshot.

  • Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.

" }, "AllocatedStorage":{ "shape":"IntegerOptional", - "documentation":"

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth.

" + "documentation":"

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough storage for your new DB instance so that the restore operation can succeed. You can also allocate additional storage for future growth.

" } }, "documentation":"

" @@ -13057,7 +13077,7 @@ }, "AllocatedStorage":{ "shape":"IntegerOptional", - "documentation":"

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth.

" + "documentation":"

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough storage for your new DB instance so that the restore operation can succeed. You can also allocate additional storage for future growth.

" }, "DBInstanceClass":{ "shape":"String", @@ -13402,7 +13422,7 @@ }, "AllocatedStorage":{ "shape":"IntegerOptional", - "documentation":"

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth.

" + "documentation":"

The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance.

Be sure to allocate enough storage for your new DB instance so that the restore operation can succeed. You can also allocate additional storage for future growth.

" } }, "documentation":"

" @@ -13734,7 +13754,7 @@ }, "EngineNativeAuditFieldsIncluded":{ "shape":"BooleanOptional", - "documentation":"

Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included.

" + "documentation":"

Specifies whether the database activity stream includes engine-native audit fields. This option applies to an Oracle or Microsoft SQL Server DB instance. By default, no engine-native audit fields are included.

" } } }, @@ -13839,31 +13859,31 @@ "members":{ "ExportTaskIdentifier":{ "shape":"String", - "documentation":"

A unique identifier for the snapshot export task. This ID isn't an identifier for the Amazon S3 bucket where the snapshot is to be exported to.

" + "documentation":"

A unique identifier for the export task. This ID isn't an identifier for the Amazon S3 bucket where the data is to be exported.

" }, "SourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the snapshot to export to Amazon S3.

" + "documentation":"

The Amazon Resource Name (ARN) of the snapshot or cluster to export to Amazon S3.

" }, "S3BucketName":{ "shape":"String", - "documentation":"

The name of the Amazon S3 bucket to export the snapshot to.

" + "documentation":"

The name of the Amazon S3 bucket to export the snapshot or cluster data to.

" }, "IamRoleArn":{ "shape":"String", - "documentation":"

The name of the IAM role to use for writing to the Amazon S3 bucket when exporting a snapshot.

" + "documentation":"

The name of the IAM role to use for writing to the Amazon S3 bucket when exporting a snapshot or cluster.

In the IAM policy attached to your IAM role, include the following required actions to allow the transfer of files from Amazon RDS or Amazon Aurora to an S3 bucket:

  • s3:PutObject*

  • s3:GetObject*

  • s3:ListBucket

  • s3:DeleteObject*

  • s3:GetBucketLocation

In the policy, include the resources to identify the S3 bucket and objects in the bucket. The following list of resources shows the Amazon Resource Name (ARN) format for accessing S3:

  • arn:aws:s3:::your-s3-bucket

  • arn:aws:s3:::your-s3-bucket/*

" }, "KmsKeyId":{ "shape":"String", - "documentation":"

The ID of the Amazon Web Services KMS key to use to encrypt the snapshot exported to Amazon S3. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. The caller of this operation must be authorized to run the following operations. These can be set in the Amazon Web Services KMS key policy:

  • kms:Encrypt

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptFrom

  • kms:ReEncryptTo

  • kms:CreateGrant

  • kms:DescribeKey

  • kms:RetireGrant

" + "documentation":"

The ID of the Amazon Web Services KMS key to use to encrypt the data exported to Amazon S3. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. The caller of this operation must be authorized to run the following operations. These can be set in the Amazon Web Services KMS key policy:

  • kms:Encrypt

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptFrom

  • kms:ReEncryptTo

  • kms:CreateGrant

  • kms:DescribeKey

  • kms:RetireGrant

" }, "S3Prefix":{ "shape":"String", - "documentation":"

The Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.

" + "documentation":"

The Amazon S3 bucket prefix to use as the file name and path of the exported data.

" }, "ExportOnly":{ "shape":"StringList", - "documentation":"

The data to be exported from the snapshot. If this parameter is not provided, all the snapshot data is exported. Valid values are the following:

  • database - Export all the data from a specified database.

  • database.table table-name - Export a table of the snapshot. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL.

  • database.schema schema-name - Export a database schema of the snapshot. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

  • database.schema.table table-name - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

" + "documentation":"

The data to be exported from the snapshot or cluster. If this parameter is not provided, all of the data is exported. Valid values are the following:

  • database - Export all the data from a specified database.

  • database.table table-name - Export a table of the snapshot or cluster. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL.

  • database.schema schema-name - Export a database schema of the snapshot or cluster. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

  • database.schema.table table-name - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL.

" } } }, @@ -13920,7 +13940,7 @@ "members":{ "SourceDBInstanceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the source DB instance for which to stop replicating automated backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase.

" + "documentation":"

The Amazon Resource Name (ARN) of the source DB instance for which to stop replicating automate backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase.

" } } }, @@ -14113,10 +14133,10 @@ }, "Status":{ "shape":"SwitchoverDetailStatus", - "documentation":"

The switchover status of a resource in a blue/green deployment.

Values:

  • preparing-for-switchover - The resource is being prepared to switch over.

  • ready-for-switchover - The resource is ready to switch over.

  • switchover-in-progress - The resource is being switched over.

  • switchover-completed - The resource has been switched over.

  • switchover-failed - The resource attempted to switch over but failed.

" + "documentation":"

The switchover status of a resource in a blue/green deployment.

Values:

  • PROVISIONING - The resource is being prepared to switch over.

  • AVAILABLE - The resource is ready to switch over.

  • SWITCHOVER_IN_PROGRESS - The resource is being switched over.

  • SWITCHOVER_COMPLETED - The resource has been switched over.

  • SWITCHOVER_FAILED - The resource attempted to switch over but failed.

  • MISSING_SOURCE - The source resource has been deleted.

  • MISSING_TARGET - The target resource has been deleted.

" } }, - "documentation":"

Contains the details about a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + "documentation":"

Contains the details about a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" }, "SwitchoverDetailList":{ "type":"list", diff --git a/services/rdsdata/pom.xml b/services/rdsdata/pom.xml index b968a14d6742..c83a7f6a8aa0 100644 --- a/services/rdsdata/pom.xml +++ b/services/rdsdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT rdsdata AWS Java SDK :: Services :: RDS Data diff --git a/services/redshift/pom.xml b/services/redshift/pom.xml index 260bf8a84445..33aac0c57387 100644 --- a/services/redshift/pom.xml +++ b/services/redshift/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT redshift AWS Java SDK :: Services :: Amazon Redshift diff --git a/services/redshift/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/redshift/src/main/resources/codegen-resources/endpoint-rule-set.json index e2a4c57c7e20..fb0c8cf49517 100644 --- a/services/redshift/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/redshift/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,187 +111,286 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://redshift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://redshift.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://redshift.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://redshift-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://redshift-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://redshift.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://redshift.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { - "url": "https://redshift.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://redshift.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -320,66 +399,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://redshift.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://redshift.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://redshift.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/redshift/src/main/resources/codegen-resources/endpoint-tests.json b/services/redshift/src/main/resources/codegen-resources/endpoint-tests.json index 1c238ab3b5c9..5603237a0d85 100644 --- a/services/redshift/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/redshift/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "Region": "af-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "af-south-1" } }, { @@ -21,9 +21,9 @@ } }, "params": { - "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-east-1" } }, { @@ -34,9 +34,9 @@ } }, "params": { - "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { @@ -47,9 +47,9 @@ } }, "params": { - "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-2" } }, { @@ -60,9 +60,9 @@ } }, "params": { - "Region": "ap-northeast-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-3" } }, { @@ -73,9 +73,9 @@ } }, "params": { - "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-south-1" } }, { @@ -86,9 +86,9 @@ } }, "params": { - "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { @@ -99,9 +99,9 @@ } }, "params": { - "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { @@ -112,9 +112,9 @@ } }, "params": { - "Region": "ap-southeast-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-southeast-3" } }, { @@ -125,9 +125,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "ca-central-1" } }, { @@ -138,9 +138,9 @@ } }, "params": { - "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "ca-central-1" } }, { @@ -151,9 +151,9 @@ } }, "params": { - "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-central-1" } }, { @@ -164,9 +164,9 @@ } }, "params": { - "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-north-1" } }, { @@ -177,9 +177,9 @@ } }, "params": { - "Region": "eu-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-south-1" } }, { @@ -190,9 +190,9 @@ } }, "params": { - "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-1" } }, { @@ -203,9 +203,9 @@ } }, "params": { - "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-2" } }, { @@ -216,9 +216,9 @@ } }, "params": { - "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-3" } }, { @@ -229,9 +229,9 @@ } }, "params": { - "Region": "me-south-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "me-south-1" } }, { @@ -242,9 +242,9 @@ } }, "params": { - "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "sa-east-1" } }, { @@ -255,9 +255,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -268,9 +268,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -281,9 +281,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-2" } }, { @@ -294,9 +294,9 @@ } }, "params": { - "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-2" } }, { @@ -307,9 +307,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-1" } }, { @@ -320,9 +320,9 @@ } }, "params": { - "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-1" } }, { @@ -333,9 +333,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-west-2" } }, { @@ -346,9 +346,9 @@ } }, "params": { - "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-west-2" } }, { @@ -359,9 +359,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-east-1" } }, { @@ -372,9 +372,9 @@ } }, "params": { - "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-east-1" } }, { @@ -385,9 +385,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -398,9 +398,9 @@ } }, "params": { - "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-northwest-1" } }, { @@ -411,9 +411,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -424,9 +424,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "cn-north-1" } }, { @@ -437,9 +437,9 @@ } }, "params": { - "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "cn-north-1" } }, { @@ -450,9 +450,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { @@ -463,9 +463,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -476,9 +476,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-west-1" } }, { @@ -489,9 +489,9 @@ } }, "params": { - "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-west-1" } }, { @@ -502,9 +502,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { @@ -515,9 +515,9 @@ } }, "params": { - "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { @@ -528,9 +528,9 @@ } }, "params": { - "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { @@ -541,9 +541,9 @@ } }, "params": { - "Region": "us-iso-west-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-iso-west-1" } }, { @@ -554,9 +554,9 @@ } }, "params": { - "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { @@ -567,9 +567,9 @@ } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { @@ -580,20 +580,33 @@ } }, "params": { - "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseDualStack": false, + "UseFIPS": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" @@ -605,9 +618,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -617,9 +630,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/redshift/src/main/resources/codegen-resources/service-2.json b/services/redshift/src/main/resources/codegen-resources/service-2.json index 783c9ff8fbde..647883d62f27 100644 --- a/services/redshift/src/main/resources/codegen-resources/service-2.json +++ b/services/redshift/src/main/resources/codegen-resources/service-2.json @@ -2559,7 +2559,7 @@ }, "SnapshotClusterIdentifier":{ "shape":"String", - "documentation":"

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" + "documentation":"

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user or role has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" }, "AccountWithRestoreAccess":{ "shape":"String", @@ -3604,7 +3604,7 @@ }, "SourceSnapshotClusterIdentifier":{ "shape":"String", - "documentation":"

The identifier of the cluster the source snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

Constraints:

  • Must be the identifier for a valid cluster.

" + "documentation":"

The identifier of the cluster the source snapshot was created from. This parameter is required if your IAM user or role has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

Constraints:

  • Must be the identifier for a valid cluster.

" }, "TargetSnapshotIdentifier":{ "shape":"String", @@ -3692,11 +3692,11 @@ }, "MasterUsername":{ "shape":"String", - "documentation":"

The user name associated with the admin user account for the cluster that is being created.

Constraints:

  • Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be PUBLIC.

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • The first character must be a letter.

  • Must not contain a colon (:) or a slash (/).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" + "documentation":"

The user name associated with the admin user for the cluster that is being created.

Constraints:

  • Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be PUBLIC.

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • The first character must be a letter.

  • Must not contain a colon (:) or a slash (/).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" }, "MasterUserPassword":{ "shape":"String", - "documentation":"

The password associated with the admin user account for the cluster that is being created.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" + "documentation":"

The password associated with the admin user for the cluster that is being created.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" }, "ClusterSecurityGroups":{ "shape":"ClusterSecurityGroupNameList", @@ -4523,7 +4523,7 @@ }, "SnapshotClusterIdentifier":{ "shape":"String", - "documentation":"

The unique identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

Constraints: Must be the name of valid cluster.

" + "documentation":"

The unique identifier of the cluster the snapshot was created from. This parameter is required if your IAM user or role has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

Constraints: Must be the name of valid cluster.

" } }, "documentation":"

" @@ -4826,7 +4826,7 @@ }, "MaxRecords":{ "shape":"IntegerOptional", - "documentation":"

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

" + "documentation":"

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 500.

" }, "Marker":{ "shape":"String", @@ -7230,7 +7230,7 @@ }, "MasterUserPassword":{ "shape":"String", - "documentation":"

The new password for the cluster admin user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Operations never return the password, so this operation provides a way to regain access to the admin user account for a cluster if the password is lost.

Default: Uses existing setting.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" + "documentation":"

The new password for the cluster admin user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Operations never return the password, so this operation provides a way to regain access to the admin user for a cluster if the password is lost.

Default: Uses existing setting.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" }, "ClusterParameterGroupName":{ "shape":"String", @@ -8575,7 +8575,7 @@ }, "SnapshotClusterIdentifier":{ "shape":"String", - "documentation":"

The name of the cluster the source snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" + "documentation":"

The name of the cluster the source snapshot was created from. This parameter is required if your IAM user or role has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" }, "Port":{ "shape":"IntegerOptional", @@ -8893,7 +8893,7 @@ }, "SnapshotClusterIdentifier":{ "shape":"String", - "documentation":"

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" + "documentation":"

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user or role has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" }, "AccountWithRestoreAccess":{ "shape":"String", diff --git a/services/redshiftdata/pom.xml b/services/redshiftdata/pom.xml index 52f9c2d89c03..612397d0a02b 100644 --- a/services/redshiftdata/pom.xml +++ b/services/redshiftdata/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT redshiftdata AWS Java SDK :: Services :: Redshift Data diff --git a/services/redshiftdata/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/redshiftdata/src/main/resources/codegen-resources/endpoint-rule-set.json index c136deb3c2eb..ca8661444b6b 100644 --- a/services/redshiftdata/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/redshiftdata/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://redshift-data-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://redshift-data-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://redshift-data.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://redshift-data.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/redshiftdata/src/main/resources/codegen-resources/endpoint-tests.json b/services/redshiftdata/src/main/resources/codegen-resources/endpoint-tests.json index ff1bae97f535..3f2eaaca3aa6 100644 --- a/services/redshiftdata/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/redshiftdata/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,15 +1,280 @@ { "testCases": [ { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://redshift-data-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-data-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-data-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-data.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -20,8 +285,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "UseDualStack": false, "Endpoint": "https://example.com" } @@ -32,11 +297,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/redshiftdata/src/main/resources/codegen-resources/service-2.json b/services/redshiftdata/src/main/resources/codegen-resources/service-2.json index a27b2e29f7f0..2c67045ba9c6 100644 --- a/services/redshiftdata/src/main/resources/codegen-resources/service-2.json +++ b/services/redshiftdata/src/main/resources/codegen-resources/service-2.json @@ -26,7 +26,7 @@ {"shape":"ActiveStatementsExceededException"}, {"shape":"BatchExecuteStatementException"} ], - "documentation":"

Runs one or more SQL statements, which can be data manipulation language (DML) or data definition language (DDL). Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" + "documentation":"

Runs one or more SQL statements, which can be data manipulation language (DML) or data definition language (DDL). Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, provide the secret-arn of a secret stored in Secrets Manager which has username and password. The specified secret contains credentials to connect to the database you specify. When you are connecting to a cluster, you also supply the database name, If you provide a cluster identifier (dbClusterIdentifier), it must match the cluster identifier stored in the secret. When you are connecting to a serverless workgroup, you also supply the database name.

  • Temporary credentials - when connecting to your data warehouse, choose one of the following options:

    • When connecting to a serverless workgroup, specify the workgroup name and database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift-serverless:GetCredentials operation is required.

    • When connecting to a cluster as an IAM identity, specify the cluster identifier and the database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift:GetClusterCredentialsWithIAM operation is required.

    • When connecting to a cluster as a database user, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" }, "CancelStatement":{ "name":"CancelStatement", @@ -72,7 +72,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

Describes the detailed information about a table from metadata in the cluster. The information includes its columns. A token is returned to page through the column list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" + "documentation":"

Describes the detailed information about a table from metadata in the cluster. The information includes its columns. A token is returned to page through the column list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, provide the secret-arn of a secret stored in Secrets Manager which has username and password. The specified secret contains credentials to connect to the database you specify. When you are connecting to a cluster, you also supply the database name, If you provide a cluster identifier (dbClusterIdentifier), it must match the cluster identifier stored in the secret. When you are connecting to a serverless workgroup, you also supply the database name.

  • Temporary credentials - when connecting to your data warehouse, choose one of the following options:

    • When connecting to a serverless workgroup, specify the workgroup name and database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift-serverless:GetCredentials operation is required.

    • When connecting to a cluster as an IAM identity, specify the cluster identifier and the database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift:GetClusterCredentialsWithIAM operation is required.

    • When connecting to a cluster as a database user, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" }, "ExecuteStatement":{ "name":"ExecuteStatement", @@ -87,7 +87,7 @@ {"shape":"ExecuteStatementException"}, {"shape":"ActiveStatementsExceededException"} ], - "documentation":"

Runs an SQL statement, which can be data manipulation language (DML) or data definition language (DDL). This statement must be a single SQL statement. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" + "documentation":"

Runs an SQL statement, which can be data manipulation language (DML) or data definition language (DDL). This statement must be a single SQL statement. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, provide the secret-arn of a secret stored in Secrets Manager which has username and password. The specified secret contains credentials to connect to the database you specify. When you are connecting to a cluster, you also supply the database name, If you provide a cluster identifier (dbClusterIdentifier), it must match the cluster identifier stored in the secret. When you are connecting to a serverless workgroup, you also supply the database name.

  • Temporary credentials - when connecting to your data warehouse, choose one of the following options:

    • When connecting to a serverless workgroup, specify the workgroup name and database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift-serverless:GetCredentials operation is required.

    • When connecting to a cluster as an IAM identity, specify the cluster identifier and the database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift:GetClusterCredentialsWithIAM operation is required.

    • When connecting to a cluster as a database user, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" }, "GetStatementResult":{ "name":"GetStatementResult", @@ -117,7 +117,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

List the databases in a cluster. A token is returned to page through the database list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" + "documentation":"

List the databases in a cluster. A token is returned to page through the database list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, provide the secret-arn of a secret stored in Secrets Manager which has username and password. The specified secret contains credentials to connect to the database you specify. When you are connecting to a cluster, you also supply the database name, If you provide a cluster identifier (dbClusterIdentifier), it must match the cluster identifier stored in the secret. When you are connecting to a serverless workgroup, you also supply the database name.

  • Temporary credentials - when connecting to your data warehouse, choose one of the following options:

    • When connecting to a serverless workgroup, specify the workgroup name and database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift-serverless:GetCredentials operation is required.

    • When connecting to a cluster as an IAM identity, specify the cluster identifier and the database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift:GetClusterCredentialsWithIAM operation is required.

    • When connecting to a cluster as a database user, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" }, "ListSchemas":{ "name":"ListSchemas", @@ -132,7 +132,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

Lists the schemas in a database. A token is returned to page through the schema list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" + "documentation":"

Lists the schemas in a database. A token is returned to page through the schema list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, provide the secret-arn of a secret stored in Secrets Manager which has username and password. The specified secret contains credentials to connect to the database you specify. When you are connecting to a cluster, you also supply the database name, If you provide a cluster identifier (dbClusterIdentifier), it must match the cluster identifier stored in the secret. When you are connecting to a serverless workgroup, you also supply the database name.

  • Temporary credentials - when connecting to your data warehouse, choose one of the following options:

    • When connecting to a serverless workgroup, specify the workgroup name and database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift-serverless:GetCredentials operation is required.

    • When connecting to a cluster as an IAM identity, specify the cluster identifier and the database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift:GetClusterCredentialsWithIAM operation is required.

    • When connecting to a cluster as a database user, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" }, "ListStatements":{ "name":"ListStatements", @@ -161,7 +161,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

List the tables in a database. If neither SchemaPattern nor TablePattern are specified, then all tables in the database are returned. A token is returned to page through the table list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" + "documentation":"

List the tables in a database. If neither SchemaPattern nor TablePattern are specified, then all tables in the database are returned. A token is returned to page through the table list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, provide the secret-arn of a secret stored in Secrets Manager which has username and password. The specified secret contains credentials to connect to the database you specify. When you are connecting to a cluster, you also supply the database name, If you provide a cluster identifier (dbClusterIdentifier), it must match the cluster identifier stored in the secret. When you are connecting to a serverless workgroup, you also supply the database name.

  • Temporary credentials - when connecting to your data warehouse, choose one of the following options:

    • When connecting to a serverless workgroup, specify the workgroup name and database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift-serverless:GetCredentials operation is required.

    • When connecting to a cluster as an IAM identity, specify the cluster identifier and the database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database user name IAM:foo. Also, permission to call the redshift:GetClusterCredentialsWithIAM operation is required.

    • When connecting to a cluster as a database user, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Management Guide.

" } }, "shapes":{ @@ -212,7 +212,7 @@ }, "DbUser":{ "shape":"String", - "documentation":"

The database user name. This parameter is required when connecting to a cluster and authenticating using temporary credentials.

" + "documentation":"

The database user name. This parameter is required when connecting to a cluster as a database user and authenticating using temporary credentials.

" }, "SecretArn":{ "shape":"SecretArn", @@ -232,7 +232,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -265,7 +265,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This element is not returned when connecting to a provisioned cluster.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This element is not returned when connecting to a provisioned cluster.

" } } }, @@ -478,7 +478,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN).

" } } }, @@ -500,7 +500,7 @@ }, "DbUser":{ "shape":"String", - "documentation":"

The database user name. This parameter is required when connecting to a cluster and authenticating using temporary credentials.

" + "documentation":"

The database user name. This parameter is required when connecting to a cluster as a database user and authenticating using temporary credentials.

" }, "MaxResults":{ "shape":"PageSize", @@ -524,7 +524,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -587,7 +587,7 @@ }, "DbUser":{ "shape":"String", - "documentation":"

The database user name. This parameter is required when connecting to a cluster and authenticating using temporary credentials.

" + "documentation":"

The database user name. This parameter is required when connecting to a cluster as a database user and authenticating using temporary credentials.

" }, "Parameters":{ "shape":"SqlParametersList", @@ -611,7 +611,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -644,7 +644,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This element is not returned when connecting to a provisioned cluster.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This element is not returned when connecting to a provisioned cluster.

" } } }, @@ -747,7 +747,7 @@ }, "DbUser":{ "shape":"String", - "documentation":"

The database user name. This parameter is required when connecting to a cluster and authenticating using temporary credentials.

" + "documentation":"

The database user name. This parameter is required when connecting to a cluster as a database user and authenticating using temporary credentials.

" }, "MaxResults":{ "shape":"PageSize", @@ -763,7 +763,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -798,7 +798,7 @@ }, "DbUser":{ "shape":"String", - "documentation":"

The database user name. This parameter is required when connecting to a cluster and authenticating using temporary credentials.

" + "documentation":"

The database user name. This parameter is required when connecting to a cluster as a database user and authenticating using temporary credentials.

" }, "MaxResults":{ "shape":"PageSize", @@ -818,7 +818,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -897,7 +897,7 @@ }, "DbUser":{ "shape":"String", - "documentation":"

The database user name. This parameter is required when connecting to a cluster and authenticating using temporary credentials.

" + "documentation":"

The database user name. This parameter is required when connecting to a cluster as a database user and authenticating using temporary credentials.

" }, "MaxResults":{ "shape":"PageSize", @@ -921,7 +921,7 @@ }, "WorkgroupName":{ "shape":"WorkgroupNameString", - "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" + "documentation":"

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -1190,9 +1190,9 @@ }, "WorkgroupNameString":{ "type":"string", - "max":64, + "max":128, "min":3, - "pattern":"^[a-z0-9-]+$" + "pattern":"^(([a-z0-9-]+)|(arn:(aws(-[a-z]+)*):redshift-serverless:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:workgroup/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}))$" }, "bool":{"type":"boolean"} }, diff --git a/services/redshiftserverless/pom.xml b/services/redshiftserverless/pom.xml index 358217a75e57..b2e6a8b4477b 100644 --- a/services/redshiftserverless/pom.xml +++ b/services/redshiftserverless/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT redshiftserverless AWS Java SDK :: Services :: Redshift Serverless diff --git a/services/rekognition/pom.xml b/services/rekognition/pom.xml index c9d8ab58a066..fb055a5fc116 100644 --- a/services/rekognition/pom.xml +++ b/services/rekognition/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT rekognition AWS Java SDK :: Services :: Amazon Rekognition diff --git a/services/rekognition/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/rekognition/src/main/resources/codegen-resources/endpoint-rule-set.json index c8fc2f4fa500..3972626b5537 100644 --- a/services/rekognition/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/rekognition/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,288 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rekognition-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rekognition.ca-central-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] - } - ], - "endpoint": { - "url": "https://rekognition-fips.ca-central-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + }, { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rekognition.us-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://rekognition-fips.us-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "rekognition.us-east-2" + "conditions": [], + "endpoint": { + "url": "https://rekognition-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rekognition-fips.us-east-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rekognition.us-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://rekognition-fips.us-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "rekognition.us-west-2" + "conditions": [], + "endpoint": { + "url": "https://rekognition-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://rekognition-fips.us-west-2.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "rekognition.us-gov-west-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "endpoint": { - "url": "https://rekognition-fips.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rekognition.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://rekognition-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [], + "type": "tree", + "rules": [ { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "conditions": [], + "endpoint": { + "url": "https://rekognition.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rekognition.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://rekognition.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/rekognition/src/main/resources/codegen-resources/endpoint-tests.json b/services/rekognition/src/main/resources/codegen-resources/endpoint-tests.json index 648e8febe9be..3a088ca53db4 100644 --- a/services/rekognition/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/rekognition/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-south-1.amazonaws.com" + "url": "https://rekognition.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-south-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.ap-south-1.api.aws" + "url": "https://rekognition.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-south-1" + "UseDualStack": false } }, { @@ -47,48 +34,35 @@ } }, "params": { + "Region": "ap-south-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ca-central-1.amazonaws.com" + "url": "https://rekognition.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ca-central-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.ca-central-1.api.aws" + "url": "https://rekognition.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -99,48 +73,22 @@ } }, "params": { + "Region": "ca-central-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.eu-central-1.amazonaws.com" + "url": "https://rekognition-fips.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" + "UseDualStack": false } }, { @@ -151,334 +99,230 @@ } }, "params": { + "Region": "eu-central-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.us-west-1.api.aws" + "url": "https://rekognition.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.us-west-1.amazonaws.com" + "url": "https://rekognition.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.us-west-2.api.aws" + "url": "https://rekognition.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.us-west-2.amazonaws.com" + "url": "https://rekognition-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.us-west-2.amazonaws.com" + "url": "https://rekognition.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.eu-west-2.amazonaws.com" + "url": "https://rekognition-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.eu-west-2.amazonaws.com" + "url": "https://rekognition.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.eu-west-1.amazonaws.com" + "url": "https://rekognition-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.eu-west-1.api.aws" + "url": "https://rekognition.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rekognition.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-northeast-2.api.aws" + "url": "https://rekognition-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-northeast-2.amazonaws.com" + "url": "https://rekognition-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rekognition.ap-northeast-2.amazonaws.com" + "url": "https://rekognition.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-northeast-1.api.aws" + "url": "https://rekognition-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-northeast-1.amazonaws.com" + "url": "https://rekognition-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rekognition.ap-northeast-1.api.aws" + "url": "https://rekognition.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.ap-northeast-1.amazonaws.com" + "url": "https://rekognition.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.us-gov-west-1.api.aws" + "url": "https://rekognition.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-west-1" + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -489,247 +333,175 @@ } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition.us-gov-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rekognition.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-southeast-1.api.aws" + "url": "https://rekognition-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-southeast-1.amazonaws.com" + "url": "https://rekognition-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rekognition.ap-southeast-1.api.aws" + "url": "https://rekognition.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.ap-southeast-1.amazonaws.com" + "url": "https://rekognition.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rekognition-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.ap-southeast-2.amazonaws.com" + "url": "https://rekognition-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rekognition.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition.ap-southeast-2.amazonaws.com" + "url": "https://rekognition.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rekognition-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.us-east-1.amazonaws.com" + "url": "https://rekognition-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://rekognition.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rekognition.us-east-1.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-2" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rekognition-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rekognition.us-east-2.api.aws" + "url": "https://rekognition.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://rekognition.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -738,7 +510,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -748,9 +519,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -760,11 +531,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/rekognition/src/main/resources/codegen-resources/service-2.json b/services/rekognition/src/main/resources/codegen-resources/service-2.json index d3be69f46951..211ffd83526b 100644 --- a/services/rekognition/src/main/resources/codegen-resources/service-2.json +++ b/services/rekognition/src/main/resources/codegen-resources/service-2.json @@ -51,7 +51,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Copies a version of an Amazon Rekognition Custom Labels model from a source project to a destination project. The source and destination projects can be in different AWS accounts but must be in the same AWS Region. You can't copy a model to another AWS service.

To copy a model version to a different AWS account, you need to create a resource-based policy known as a project policy. You attach the project policy to the source project by calling PutProjectPolicy. The project policy gives permission to copy the model version from a trusting AWS account to a trusted account.

For more information creating and attaching a project policy, see Attaching a project policy (SDK) in the Amazon Rekognition Custom Labels Developer Guide.

If you are copying a model version to a project in the same AWS account, you don't need to create a project policy.

To copy a model, the destination project, source project, and source model version must already exist.

Copying a model version takes a while to complete. To get the current status, call DescribeProjectVersions and check the value of Status in the ProjectVersionDescription object. The copy operation has finished when the value of Status is COPYING_COMPLETED.

" + "documentation":"

Copies a version of an Amazon Rekognition Custom Labels model from a source project to a destination project. The source and destination projects can be in different AWS accounts but must be in the same AWS Region. You can't copy a model to another AWS service.

To copy a model version to a different AWS account, you need to create a resource-based policy known as a project policy. You attach the project policy to the source project by calling PutProjectPolicy. The project policy gives permission to copy the model version from a trusting AWS account to a trusted account.

For more information creating and attaching a project policy, see Attaching a project policy (SDK) in the Amazon Rekognition Custom Labels Developer Guide.

If you are copying a model version to a project in the same AWS account, you don't need to create a project policy.

To copy a model, the destination project, source project, and source model version must already exist.

Copying a model version takes a while to complete. To get the current status, call DescribeProjectVersions and check the value of Status in the ProjectVersionDescription object. The copy operation has finished when the value of Status is COPYING_COMPLETED.

This operation requires permissions to perform the rekognition:CopyProjectVersion action.

" }, "CreateCollection":{ "name":"CreateCollection", @@ -93,6 +93,24 @@ ], "documentation":"

Creates a new Amazon Rekognition Custom Labels dataset. You can create a dataset by using an Amazon Sagemaker format manifest file or by copying an existing Amazon Rekognition Custom Labels dataset.

To create a training dataset for a project, specify train for the value of DatasetType. To create the test dataset for a project, specify test for the value of DatasetType.

The response from CreateDataset is the Amazon Resource Name (ARN) for the dataset. Creating a dataset takes a while to complete. Use DescribeDataset to check the current status. The dataset created successfully if the value of Status is CREATE_COMPLETE.

To check if any non-terminal errors occurred, call ListDatasetEntries and check for the presence of errors lists in the JSON Lines.

Dataset creation fails if a terminal error occurs (Status = CREATE_FAILED). Currently, you can't access the terminal error information.

For more information, see Creating dataset in the Amazon Rekognition Custom Labels Developer Guide.

This operation requires permissions to perform the rekognition:CreateDataset action. If you want to copy an existing dataset, you also require permission to perform the rekognition:ListDatasetEntries action.

" }, + "CreateFaceLivenessSession":{ + "name":"CreateFaceLivenessSession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFaceLivenessSessionRequest"}, + "output":{"shape":"CreateFaceLivenessSessionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ], + "documentation":"

This API operation initiates a Face Liveness session. It returns a SessionId, which you can use to start streaming Face Liveness video and get the results for a Face Liveness session. You can use the OutputConfig option in the Settings parameter to provide an Amazon S3 bucket location. The Amazon S3 bucket stores reference images and audit images. You can use AuditImagesLimit to limit of audit images returned. This number is between 0 and 4. By default, it is set to 0. The limit is best effort and based on the duration of the selfie-video.

", + "idempotent":true + }, "CreateProject":{ "name":"CreateProject", "http":{ @@ -151,7 +169,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates an Amazon Rekognition stream processor that you can use to detect and recognize faces or to detect labels in a streaming video.

Amazon Rekognition Video is a consumer of live video from Amazon Kinesis Video Streams. There are two different settings for stream processors in Amazon Rekognition: detecting faces and detecting labels.

  • If you are creating a stream processor for detecting faces, you provide as input a Kinesis video stream (Input) and a Kinesis data stream (Output) stream. You also specify the face recognition criteria in Settings. For example, the collection containing faces that you want to recognize. After you have finished analyzing a streaming video, use StopStreamProcessor to stop processing.

  • If you are creating a stream processor to detect labels, you provide as input a Kinesis video stream (Input), Amazon S3 bucket information (Output), and an Amazon SNS topic ARN (NotificationChannel). You can also provide a KMS key ID to encrypt the data sent to your Amazon S3 bucket. You specify what you want to detect in ConnectedHomeSettings, such as people, packages and people, or pets, people, and packages. You can also specify where in the frame you want Amazon Rekognition to monitor with RegionsOfInterest. When you run the StartStreamProcessor operation on a label detection stream processor, you input start and stop information to determine the length of the processing time.

Use Name to assign an identifier for the stream processor. You use Name to manage the stream processor. For example, you can start processing the source video by calling StartStreamProcessor with the Name field.

This operation requires permissions to perform the rekognition:CreateStreamProcessor action. If you want to tag your stream processor, you also require permission to perform the rekognition:TagResource operation.

" + "documentation":"

Creates an Amazon Rekognition stream processor that you can use to detect and recognize faces or to detect labels in a streaming video.

Amazon Rekognition Video is a consumer of live video from Amazon Kinesis Video Streams. There are two different settings for stream processors in Amazon Rekognition: detecting faces and detecting labels.

  • If you are creating a stream processor for detecting faces, you provide as input a Kinesis video stream (Input) and a Kinesis data stream (Output) stream for receiving the output. You must use the FaceSearch option in Settings, specifying the collection that contains the faces you want to recognize. After you have finished analyzing a streaming video, use StopStreamProcessor to stop processing.

  • If you are creating a stream processor to detect labels, you provide as input a Kinesis video stream (Input), Amazon S3 bucket information (Output), and an Amazon SNS topic ARN (NotificationChannel). You can also provide a KMS key ID to encrypt the data sent to your Amazon S3 bucket. You specify what you want to detect by using the ConnectedHome option in settings, and selecting one of the following: PERSON, PET, PACKAGE, ALL You can also specify where in the frame you want Amazon Rekognition to monitor with RegionsOfInterest. When you run the StartStreamProcessor operation on a label detection stream processor, you input start and stop information to determine the length of the processing time.

Use Name to assign an identifier for the stream processor. You use Name to manage the stream processor. For example, you can start processing the source video by calling StartStreamProcessor with the Name field.

This operation requires permissions to perform the rekognition:CreateStreamProcessor action. If you want to tag your stream processor, you also require permission to perform the rekognition:TagResource operation.

" }, "DeleteCollection":{ "name":"DeleteCollection", @@ -245,7 +263,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"InvalidPolicyRevisionIdException"} ], - "documentation":"

Deletes an existing project policy.

To get a list of project policies attached to a project, call ListProjectPolicies. To attach a project policy to a project, call PutProjectPolicy.

" + "documentation":"

Deletes an existing project policy.

To get a list of project policies attached to a project, call ListProjectPolicies. To attach a project policy to a project, call PutProjectPolicy.

This operation requires permissions to perform the rekognition:DeleteProjectPolicy action.

" }, "DeleteProjectVersion":{ "name":"DeleteProjectVersion", @@ -437,7 +455,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"InvalidImageFormatException"} ], - "documentation":"

Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature.

For an example, see Analyzing images stored in an Amazon S3 bucket in the Amazon Rekognition Developer Guide.

You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

Optional Parameters

You can specify one or both of the GENERAL_LABELS and IMAGE_PROPERTIES feature types when calling the DetectLabels API. Including GENERAL_LABELS will ensure the response includes the labels detected in the input image, while including IMAGE_PROPERTIES will ensure the response includes information about the image quality and color.

When using GENERAL_LABELS and/or IMAGE_PROPERTIES you can provide filtering criteria to the Settings parameter. You can filter with sets of individual labels or with label categories. You can specify inclusive filters, exclusive filters, or a combination of inclusive and exclusive filters. For more information on filtering see Detecting Labels in an Image.

You can specify MinConfidence to control the confidence threshold for the labels returned. The default is 55%. You can also add the MaxLabels parameter to limit the number of labels returned. The default and upper limit is 1000 labels.

Response Elements

For each object, scene, and concept the API returns one or more labels. The API returns the following types of information regarding labels:

  • Name - The name of the detected label.

  • Confidence - The level of confidence in the label assigned to a detected object.

  • Parents - The ancestor labels for a detected label. DetectLabels returns a hierarchical taxonomy of detected labels. For example, a detected car might be assigned the label car. The label car has two parent labels: Vehicle (its parent) and Transportation (its grandparent). The response includes the all ancestors for a label, where every ancestor is a unique label. In the previous example, Car, Vehicle, and Transportation are returned as unique labels in the response.

  • Aliases - Possible Aliases for the label.

  • Categories - The label categories that the detected label belongs to.

  • BoundingBox — Bounding boxes are described for all instances of detected common object labels, returned in an array of Instance objects. An Instance object contains a BoundingBox object, describing the location of the label on the input image. It also includes the confidence for the accuracy of the detected bounding box.

The API returns the following information regarding the image, as part of the ImageProperties structure:

  • Quality - Information about the Sharpness, Brightness, and Contrast of the input image, scored between 0 to 100. Image quality is returned for the entire image, as well as the background and the foreground.

  • Dominant Color - An array of the dominant colors in the image.

  • Foreground - Information about the sharpness, brightness, and dominant colors of the input image’s foreground.

  • Background - Information about the sharpness, brightness, and dominant colors of the input image’s background.

The list of returned labels will include at least one label for every detected object, along with information about that label. In the following example, suppose the input image has a lighthouse, the sea, and a rock. The response includes all three labels, one for each object, as well as the confidence in the label:

{Name: lighthouse, Confidence: 98.4629}

{Name: rock,Confidence: 79.2097}

{Name: sea,Confidence: 75.061}

The list of labels can include multiple labels for the same object. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.

{Name: flower,Confidence: 99.0562}

{Name: plant,Confidence: 99.0562}

{Name: tulip,Confidence: 99.0562}

In this example, the detection algorithm more precisely identifies the flower as a tulip.

If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectLabels action.

" + "documentation":"

Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature.

For an example, see Analyzing images stored in an Amazon S3 bucket in the Amazon Rekognition Developer Guide.

You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

Optional Parameters

You can specify one or both of the GENERAL_LABELS and IMAGE_PROPERTIES feature types when calling the DetectLabels API. Including GENERAL_LABELS will ensure the response includes the labels detected in the input image, while including IMAGE_PROPERTIES will ensure the response includes information about the image quality and color.

When using GENERAL_LABELS and/or IMAGE_PROPERTIES you can provide filtering criteria to the Settings parameter. You can filter with sets of individual labels or with label categories. You can specify inclusive filters, exclusive filters, or a combination of inclusive and exclusive filters. For more information on filtering see Detecting Labels in an Image.

You can specify MinConfidence to control the confidence threshold for the labels returned. The default is 55%. You can also add the MaxLabels parameter to limit the number of labels returned. The default and upper limit is 1000 labels.

Response Elements

For each object, scene, and concept the API returns one or more labels. The API returns the following types of information about labels:

  • Name - The name of the detected label.

  • Confidence - The level of confidence in the label assigned to a detected object.

  • Parents - The ancestor labels for a detected label. DetectLabels returns a hierarchical taxonomy of detected labels. For example, a detected car might be assigned the label car. The label car has two parent labels: Vehicle (its parent) and Transportation (its grandparent). The response includes the all ancestors for a label, where every ancestor is a unique label. In the previous example, Car, Vehicle, and Transportation are returned as unique labels in the response.

  • Aliases - Possible Aliases for the label.

  • Categories - The label categories that the detected label belongs to.

  • BoundingBox — Bounding boxes are described for all instances of detected common object labels, returned in an array of Instance objects. An Instance object contains a BoundingBox object, describing the location of the label on the input image. It also includes the confidence for the accuracy of the detected bounding box.

The API returns the following information regarding the image, as part of the ImageProperties structure:

  • Quality - Information about the Sharpness, Brightness, and Contrast of the input image, scored between 0 to 100. Image quality is returned for the entire image, as well as the background and the foreground.

  • Dominant Color - An array of the dominant colors in the image.

  • Foreground - Information about the sharpness, brightness, and dominant colors of the input image’s foreground.

  • Background - Information about the sharpness, brightness, and dominant colors of the input image’s background.

The list of returned labels will include at least one label for every detected object, along with information about that label. In the following example, suppose the input image has a lighthouse, the sea, and a rock. The response includes all three labels, one for each object, as well as the confidence in the label:

{Name: lighthouse, Confidence: 98.4629}

{Name: rock,Confidence: 79.2097}

{Name: sea,Confidence: 75.061}

The list of labels can include multiple labels for the same object. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.

{Name: flower,Confidence: 99.0562}

{Name: plant,Confidence: 99.0562}

{Name: tulip,Confidence: 99.0562}

In this example, the detection algorithm more precisely identifies the flower as a tulip.

If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides.

This is a stateless API operation that doesn't return any data.

This operation requires permissions to perform the rekognition:DetectLabels action.

" }, "DetectModerationLabels":{ "name":"DetectModerationLabels", @@ -594,6 +612,24 @@ ], "documentation":"

Gets face detection results for a Amazon Rekognition Video analysis started by StartFaceDetection.

Face detection with Amazon Rekognition Video is an asynchronous operation. You start face detection by calling StartFaceDetection which returns a job identifier (JobId). When the face detection operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartFaceDetection. To get the results of the face detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetFaceDetection and pass the job identifier (JobId) from the initial call to StartFaceDetection.

GetFaceDetection returns an array of detected faces (Faces) sorted by the time the faces were detected.

Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetFaceDetection and populate the NextToken request parameter with the token value returned from the previous call to GetFaceDetection.

" }, + "GetFaceLivenessSessionResults":{ + "name":"GetFaceLivenessSessionResults", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetFaceLivenessSessionResultsRequest"}, + "output":{"shape":"GetFaceLivenessSessionResultsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"SessionNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"} + ], + "documentation":"

Retrieves the results of a specific Face Liveness session. It requires the sessionId as input, which was created using CreateFaceLivenessSession. Returns the corresponding Face Liveness confidence score, a reference image that includes a face bounding box, and audit images that also contain face bounding boxes. The Face Liveness confidence score ranges from 0 to 100. The reference image can optionally be returned.

" + }, "GetFaceSearch":{ "name":"GetFaceSearch", "http":{ @@ -808,7 +844,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"InvalidPaginationTokenException"} ], - "documentation":"

Gets a list of the project policies attached to a project.

To attach a project policy to a project, call PutProjectPolicy. To remove a project policy from a project, call DeleteProjectPolicy.

" + "documentation":"

Gets a list of the project policies attached to a project.

To attach a project policy to a project, call PutProjectPolicy. To remove a project policy from a project, call DeleteProjectPolicy.

This operation requires permissions to perform the rekognition:ListProjectPolicies action.

" }, "ListStreamProcessors":{ "name":"ListStreamProcessors", @@ -867,7 +903,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Attaches a project policy to a Amazon Rekognition Custom Labels project in a trusting AWS account. A project policy specifies that a trusted AWS account can copy a model version from a trusting AWS account to a project in the trusted AWS account. To copy a model version you use the CopyProjectVersion operation.

For more information about the format of a project policy document, see Attaching a project policy (SDK) in the Amazon Rekognition Custom Labels Developer Guide.

The response from PutProjectPolicy is a revision ID for the project policy. You can attach multiple project policies to a project. You can also update an existing project policy by specifying the policy revision ID of the existing policy.

To remove a project policy from a project, call DeleteProjectPolicy. To get a list of project policies attached to a project, call ListProjectPolicies.

You copy a model version by calling CopyProjectVersion.

" + "documentation":"

Attaches a project policy to a Amazon Rekognition Custom Labels project in a trusting AWS account. A project policy specifies that a trusted AWS account can copy a model version from a trusting AWS account to a project in the trusted AWS account. To copy a model version you use the CopyProjectVersion operation.

For more information about the format of a project policy document, see Attaching a project policy (SDK) in the Amazon Rekognition Custom Labels Developer Guide.

The response from PutProjectPolicy is a revision ID for the project policy. You can attach multiple project policies to a project. You can also update an existing project policy by specifying the policy revision ID of the existing policy.

To remove a project policy from a project, call DeleteProjectPolicy. To get a list of project policies attached to a project, call ListProjectPolicies.

You copy a model version by calling CopyProjectVersion.

This operation requires permissions to perform the rekognition:PutProjectPolicy action.

" }, "RecognizeCelebrities":{ "name":"RecognizeCelebrities", @@ -1162,7 +1198,7 @@ {"shape":"ThrottlingException"}, {"shape":"ProvisionedThroughputExceededException"} ], - "documentation":"

Stops a running model. The operation might take a while to complete. To check the current status, call DescribeProjectVersions.

" + "documentation":"

Stops a running model. The operation might take a while to complete. To check the current status, call DescribeProjectVersions.

This operation requires permissions to perform the rekognition:StopProjectVersion action.

" }, "StopStreamProcessor":{ "name":"StopStreamProcessor", @@ -1254,7 +1290,8 @@ {"shape":"ThrottlingException"}, {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ProvisionedThroughputExceededException"} + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceInUseException"} ], "documentation":"

Allows you to update a stream processor. You can change some settings and regions of interest and delete certain parameters.

" } @@ -1329,6 +1366,27 @@ "type":"list", "member":{"shape":"AudioMetadata"} }, + "AuditImage":{ + "type":"structure", + "members":{ + "Bytes":{ + "shape":"LivenessImageBlob", + "documentation":"

The Base64-encoded bytes representing an image selected from the Face Liveness video and returned for audit purposes.

" + }, + "S3Object":{"shape":"S3Object"}, + "BoundingBox":{"shape":"BoundingBox"} + }, + "documentation":"

An image that is picked from the Face Liveness video and returned for audit trail purposes, returned as Base64-encoded bytes.

" + }, + "AuditImages":{ + "type":"list", + "member":{"shape":"AuditImage"} + }, + "AuditImagesLimit":{ + "type":"integer", + "max":4, + "min":0 + }, "Beard":{ "type":"structure", "members":{ @@ -1830,6 +1888,47 @@ } } }, + "CreateFaceLivenessSessionRequest":{ + "type":"structure", + "members":{ + "KmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

The identifier for your AWS Key Management Service key (AWS KMS key). Used to encrypt audit images and reference images.

" + }, + "Settings":{ + "shape":"CreateFaceLivenessSessionRequestSettings", + "documentation":"

A session settings object. It contains settings for the operation to be performed. For Face Liveness, it accepts OutputConfig and AuditImagesLimit.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

Idempotent token is used to recognize the Face Liveness request. If the same token is used with multiple CreateFaceLivenessSession requests, the same session is returned. This token is employed to avoid unintentionally creating the same session multiple times.

" + } + } + }, + "CreateFaceLivenessSessionRequestSettings":{ + "type":"structure", + "members":{ + "OutputConfig":{ + "shape":"LivenessOutputConfig", + "documentation":"

Can specify the location of an Amazon S3 bucket, where reference and audit images will be stored. Note that the Amazon S3 bucket must be located in the caller's AWS account and in the same region as the Face Liveness end-point. Additionally, the Amazon S3 object keys are auto-generated by the Face Liveness system.

" + }, + "AuditImagesLimit":{ + "shape":"AuditImagesLimit", + "documentation":"

Number of audit images to be returned back. Takes an integer between 0-4. Any integer less than 0 will return 0, any integer above 4 will return 4 images in the response. By default, it is set to 0. The limit is best effort and is based on the actual duration of the selfie-video.

" + } + }, + "documentation":"

A session settings object. It contains settings for the operation to be performed. It accepts arguments for OutputConfig and AuditImagesLimit.

" + }, + "CreateFaceLivenessSessionResponse":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"LivenessSessionId", + "documentation":"

A unique 128-bit UUID identifying a Face Liveness session.

" + } + } + }, "CreateProjectRequest":{ "type":"structure", "required":["ProjectName"], @@ -2675,7 +2774,7 @@ }, "Settings":{ "shape":"DetectLabelsSettings", - "documentation":"

A list of the filters to be applied to returned detected labels and image properties. Specified filters can be inclusive, exclusive, or a combination of both. Filters can be used for individual labels or label categories. The exact label names or label categories must be supplied. For a full list of labels and label categories, see LINK HERE.

" + "documentation":"

A list of the filters to be applied to returned detected labels and image properties. Specified filters can be inclusive, exclusive, or a combination of both. Filters can be used for individual labels or label categories. The exact label names or label categories must be supplied. For a full list of labels and label categories, see Detecting labels.

" } } }, @@ -3274,7 +3373,7 @@ "documentation":"

The label categories that should be excluded from the return from DetectLabels.

" } }, - "documentation":"

Contains filters for the object labels returned by DetectLabels. Filters can be inclusive, exclusive, or a combination of both and can be applied to individual l abels or entire label categories.

" + "documentation":"

Contains filters for the object labels returned by DetectLabels. Filters can be inclusive, exclusive, or a combination of both and can be applied to individual labels or entire label categories. To see a list of label categories, see Detecting Labels.

" }, "Geometry":{ "type":"structure", @@ -3458,6 +3557,45 @@ } } }, + "GetFaceLivenessSessionResultsRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"LivenessSessionId", + "documentation":"

A unique 128-bit UUID. This is used to uniquely identify the session and also acts as an idempotency token for all operations associated with the session.

" + } + } + }, + "GetFaceLivenessSessionResultsResponse":{ + "type":"structure", + "required":[ + "SessionId", + "Status" + ], + "members":{ + "SessionId":{ + "shape":"LivenessSessionId", + "documentation":"

The sessionId for which this request was called.

" + }, + "Status":{ + "shape":"LivenessSessionStatus", + "documentation":"

Represents a status corresponding to the state of the session. Possible statuses are: CREATED, IN_PROGRESS, SUCCEEDED, FAILED, EXPIRED.

" + }, + "Confidence":{ + "shape":"Percent", + "documentation":"

Probabalistic confidence score for if the person in the given video was live, represented as a float value between 0 to 100.

" + }, + "ReferenceImage":{ + "shape":"AuditImage", + "documentation":"

A high-quality image from the Face Liveness video that can be used for face comparison or search. It includes a bounding box of the face and the Base64-encoded bytes that return an image. If the CreateFaceLivenessSession request included an OutputConfig argument, the image will be uploaded to an S3Object specified in the output configuration. In case the reference image is not returned, it's recommended to retry the Liveness check.

" + }, + "AuditImages":{ + "shape":"AuditImages", + "documentation":"

A set of images from the Face Liveness video that can be used for audit purposes. It includes a bounding box of the face and the Base64-encoded bytes that return an image. If the CreateFaceLivenessSession request included an OutputConfig argument, the image will be uploaded to an S3Object specified in the output configuration.

" + } + } + }, "GetFaceSearchRequest":{ "type":"structure", "required":["JobId"], @@ -3817,7 +3955,7 @@ "members":{ "Bytes":{ "shape":"ImageBlob", - "documentation":"

Blob of image bytes up to 5 MBs.

" + "documentation":"

Blob of image bytes up to 5 MBs. Note that the maximum image size you can pass to DetectCustomLabels is 4MB.

" }, "S3Object":{ "shape":"S3Object", @@ -4491,6 +4629,47 @@ } } }, + "LivenessImageBlob":{ + "type":"blob", + "max":204800, + "min":1, + "sensitive":true + }, + "LivenessOutputConfig":{ + "type":"structure", + "required":["S3Bucket"], + "members":{ + "S3Bucket":{ + "shape":"S3Bucket", + "documentation":"

The path to an AWS Amazon S3 bucket used to store Face Liveness session results.

" + }, + "S3KeyPrefix":{ + "shape":"LivenessS3KeyPrefix", + "documentation":"

The prefix appended to the output files for the Face Liveness session results.

" + } + }, + "documentation":"

Contains settings that specify the location of an Amazon S3 bucket used to store the output of a Face Liveness session. Note that the S3 bucket must be located in the caller's AWS account and in the same region as the Face Liveness end-point. Additionally, the Amazon S3 object keys are auto-generated by the Face Liveness system.

" + }, + "LivenessS3KeyPrefix":{ + "type":"string", + "max":950, + "pattern":"\\S*" + }, + "LivenessSessionId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "LivenessSessionStatus":{ + "type":"string", + "enum":[ + "CREATED", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ] + }, "MalformedPolicyDocumentException":{ "type":"structure", "members":{ @@ -5459,6 +5638,13 @@ "documentation":"

The size of the collection exceeds the allowed limit. For more information, see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition Developer Guide.

", "exception":true }, + "SessionNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"

Occurs when a given sessionId is not found.

", + "exception":true + }, "ShotSegment":{ "type":"structure", "members":{ diff --git a/services/resiliencehub/pom.xml b/services/resiliencehub/pom.xml index 913ff881718b..d511343cf086 100644 --- a/services/resiliencehub/pom.xml +++ b/services/resiliencehub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT resiliencehub AWS Java SDK :: Services :: Resiliencehub diff --git a/services/resiliencehub/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/resiliencehub/src/main/resources/codegen-resources/endpoint-rule-set.json index 4b3afb58e795..5387f61cc97b 100644 --- a/services/resiliencehub/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/resiliencehub/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://resiliencehub.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://resiliencehub.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://resiliencehub.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/resiliencehub/src/main/resources/codegen-resources/endpoint-tests.json b/services/resiliencehub/src/main/resources/codegen-resources/endpoint-tests.json index dd7a4640ae65..861ad6c4fc31 100644 --- a/services/resiliencehub/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/resiliencehub/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1056 +1,528 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resiliencehub.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.eu-west-1.api.aws" + "url": "https://resiliencehub.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.eu-west-1.amazonaws.com" + "url": "https://resiliencehub.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.eu-west-1.api.aws" + "url": "https://resiliencehub.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.eu-west-1.amazonaws.com" + "url": "https://resiliencehub.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-northeast-2.api.aws" + "url": "https://resiliencehub.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-northeast-2.amazonaws.com" + "url": "https://resiliencehub.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-northeast-2.api.aws" + "url": "https://resiliencehub.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-northeast-2.amazonaws.com" + "url": "https://resiliencehub.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-northeast-1.api.aws" + "url": "https://resiliencehub.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-northeast-1.amazonaws.com" + "url": "https://resiliencehub.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-northeast-1.api.aws" + "url": "https://resiliencehub.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-northeast-1.amazonaws.com" + "url": "https://resiliencehub.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.me-south-1.api.aws" + "url": "https://resiliencehub.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.me-south-1.amazonaws.com" + "url": "https://resiliencehub.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.me-south-1.api.aws" + "url": "https://resiliencehub.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, "Region": "me-south-1", - "UseDualStack": true + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.me-south-1.amazonaws.com" + "url": "https://resiliencehub.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.sa-east-1.api.aws" + "url": "https://resiliencehub.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.sa-east-1.amazonaws.com" + "url": "https://resiliencehub.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.sa-east-1.api.aws" + "url": "https://resiliencehub.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.sa-east-1.amazonaws.com" + "url": "https://resiliencehub.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-east-1.api.aws" + "url": "https://resiliencehub-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-east-1.amazonaws.com" + "url": "https://resiliencehub-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-east-1.api.aws" + "url": "https://resiliencehub.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-east-1.amazonaws.com" + "url": "https://resiliencehub-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-southeast-1.api.aws" + "url": "https://resiliencehub-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-southeast-1.amazonaws.com" + "url": "https://resiliencehub.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-southeast-1.api.aws" + "url": "https://resiliencehub.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-southeast-1.amazonaws.com" + "url": "https://resiliencehub-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-southeast-2.api.aws" + "url": "https://resiliencehub-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.ap-southeast-2.amazonaws.com" + "url": "https://resiliencehub.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.ap-southeast-2.api.aws" + "url": "https://resiliencehub.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://resiliencehub.ap-southeast-2.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.us-east-1.api.aws" + "url": "https://resiliencehub-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.us-east-1.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.us-east-1.api.aws" + "url": "https://resiliencehub.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://resiliencehub.us-east-1.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub-fips.us-east-2.api.aws" + "url": "https://resiliencehub-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://resiliencehub-fips.us-east-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.us-east-2.api.aws" + "url": "https://resiliencehub.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://resiliencehub.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -1060,9 +532,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1072,11 +544,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", "UseDualStack": true, + "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/resiliencehub/src/main/resources/codegen-resources/paginators-1.json b/services/resiliencehub/src/main/resources/codegen-resources/paginators-1.json index 24cf4c73de67..ce7bf05b483e 100644 --- a/services/resiliencehub/src/main/resources/codegen-resources/paginators-1.json +++ b/services/resiliencehub/src/main/resources/codegen-resources/paginators-1.json @@ -20,6 +20,16 @@ "output_token": "nextToken", "limit_key": "maxResults" }, + "ListAppInputSources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAppVersionAppComponents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListAppVersionResourceMappings": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/services/resiliencehub/src/main/resources/codegen-resources/service-2.json b/services/resiliencehub/src/main/resources/codegen-resources/service-2.json index 80a223970437..1d59eb52a09f 100644 --- a/services/resiliencehub/src/main/resources/codegen-resources/service-2.json +++ b/services/resiliencehub/src/main/resources/codegen-resources/service-2.json @@ -29,7 +29,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Adds the resource mapping for the draft application version.

" + "documentation":"

Adds the resource mapping for the draft application version. You can also update an existing resource mapping to a new physical resource.

" }, "CreateApp":{ "name":"CreateApp", @@ -49,7 +49,47 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates a Resilience Hub application. A Resilience Hub application is a collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an application name, resources from one or more–up to five–CloudFormation stacks, and an appropriate resiliency policy.

After you create a Resilience Hub application, you publish it so that you can run a resiliency assessment on it. You can then use recommendations from the assessment to improve resiliency by running another assessment, comparing results, and then iterating the process until you achieve your goals for recovery time objective (RTO) and recovery point objective (RPO).

" + "documentation":"

Creates an Resilience Hub application. An Resilience Hub application is a collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an application name, resources from one or more–up to 20–CloudFormation stacks, and an appropriate resiliency policy.

After you create an Resilience Hub application, you publish it so that you can run a resiliency assessment on it. You can then use recommendations from the assessment to improve resiliency by running another assessment, comparing results, and then iterating the process until you achieve your goals for recovery time objective (RTO) and recovery point objective (RPO).

" + }, + "CreateAppVersionAppComponent":{ + "name":"CreateAppVersionAppComponent", + "http":{ + "method":"POST", + "requestUri":"/create-app-version-app-component", + "responseCode":200 + }, + "input":{"shape":"CreateAppVersionAppComponentRequest"}, + "output":{"shape":"CreateAppVersionAppComponentResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a new Application Component in the Resilience Hub application.

This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

" + }, + "CreateAppVersionResource":{ + "name":"CreateAppVersionResource", + "http":{ + "method":"POST", + "requestUri":"/create-app-version-resource", + "responseCode":200 + }, + "input":{"shape":"CreateAppVersionResourceRequest"}, + "output":{"shape":"CreateAppVersionResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Adds a resource to the Resilience Hub application and assigns it to the specified Application Components. If you specify a new Application Component, Resilience Hub will automatically create the Application Component.

  • This action has no effect outside Resilience Hub.

  • This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

  • To update application version with new physicalResourceID, you must call ResolveAppVersionResources API.

" }, "CreateRecommendationTemplate":{ "name":"CreateRecommendationTemplate", @@ -64,11 +104,12 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, {"shape":"ThrottlingException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates a new recommendation template.

" + "documentation":"

Creates a new recommendation template for the Resilience Hub application.

" }, "CreateResiliencyPolicy":{ "name":"CreateResiliencyPolicy", @@ -105,7 +146,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Deletes an AWS Resilience Hub application. This is a destructive action that can't be undone.

" + "documentation":"

Deletes an Resilience Hub application. This is a destructive action that can't be undone.

" }, "DeleteAppAssessment":{ "name":"DeleteAppAssessment", @@ -124,7 +165,64 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Deletes an AWS Resilience Hub application assessment. This is a destructive action that can't be undone.

" + "documentation":"

Deletes an Resilience Hub application assessment. This is a destructive action that can't be undone.

" + }, + "DeleteAppInputSource":{ + "name":"DeleteAppInputSource", + "http":{ + "method":"POST", + "requestUri":"/delete-app-input-source", + "responseCode":200 + }, + "input":{"shape":"DeleteAppInputSourceRequest"}, + "output":{"shape":"DeleteAppInputSourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes the input source and all of its imported resources from the Resilience Hub application.

" + }, + "DeleteAppVersionAppComponent":{ + "name":"DeleteAppVersionAppComponent", + "http":{ + "method":"POST", + "requestUri":"/delete-app-version-app-component", + "responseCode":200 + }, + "input":{"shape":"DeleteAppVersionAppComponentRequest"}, + "output":{"shape":"DeleteAppVersionAppComponentResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes an Application Component from the Resilience Hub application.

  • This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

  • You will not be able to delete an Application Component if it has resources associated with it.

" + }, + "DeleteAppVersionResource":{ + "name":"DeleteAppVersionResource", + "http":{ + "method":"POST", + "requestUri":"/delete-app-version-resource", + "responseCode":200 + }, + "input":{"shape":"DeleteAppVersionResourceRequest"}, + "output":{"shape":"DeleteAppVersionResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a resource from the Resilience Hub application.

  • You can only delete a manually added resource. To exclude non-manually added resources, use the UpdateAppVersionResource API.

  • This action has no effect outside Resilience Hub.

  • This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

" }, "DeleteRecommendationTemplate":{ "name":"DeleteRecommendationTemplate", @@ -179,7 +277,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Describes an AWS Resilience Hub application.

" + "documentation":"

Describes an Resilience Hub application.

" }, "DescribeAppAssessment":{ "name":"DescribeAppAssessment", @@ -197,7 +295,63 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Describes an assessment for an AWS Resilience Hub application.

" + "documentation":"

Describes an assessment for an Resilience Hub application.

" + }, + "DescribeAppVersion":{ + "name":"DescribeAppVersion", + "http":{ + "method":"POST", + "requestUri":"/describe-app-version", + "responseCode":200 + }, + "input":{"shape":"DescribeAppVersionRequest"}, + "output":{"shape":"DescribeAppVersionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes the Resilience Hub application version.

" + }, + "DescribeAppVersionAppComponent":{ + "name":"DescribeAppVersionAppComponent", + "http":{ + "method":"POST", + "requestUri":"/describe-app-version-app-component", + "responseCode":200 + }, + "input":{"shape":"DescribeAppVersionAppComponentRequest"}, + "output":{"shape":"DescribeAppVersionAppComponentResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes an Application Component in the Resilience Hub application.

" + }, + "DescribeAppVersionResource":{ + "name":"DescribeAppVersionResource", + "http":{ + "method":"POST", + "requestUri":"/describe-app-version-resource", + "responseCode":200 + }, + "input":{"shape":"DescribeAppVersionResourceRequest"}, + "output":{"shape":"DescribeAppVersionResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes a resource of the Resilience Hub application.

This API accepts only one of the following parameters to descibe the resource:

  • resourceName

  • logicalResourceId

  • physicalResourceId (Along with physicalResourceId, you can also provide awsAccountId, and awsRegion)

" }, "DescribeAppVersionResourcesResolutionStatus":{ "name":"DescribeAppVersionResourcesResolutionStatus", @@ -233,7 +387,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Describes details about an AWS Resilience Hub

" + "documentation":"

Describes details about an Resilience Hub application.

" }, "DescribeDraftAppVersionResourcesImportStatus":{ "name":"DescribeDraftAppVersionResourcesImportStatus", @@ -251,7 +405,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Describes the status of importing resources to an application version.

" + "documentation":"

Describes the status of importing resources to an application version.

If you get a 404 error with ResourceImportStatusNotFoundAppMetadataException, you must call importResourcesToDraftAppVersion after creating the application and before calling describeDraftAppVersionResourcesImportStatus to obtain the status.

" }, "DescribeResiliencyPolicy":{ "name":"DescribeResiliencyPolicy", @@ -269,7 +423,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Describes a specified resiliency policy for an AWS Resilience Hub application. The returned policy object includes creation time, data location constraints, the Amazon Resource Name (ARN) for the policy, tags, tier, and more.

" + "documentation":"

Describes a specified resiliency policy for an Resilience Hub application. The returned policy object includes creation time, data location constraints, the Amazon Resource Name (ARN) for the policy, tags, tier, and more.

" }, "ImportResourcesToDraftAppVersion":{ "name":"ImportResourcesToDraftAppVersion", @@ -288,7 +442,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Imports resources from sources such as a CloudFormation stack, resource-groups, or application registry app to a draft application version.

" + "documentation":"

Imports resources to Resilience Hub application draft version from different input sources. For more information about the input sources supported by Resilience Hub, see Discover the structure and describe your Resilience Hub application.

" }, "ListAlarmRecommendations":{ "name":"ListAlarmRecommendations", @@ -306,7 +460,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the alarm recommendations for a AWS Resilience Hub application.

" + "documentation":"

Lists the alarm recommendations for an Resilience Hub application.

" }, "ListAppAssessments":{ "name":"ListAppAssessments", @@ -324,7 +478,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the assessments for an AWS Resilience Hub application. You can use request parameters to refine the results for the response object.

" + "documentation":"

Lists the assessments for an Resilience Hub application. You can use request parameters to refine the results for the response object.

" }, "ListAppComponentCompliances":{ "name":"ListAppComponentCompliances", @@ -342,7 +496,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the compliances for an AWS Resilience Hub component.

" + "documentation":"

Lists the compliances for an Resilience Hub Application Component.

" }, "ListAppComponentRecommendations":{ "name":"ListAppComponentRecommendations", @@ -360,7 +514,44 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the recommendations for an AWS Resilience Hub component.

" + "documentation":"

Lists the recommendations for an Resilience Hub Application Component.

" + }, + "ListAppInputSources":{ + "name":"ListAppInputSources", + "http":{ + "method":"POST", + "requestUri":"/list-app-input-sources", + "responseCode":200 + }, + "input":{"shape":"ListAppInputSourcesRequest"}, + "output":{"shape":"ListAppInputSourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all the input sources of the Resilience Hub application. For more information about the input sources supported by Resilience Hub, see Discover the structure and describe your Resilience Hub application.

" + }, + "ListAppVersionAppComponents":{ + "name":"ListAppVersionAppComponents", + "http":{ + "method":"POST", + "requestUri":"/list-app-version-app-components", + "responseCode":200 + }, + "input":{"shape":"ListAppVersionAppComponentsRequest"}, + "output":{"shape":"ListAppVersionAppComponentsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all the Application Components in the Resilience Hub application.

" }, "ListAppVersionResourceMappings":{ "name":"ListAppVersionResourceMappings", @@ -397,7 +588,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists all the resources in an application version.

" + "documentation":"

Lists all the resources in an Resilience Hub application.

" }, "ListAppVersions":{ "name":"ListAppVersions", @@ -431,7 +622,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists your Resilience Hub applications.

" + "documentation":"

Lists your Resilience Hub applications.

You can filter applications using only one filter at a time or without using any filter. If you try to filter applications using multiple filters, you will get the following error:

An error occurred (ValidationException) when calling the ListApps operation: Only one filter is supported for this operation.

" }, "ListRecommendationTemplates":{ "name":"ListRecommendationTemplates", @@ -559,7 +750,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the resources that are not currently supported in AWS Resilience Hub. An unsupported resource is a resource that exists in the object that was used to create an app, but is not supported by Resilience Hub.

" + "documentation":"

Lists the resources that are not currently supported in Resilience Hub. An unsupported resource is a resource that exists in the object that was used to create an app, but is not supported by Resilience Hub.

" }, "PublishAppVersion":{ "name":"PublishAppVersion", @@ -597,7 +788,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Adds or updates the app template for a draft version of a Resilience Hub app.

" + "documentation":"

Adds or updates the app template for an Resilience Hub application draft version.

" }, "RemoveDraftAppVersionResourceMappings":{ "name":"RemoveDraftAppVersionResourceMappings", @@ -712,6 +903,64 @@ ], "documentation":"

Updates an application.

" }, + "UpdateAppVersion":{ + "name":"UpdateAppVersion", + "http":{ + "method":"POST", + "requestUri":"/update-app-version", + "responseCode":200 + }, + "input":{"shape":"UpdateAppVersionRequest"}, + "output":{"shape":"UpdateAppVersionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the Resilience Hub application version.

This API updates the Resilience Hub application draft version. To use this information for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

" + }, + "UpdateAppVersionAppComponent":{ + "name":"UpdateAppVersionAppComponent", + "http":{ + "method":"POST", + "requestUri":"/update-app-version-app-component", + "responseCode":200 + }, + "input":{"shape":"UpdateAppVersionAppComponentRequest"}, + "output":{"shape":"UpdateAppVersionAppComponentResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing Application Component in the Resilience Hub application.

This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

" + }, + "UpdateAppVersionResource":{ + "name":"UpdateAppVersionResource", + "http":{ + "method":"POST", + "requestUri":"/update-app-version-resource", + "responseCode":200 + }, + "input":{"shape":"UpdateAppVersionResourceRequest"}, + "output":{"shape":"UpdateAppVersionResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the resource details in the Resilience Hub application.

  • This action has no effect outside Resilience Hub.

  • This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

  • To update application version with new physicalResourceID, you must call ResolveAppVersionResources API.

" + }, "UpdateResiliencyPolicy":{ "name":"UpdateResiliencyPolicy", "http":{ @@ -754,11 +1003,11 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "resourceMappings":{ "shape":"ResourceMappingList", - "documentation":"

Mappings used to map logical resources from the template to physical resources. You can use the mapping type CFN_STACK if the application template uses a logical stack name. Or you can map individual resources by using the mapping type RESOURCE. We recommend using the mapping type CFN_STACK if the application is backed by a CloudFormation stack.

" + "documentation":"

Mappings used to map logical resources from the template to physical resources. You can use the mapping type CFN_STACK if the application template uses a logical stack name. Or you can map individual resources by using the mapping type RESOURCE. We recommend using the mapping type CFN_STACK if the application is backed by a CloudFormation stack.

" } } }, @@ -772,7 +1021,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -784,6 +1033,17 @@ } } }, + "AdditionalInfoMap":{ + "type":"map", + "key":{"shape":"String128WithoutWhitespace"}, + "value":{"shape":"AdditionalInfoValueList"} + }, + "AdditionalInfoValueList":{ + "type":"list", + "member":{"shape":"String1024"}, + "max":10, + "min":1 + }, "AlarmRecommendation":{ "type":"structure", "required":[ @@ -795,7 +1055,7 @@ "members":{ "appComponentName":{ "shape":"EntityId", - "documentation":"

The application component for the CloudWatch alarm recommendation.

" + "documentation":"

The Application Component for the CloudWatch alarm recommendation.

" }, "description":{ "shape":"EntityDescription", @@ -858,7 +1118,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "assessmentSchedule":{ "shape":"AppAssessmentScheduleType", @@ -890,7 +1150,7 @@ }, "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "resiliencyScore":{ "shape":"Double", @@ -905,7 +1165,7 @@ "documentation":"

The tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair.

" } }, - "documentation":"

Defines a Resilience Hub application.

" + "documentation":"

Defines an Resilience Hub application.

" }, "AppAssessment":{ "type":"structure", @@ -917,7 +1177,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -925,7 +1185,7 @@ }, "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "assessmentName":{ "shape":"EntityName", @@ -998,7 +1258,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -1006,7 +1266,7 @@ }, "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "assessmentName":{ "shape":"EntityName", @@ -1067,27 +1327,35 @@ "type" ], "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

Key: \"failover-regions\"

Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

" + }, + "id":{ + "shape":"String255", + "documentation":"

Unique identifier of the Application Component.

" + }, "name":{ "shape":"String255", - "documentation":"

The name of the application component.

" + "documentation":"

The name of the Application Component.

" }, "type":{ "shape":"String255", - "documentation":"

The type of application component.

" + "documentation":"

The type of Application Component.

" } }, - "documentation":"

Defines an application component.

" + "documentation":"

Defines an Application Component.

" }, "AppComponentCompliance":{ "type":"structure", "members":{ "appComponentName":{ "shape":"EntityId", - "documentation":"

The name of the application component.

" + "documentation":"

The name of the Application Component.

" }, "compliance":{ "shape":"AssessmentCompliance", - "documentation":"

The compliance of the application component against the resiliency policy.

" + "documentation":"

The compliance of the Application Component against the resiliency policy.

" }, "cost":{ "shape":"Cost", @@ -1106,12 +1374,51 @@ "documentation":"

The status of the action.

" } }, - "documentation":"

Defines the compliance of an application component against the resiliency policy.

" + "documentation":"

Defines the compliance of an Application Component against the resiliency policy.

" }, "AppComponentList":{ "type":"list", "member":{"shape":"AppComponent"} }, + "AppComponentNameList":{ + "type":"list", + "member":{"shape":"String255"} + }, + "AppInputSource":{ + "type":"structure", + "required":["importType"], + "members":{ + "eksSourceClusterNamespace":{ + "shape":"EksSourceClusterNamespace", + "documentation":"

The namespace on your Amazon Elastic Kubernetes Service cluster.

" + }, + "importType":{ + "shape":"ResourceMappingType", + "documentation":"

The resource type of the input source.

" + }, + "resourceCount":{ + "shape":"Integer", + "documentation":"

The number of resources.

" + }, + "sourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the input source. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "sourceName":{ + "shape":"String255", + "documentation":"

The name of the input source.

" + }, + "terraformSource":{ + "shape":"TerraformSource", + "documentation":"

The name of the Terraform s3 state file.

" + } + }, + "documentation":"

The list of Resilience Hub application input sources.

" + }, + "AppInputSourceList":{ + "type":"list", + "member":{"shape":"AppInputSource"} + }, "AppStatusType":{ "type":"string", "enum":[ @@ -1129,7 +1436,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "assessmentSchedule":{ "shape":"AppAssessmentScheduleType", @@ -1170,7 +1477,7 @@ "type":"string", "max":204800, "min":0, - "pattern":"^[\\w\\s:,-\\.'{}\\[\\]:\"]+$" + "pattern":"^[\\w\\s:,-\\.'\\/{}\\[\\]:\"\\\\]+$" }, "AppVersionList":{ "type":"list", @@ -1189,7 +1496,7 @@ }, "Arn":{ "type":"string", - "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+=,@.-]{0,1023}$" + "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}$" }, "ArnList":{ "type":"list", @@ -1257,7 +1564,7 @@ "members":{ "appComponentName":{ "shape":"EntityId", - "documentation":"

The name of the application component.

" + "documentation":"

The name of the Application Component.

" }, "configRecommendations":{ "shape":"ConfigRecommendationList", @@ -1268,7 +1575,7 @@ "documentation":"

The recommendation status.

" } }, - "documentation":"

Defines recommendations for a Resilience Hub application component, returned as an object. This object contains component names, configuration recommendations, and recommendation statuses.

" + "documentation":"

Defines recommendations for an Resilience Hub Application Component, returned as an object. This object contains component names, configuration recommendations, and recommendation statuses.

" }, "ComponentRecommendationList":{ "type":"list", @@ -1284,7 +1591,7 @@ "members":{ "appComponentName":{ "shape":"EntityId", - "documentation":"

The application component name.

" + "documentation":"

The name of the Application Component.

" }, "compliance":{ "shape":"AssessmentCompliance", @@ -1353,7 +1660,7 @@ "documentation":"

The type of the resource that the exception applies to.

" } }, - "documentation":"

Occurs when a conflict with a previous successful write is detected. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception.

", + "documentation":"

This exception occurs when a conflict with a previous successful write is detected. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception.

", "error":{ "httpStatusCode":409, "senderFault":true @@ -1415,7 +1722,7 @@ }, "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "tags":{ "shape":"TagMap", @@ -1433,6 +1740,137 @@ } } }, + "CreateAppVersionAppComponentRequest":{ + "type":"structure", + "required":[ + "appArn", + "name", + "type" + ], + "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Currently, there is no supported additional information for Application Components.

" + }, + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests.

", + "idempotencyToken":true + }, + "id":{ + "shape":"String255", + "documentation":"

The identifier of the Application Component.

" + }, + "name":{ + "shape":"String255", + "documentation":"

The name of the Application Component.

" + }, + "type":{ + "shape":"String255", + "documentation":"

The type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent.

" + } + } + }, + "CreateAppVersionAppComponentResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appComponent":{ + "shape":"AppComponent", + "documentation":"

The list of Application Components that belong to this resource.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + } + } + }, + "CreateAppVersionResourceRequest":{ + "type":"structure", + "required":[ + "appArn", + "appComponents", + "logicalResourceId", + "physicalResourceId", + "resourceName", + "resourceType" + ], + "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Currently, there is no supported additional information for resources.

" + }, + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appComponents":{ + "shape":"AppComponentNameList", + "documentation":"

The list of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added.

" + }, + "awsAccountId":{ + "shape":"CustomerId", + "documentation":"

The Amazon Web Services account that owns the physical resource.

" + }, + "awsRegion":{ + "shape":"AwsRegion", + "documentation":"

The Amazon Web Services region that owns the physical resource.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests.

", + "idempotencyToken":true + }, + "logicalResourceId":{ + "shape":"LogicalResourceId", + "documentation":"

The logical identifier of the resource.

" + }, + "physicalResourceId":{ + "shape":"String2048", + "documentation":"

The physical identifier of the resource.

" + }, + "resourceName":{ + "shape":"EntityName", + "documentation":"

The name of the resource.

" + }, + "resourceType":{ + "shape":"String255", + "documentation":"

The type of resource.

" + } + } + }, + "CreateAppVersionResourceResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + }, + "physicalResource":{ + "shape":"PhysicalResource", + "documentation":"

Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier.

" + } + } + }, "CreateRecommendationTemplateRequest":{ "type":"structure", "required":[ @@ -1442,7 +1880,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "bucketName":{ "shape":"EntityName", @@ -1556,7 +1994,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "clientToken":{ "shape":"ClientToken", @@ -1574,7 +2012,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "assessmentStatus":{ "shape":"AssessmentStatus", @@ -1582,13 +2020,53 @@ } } }, + "DeleteAppInputSourceRequest":{ + "type":"structure", + "required":["appArn"], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests.

", + "idempotencyToken":true + }, + "eksSourceClusterNamespace":{ + "shape":"EksSourceClusterNamespace", + "documentation":"

The namespace on your Amazon Elastic Kubernetes Service cluster that you want to delete from the Resilience Hub application.

" + }, + "sourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the imported resource you want to remove from the Resilience Hub application. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "terraformSource":{ + "shape":"TerraformSource", + "documentation":"

The imported Terraform s3 state file you want to remove from the Resilience Hub application.

" + } + } + }, + "DeleteAppInputSourceResponse":{ + "type":"structure", + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appInputSource":{ + "shape":"AppInputSource", + "documentation":"

The name of the input source from where the application resource is imported from.

" + } + } + }, "DeleteAppRequest":{ "type":"structure", "required":["appArn"], "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "clientToken":{ "shape":"ClientToken", @@ -1597,7 +2075,7 @@ }, "forceDelete":{ "shape":"BooleanOptional", - "documentation":"

A boolean option to force the deletion of a Resilience Hub application.

" + "documentation":"

A boolean option to force the deletion of an Resilience Hub application.

" } } }, @@ -1607,7 +2085,106 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + } + } + }, + "DeleteAppVersionAppComponentRequest":{ + "type":"structure", + "required":[ + "appArn", + "id" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests.

", + "idempotencyToken":true + }, + "id":{ + "shape":"String255", + "documentation":"

The identifier of the Application Component.

" + } + } + }, + "DeleteAppVersionAppComponentResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appComponent":{ + "shape":"AppComponent", + "documentation":"

The list of Application Components that belong to this resource.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + } + } + }, + "DeleteAppVersionResourceRequest":{ + "type":"structure", + "required":["appArn"], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "awsAccountId":{ + "shape":"CustomerId", + "documentation":"

The Amazon Web Services account that owns the physical resource.

" + }, + "awsRegion":{ + "shape":"AwsRegion", + "documentation":"

The Amazon Web Services region that owns the physical resource.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests.

", + "idempotencyToken":true + }, + "logicalResourceId":{ + "shape":"LogicalResourceId", + "documentation":"

The logical identifier of the resource.

" + }, + "physicalResourceId":{ + "shape":"String2048", + "documentation":"

The physical identifier of the resource.

" + }, + "resourceName":{ + "shape":"EntityName", + "documentation":"

The name of the resource.

" + } + } + }, + "DeleteAppVersionResourceResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + }, + "physicalResource":{ + "shape":"PhysicalResource", + "documentation":"

Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier.

" } } }, @@ -1654,7 +2231,7 @@ }, "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -1664,7 +2241,7 @@ "members":{ "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -1674,7 +2251,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -1684,7 +2261,7 @@ "members":{ "assessment":{ "shape":"AppAssessment", - "documentation":"

The assessment for an AWS Resilience Hub application, returned as an object. This object includes Amazon Resource Names (ARNs), compliance information, compliance status, cost, messages, resiliency scores, and more.

" + "documentation":"

The assessment for an Resilience Hub application, returned as an object. This object includes Amazon Resource Names (ARNs), compliance information, compliance status, cost, messages, resiliency scores, and more.

" } } }, @@ -1694,7 +2271,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -1708,6 +2285,124 @@ } } }, + "DescribeAppVersionAppComponentRequest":{ + "type":"structure", + "required":[ + "appArn", + "appVersion", + "id" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + }, + "id":{ + "shape":"String255", + "documentation":"

The identifier of the Application Component.

" + } + } + }, + "DescribeAppVersionAppComponentResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appComponent":{ + "shape":"AppComponent", + "documentation":"

The list of Application Components that belong to this resource.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + } + } + }, + "DescribeAppVersionRequest":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + } + } + }, + "DescribeAppVersionResourceRequest":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + }, + "awsAccountId":{ + "shape":"CustomerId", + "documentation":"

The Amazon Web Services account that owns the physical resource.

" + }, + "awsRegion":{ + "shape":"AwsRegion", + "documentation":"

The Amazon Web Services region that owns the physical resource.

" + }, + "logicalResourceId":{ + "shape":"LogicalResourceId", + "documentation":"

The logical identifier of the resource.

" + }, + "physicalResourceId":{ + "shape":"String2048", + "documentation":"

The physical identifier of the resource.

" + }, + "resourceName":{ + "shape":"EntityName", + "documentation":"

The name of the resource.

" + } + } + }, + "DescribeAppVersionResourceResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + }, + "physicalResource":{ + "shape":"PhysicalResource", + "documentation":"

Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier.

" + } + } + }, "DescribeAppVersionResourcesResolutionStatusRequest":{ "type":"structure", "required":[ @@ -1717,7 +2412,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -1740,7 +2435,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -1760,6 +2455,27 @@ } } }, + "DescribeAppVersionResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

Currently, this parameter supports only failover region and account.

" + }, + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + } + } + }, "DescribeAppVersionTemplateRequest":{ "type":"structure", "required":[ @@ -1769,7 +2485,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -1787,11 +2503,11 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appTemplateBody":{ "shape":"AppTemplateBody", - "documentation":"

The body of the template.

" + "documentation":"

A JSON string that provides information about your application structure. To learn more about the appTemplateBody template, see the sample template provided in the Examples section.

The appTemplateBody JSON string has the following structure:

  • resources

    The list of logical resources that must be included in the Resilience Hub application.

    Type: Array

    Don't add the resources that you want to exclude.

    Each resources array item includes the following fields:

    • logicalResourceId

      The logical identifier of the resource.

      Type: Object

      Each logicalResourceId object includes the following fields:

      • identifier

        The identifier of the resource.

        Type: String

      • logicalStackName

        The name of the CloudFormation stack this resource belongs to.

        Type: String

      • resourceGroupName

        The name of the resource group this resource belongs to.

        Type: String

      • terraformSourceName

        The name of the Terraform S3 state file this resource belongs to.

        Type: String

      • eksSourceName

        The name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

        This parameter accepts values in \"eks-cluster/namespace\" format.

        Type: String

    • type

      The type of resource.

      Type: string

    • name

      The name of the resource.

      Type: String

    • additionalInfo

      Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

      Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

      Key: \"failover-regions\"

      Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

  • appComponents

    The list of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added.

    Type: Array

    Each appComponents array item includes the following fields:

    • name

      The name of the Application Component.

      Type: String

    • type

      The type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent.

      Type: String

    • resourceNames

      The list of included resources that are assigned to the Application Component.

      Type: Array of strings

    • additionalInfo

      Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

      Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

      Key: \"failover-regions\"

      Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

  • excludedResources

    The list of logical resource identifiers to be excluded from the application.

    Type: Array

    Don't add the resources that you want to include.

    Each excludedResources array item includes the following fields:

    • logicalResourceIds

      The logical identifier of the resource.

      Type: Object

      You can configure only one of the following fields:

      • logicalStackName

      • resourceGroupName

      • terraformSourceName

      • eksSourceName

      Each logicalResourceIds object includes the following fields:

      • identifier

        The identifier of the resource.

        Type: String

      • logicalStackName

        The name of the CloudFormation stack this resource belongs to.

        Type: String

      • resourceGroupName

        The name of the resource group this resource belongs to.

        Type: String

      • terraformSourceName

        The name of the Terraform S3 state file this resource belongs to.

        Type: String

      • eksSourceName

        The name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

        This parameter accepts values in \"eks-cluster/namespace\" format.

        Type: String

  • version

    The Resilience Hub application version.

  • additionalInfo

    Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

    Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

    Key: \"failover-regions\"

    Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

" }, "appVersion":{ "shape":"EntityVersion", @@ -1805,7 +2521,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -1820,7 +2536,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -1846,7 +2562,7 @@ "members":{ "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -1932,6 +2648,56 @@ "min":1 }, "Double":{"type":"double"}, + "EksNamespace":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" + }, + "EksNamespaceList":{ + "type":"list", + "member":{"shape":"EksNamespace"} + }, + "EksSource":{ + "type":"structure", + "required":[ + "eksClusterArn", + "namespaces" + ], + "members":{ + "eksClusterArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Elastic Kubernetes Service cluster. The format for this ARN is: arn:aws:eks:region:account-id:cluster/cluster-name. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "namespaces":{ + "shape":"EksNamespaceList", + "documentation":"

The list of namespaces located on your Amazon Elastic Kubernetes Service cluster.

" + } + }, + "documentation":"

The input source of the Amazon Elastic Kubernetes Service cluster.

" + }, + "EksSourceClusterNamespace":{ + "type":"structure", + "required":[ + "eksClusterArn", + "namespace" + ], + "members":{ + "eksClusterArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Elastic Kubernetes Service cluster. The format for this ARN is: arn:aws:eks:region:account-id:cluster/cluster-name. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "namespace":{ + "shape":"EksNamespace", + "documentation":"

Name of the namespace that is located on your Amazon Elastic Kubernetes Service cluster.

" + } + }, + "documentation":"

The input source of the namespace that is located on your Amazon Elastic Kubernetes Service cluster.

" + }, + "EksSourceList":{ + "type":"list", + "member":{"shape":"EksSource"} + }, "EntityDescription":{ "type":"string", "max":500, @@ -1939,7 +2705,7 @@ }, "EntityId":{ "type":"string", - "pattern":"^\\S{1,100}$" + "pattern":"^\\S{1,255}$" }, "EntityName":{ "type":"string", @@ -2001,11 +2767,19 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "eksSources":{ + "shape":"EksSourceList", + "documentation":"

The input sources of the Amazon Elastic Kubernetes Service resources you need to import.

" + }, + "importStrategy":{ + "shape":"ResourceImportStrategyType", + "documentation":"

The import strategy you would like to set to import resources into Resilience Hub application.

" }, "sourceArns":{ "shape":"ArnList", - "documentation":"

The Amazon Resource Names (ARNs) for the resources that you want to import.

" + "documentation":"

The Amazon Resource Names (ARNs) for the resources.

" }, "terraformSources":{ "shape":"TerraformSourceList", @@ -2023,15 +2797,19 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", "documentation":"

The version of the application.

" }, + "eksSources":{ + "shape":"EksSourceList", + "documentation":"

The input sources of the Amazon Elastic Kubernetes Service resources you have imported.

" + }, "sourceArns":{ "shape":"ArnList", - "documentation":"

The Amazon Resource Names (ARNs) for the resources that you imported.

" + "documentation":"

The Amazon Resource Names (ARNs) for the resources you have imported.

" }, "status":{ "shape":"ResourceImportStatusType", @@ -2039,16 +2817,17 @@ }, "terraformSources":{ "shape":"TerraformSourceList", - "documentation":"

A list of terraform file s3 URLs you need to import.

" + "documentation":"

A list of terraform file s3 URLs you have imported.

" } } }, + "Integer":{"type":"integer"}, "InternalServerException":{ "type":"structure", "members":{ "message":{"shape":"String500"} }, - "documentation":"

This exception occurs when there is an internal failure in the AWS Resilience Hub service.

", + "documentation":"

This exception occurs when there is an internal failure in the Resilience Hub service.

", "error":{"httpStatusCode":500}, "exception":true, "fault":true @@ -2059,7 +2838,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "maxResults":{ "shape":"MaxResults", @@ -2077,7 +2856,7 @@ "members":{ "alarmRecommendations":{ "shape":"AlarmRecommendationList", - "documentation":"

The alarm recommendations for an AWS Resilience Hub application, returned as an object. This object includes application component names, descriptions, information about whether a recommendation has already been implemented or not, prerequisites, and more.

" + "documentation":"

The alarm recommendations for an Resilience Hub application, returned as an object. This object includes Application Component names, descriptions, information about whether a recommendation has already been implemented or not, prerequisites, and more.

" }, "nextToken":{ "shape":"NextToken", @@ -2090,7 +2869,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

", "location":"querystring", "locationName":"appArn" }, @@ -2158,7 +2937,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "maxResults":{ "shape":"MaxResults", @@ -2176,7 +2955,7 @@ "members":{ "componentCompliances":{ "shape":"ComponentCompliancesList", - "documentation":"

The compliances for an AWS Resilience Hub application component, returned as an object. This object contains component names, compliances, costs, resiliency scores, outage scores, and more.

" + "documentation":"

The compliances for an Resilience Hub Application Component, returned as an object. This object contains the names of the Application Components, compliances, costs, resiliency scores, outage scores, and more.

" }, "nextToken":{ "shape":"NextToken", @@ -2190,7 +2969,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "maxResults":{ "shape":"MaxResults", @@ -2208,7 +2987,96 @@ "members":{ "componentRecommendations":{ "shape":"ComponentRecommendationList", - "documentation":"

The recommendations for an Resilience Hub application component, returned as an object. This object contains component names, configuration recommendations, and recommendation statuses.

" + "documentation":"

The recommendations for an Resilience Hub Application Component, returned as an object. This object contains the names of the Application Components, configuration recommendations, and recommendation statuses.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + } + } + }, + "ListAppInputSourcesRequest":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

Maximum number of input sources to be displayed per Resilience Hub application.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Null, or the token from a previous call to get the next set of results.

" + } + } + }, + "ListAppInputSourcesResponse":{ + "type":"structure", + "required":["appInputSources"], + "members":{ + "appInputSources":{ + "shape":"AppInputSourceList", + "documentation":"

The list of Resilience Hub application input sources.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + } + } + }, + "ListAppVersionAppComponentsRequest":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The version of the Application Component.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

Maximum number of Application Components to be displayed per Resilience Hub application version.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Null, or the token from a previous call to get the next set of results.

" + } + } + }, + "ListAppVersionAppComponentsResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appComponents":{ + "shape":"AppComponentList", + "documentation":"

Defines an Application Component.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" }, "nextToken":{ "shape":"NextToken", @@ -2225,7 +3093,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -2264,7 +3132,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -2301,7 +3169,7 @@ }, "resolutionId":{ "shape":"String255", - "documentation":"

The identifier for a specific resolution.

" + "documentation":"

The ID for a specific resolution.

" } } }, @@ -2311,7 +3179,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "maxResults":{ "shape":"MaxResults", @@ -2342,7 +3210,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

", "location":"querystring", "locationName":"appArn" }, @@ -2386,7 +3254,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

", + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

", "location":"querystring", "locationName":"assessmentArn" }, @@ -2484,7 +3352,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "maxResults":{ "shape":"MaxResults", @@ -2568,7 +3436,7 @@ "members":{ "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "maxResults":{ "shape":"MaxResults", @@ -2603,7 +3471,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -2648,6 +3516,10 @@ "type":"structure", "required":["identifier"], "members":{ + "eksSourceName":{ + "shape":"String255", + "documentation":"

The name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

This parameter accepts values in \"eks-cluster/namespace\" format.

" + }, "identifier":{ "shape":"String255", "documentation":"

The identifier of the resource.

" @@ -2692,10 +3564,18 @@ "resourceType" ], "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

Key: \"failover-regions\"

Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

" + }, "appComponents":{ "shape":"AppComponentList", "documentation":"

The application components that belong to this resource.

" }, + "excluded":{ + "shape":"BooleanOptional", + "documentation":"

Indicates if a resource is included or excluded from the assessment.

" + }, "logicalResourceId":{ "shape":"LogicalResourceId", "documentation":"

The logical identifier of the resource.

" @@ -2713,7 +3593,7 @@ "documentation":"

The type of resource.

" } }, - "documentation":"

Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier.

" + "documentation":"

Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or an Resilience Hub-native identifier.

" }, "PhysicalResourceId":{ "type":"structure", @@ -2736,7 +3616,7 @@ }, "type":{ "shape":"PhysicalIdentifierType", - "documentation":"

Specifies the type of physical resource identifier.

Arn

The resource identifier is an Amazon Resource Name (ARN) .

Native

The resource identifier is a Resilience Hub-native identifier.

" + "documentation":"

Specifies the type of physical resource identifier.

Arn

The resource identifier is an Amazon Resource Name (ARN) .

Native

The resource identifier is an Resilience Hub-native identifier.

" } }, "documentation":"

Defines a physical resource identifier.

" @@ -2751,7 +3631,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -2761,7 +3641,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -2778,11 +3658,11 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appTemplateBody":{ "shape":"AppTemplateBody", - "documentation":"

A JSON string that contains the body of the app template.

" + "documentation":"

A JSON string that provides information about your application structure. To learn more about the appTemplateBody template, see the sample template provided in the Examples section.

The appTemplateBody JSON string has the following structure:

  • resources

    The list of logical resources that must be included in the Resilience Hub application.

    Type: Array

    Don't add the resources that you want to exclude.

    Each resources array item includes the following fields:

    • logicalResourceId

      The logical identifier of the resource.

      Type: Object

      Each logicalResourceId object includes the following fields:

      • identifier

        The identifier of the resource.

        Type: String

      • logicalStackName

        The name of the CloudFormation stack this resource belongs to.

        Type: String

      • resourceGroupName

        The name of the resource group this resource belongs to.

        Type: String

      • terraformSourceName

        The name of the Terraform S3 state file this resource belongs to.

        Type: String

      • eksSourceName

        The name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

        This parameter accepts values in \"eks-cluster/namespace\" format.

        Type: String

    • type

      The type of resource.

      Type: string

    • name

      The name of the resource.

      Type: String

    • additionalInfo

      Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

      Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

      Key: \"failover-regions\"

      Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

  • appComponents

    The list of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added.

    Type: Array

    Each appComponents array item includes the following fields:

    • name

      The name of the Application Component.

      Type: String

    • type

      The type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent.

      Type: String

    • resourceNames

      The list of included resources that are assigned to the Application Component.

      Type: Array of strings

    • additionalInfo

      Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

      Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

      Key: \"failover-regions\"

      Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

  • excludedResources

    The list of logical resource identifiers to be excluded from the application.

    Type: Array

    Don't add the resources that you want to include.

    Each excludedResources array item includes the following fields:

    • logicalResourceIds

      The logical identifier of the resource.

      Type: Object

      You can configure only one of the following fields:

      • logicalStackName

      • resourceGroupName

      • terraformSourceName

      • eksSourceName

      Each logicalResourceIds object includes the following fields:

      • identifier

        The identifier of the resource.

        Type: String

      • logicalStackName

        The name of the CloudFormation stack this resource belongs to.

        Type: String

      • resourceGroupName

        The name of the resource group this resource belongs to.

        Type: String

      • terraformSourceName

        The name of the Terraform S3 state file this resource belongs to.

        Type: String

      • eksSourceName

        The name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

        This parameter accepts values in \"eks-cluster/namespace\" format.

        Type: String

  • version

    The Resilience Hub application version.

  • additionalInfo

    Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

    Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

    Key: \"failover-regions\"

    Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

" } } }, @@ -2791,7 +3671,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -2884,11 +3764,11 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "assessmentArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the assessment. The format for this ARN is: arn:partition:resiliencehub:region:account:app-assessment/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "endTime":{ "shape":"TimeStamp", @@ -2966,27 +3846,31 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appRegistryAppNames":{ "shape":"EntityNameList", - "documentation":"

The names of the registered applications to remove from the resource mappings.

" + "documentation":"

The names of the registered applications you want to remove from the resource mappings.

" + }, + "eksSourceNames":{ + "shape":"String255List", + "documentation":"

The names of the Amazon Elastic Kubernetes Service clusters and namespaces you want to remove from the resource mappings.

This parameter accepts values in \"eks-cluster/namespace\" format.

" }, "logicalStackNames":{ "shape":"String255List", - "documentation":"

The names of the CloudFormation stacks to remove from the resource mappings.

" + "documentation":"

The names of the CloudFormation stacks you want to remove from the resource mappings.

" }, "resourceGroupNames":{ "shape":"EntityNameList", - "documentation":"

The names of the resource groups to remove from the resource mappings.

" + "documentation":"

The names of the resource groups you want to remove from the resource mappings.

" }, "resourceNames":{ "shape":"EntityNameList", - "documentation":"

The names of the resources to remove from the resource mappings.

" + "documentation":"

The names of the resources you want to remove from the resource mappings.

" }, "terraformSourceNames":{ "shape":"String255List", - "documentation":"

</p> 
" + "documentation":"

The names of the Terraform sources you want to remove from the resource mappings.

" } } }, @@ -2995,7 +3879,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -3042,7 +3926,7 @@ }, "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "policyDescription":{ "shape":"EntityDescription", @@ -3100,7 +3984,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -3119,7 +4003,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -3184,6 +4068,13 @@ "Success" ] }, + "ResourceImportStrategyType":{ + "type":"string", + "enum":[ + "AddOnly", + "ReplaceAll" + ] + }, "ResourceMapping":{ "type":"structure", "required":[ @@ -3195,13 +4086,17 @@ "shape":"EntityName", "documentation":"

The name of the application this resource is mapped to.

" }, + "eksSourceName":{ + "shape":"String255", + "documentation":"

The name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

This parameter accepts values in \"eks-cluster/namespace\" format.

" + }, "logicalStackName":{ "shape":"String255", "documentation":"

The name of the CloudFormation stack this resource is mapped to.

" }, "mappingType":{ "shape":"ResourceMappingType", - "documentation":"

Specifies the type of resource mapping.

AppRegistryApp

The resource is mapped to another application. The name of the application is contained in the appRegistryAppName property.

CfnStack

The resource is mapped to a CloudFormation stack. The name of the CloudFormation stack is contained in the logicalStackName property.

Resource

The resource is mapped to another resource. The name of the resource is contained in the resourceName property.

ResourceGroup

The resource is mapped to a resource group. The name of the resource group is contained in the resourceGroupName property.

" + "documentation":"

Specifies the type of resource mapping.

AppRegistryApp

The resource is mapped to another application. The name of the application is contained in the appRegistryAppName property.

CfnStack

The resource is mapped to a CloudFormation stack. The name of the CloudFormation stack is contained in the logicalStackName property.

Resource

The resource is mapped to another resource. The name of the resource is contained in the resourceName property.

ResourceGroup

The resource is mapped to Resource Groups. The name of the resource group is contained in the resourceGroupName property.

" }, "physicalResourceId":{ "shape":"PhysicalResourceId", @@ -3233,7 +4128,8 @@ "Resource", "AppRegistryApp", "ResourceGroup", - "Terraform" + "Terraform", + "EKS" ] }, "ResourceNotFoundException":{ @@ -3249,7 +4145,7 @@ "documentation":"

The type of the resource that the exception applies to.

" } }, - "documentation":"

The specified resource could not be found.

", + "documentation":"

This exception occurs when the specified resource could not be found.

", "error":{ "httpStatusCode":404, "senderFault":true @@ -3302,7 +4198,7 @@ "members":{ "message":{"shape":"String500"} }, - "documentation":"

You have exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use Service Quotas to request a service quota increase.

", + "documentation":"

This exception occurs when you have exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use Service Quotas to request a service quota increase.

", "error":{ "httpStatusCode":402, "senderFault":true @@ -3319,7 +4215,7 @@ "members":{ "appComponentName":{ "shape":"EntityId", - "documentation":"

The application component name.

" + "documentation":"

The name of the Application Component.

" }, "description":{ "shape":"String500", @@ -3375,7 +4271,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "appVersion":{ "shape":"EntityVersion", @@ -3406,6 +4302,20 @@ } } }, + "String1024":{ + "type":"string", + "max":1024, + "min":1 + }, + "String128WithoutWhitespace":{ + "type":"string", + "pattern":"^\\S{1,128}$" + }, + "String2048":{ + "type":"string", + "max":2048, + "min":1 + }, "String255":{ "type":"string", "max":255, @@ -3488,7 +4398,7 @@ "members":{ "s3StateFileUrl":{ "shape":"S3Url", - "documentation":"

The Terraform s3 state file you need to import.

" + "documentation":"

The URL of the Terraform s3 state file you need to import.

" } }, "documentation":"

The Terraform s3 state file you need to import.

" @@ -3503,7 +4413,7 @@ "members":{ "appComponentName":{ "shape":"EntityId", - "documentation":"

The name of the application component.

" + "documentation":"

The name of the Application Component.

" }, "dependsOnAlarms":{ "shape":"AlarmReferenceIdList", @@ -3578,7 +4488,7 @@ "documentation":"

The number of seconds to wait before retrying the operation.

" } }, - "documentation":"

The limit on the number of requests per second was exceeded.

", + "documentation":"

This exception occurs when you have exceeded the limit on the number of requests per second.

", "error":{ "httpStatusCode":429, "senderFault":true @@ -3605,6 +4515,10 @@ "resourceType":{ "shape":"String255", "documentation":"

The type of resource.

" + }, + "unsupportedResourceStatus":{ + "shape":"String255", + "documentation":"

The status of the unsupported resource.

" } }, "documentation":"

Defines a resource that is not supported by Resilience Hub.

" @@ -3628,7 +4542,7 @@ }, "tagKeys":{ "shape":"TagKeyList", - "documentation":"

The keys of the tags to remove.

", + "documentation":"

The keys of the tags you want to remove.

", "location":"querystring", "locationName":"tagKeys" } @@ -3645,7 +4559,7 @@ "members":{ "appArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "assessmentSchedule":{ "shape":"AppAssessmentScheduleType", @@ -3661,7 +4575,7 @@ }, "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" } } }, @@ -3675,6 +4589,158 @@ } } }, + "UpdateAppVersionAppComponentRequest":{ + "type":"structure", + "required":[ + "appArn", + "id" + ], + "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Currently, there is no supported additional information for Application Components.

" + }, + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "id":{ + "shape":"String255", + "documentation":"

The identifier of the Application Component.

" + }, + "name":{ + "shape":"String255", + "documentation":"

The name of the Application Component.

" + }, + "type":{ + "shape":"String255", + "documentation":"

The type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent.

" + } + } + }, + "UpdateAppVersionAppComponentResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appComponent":{ + "shape":"AppComponent", + "documentation":"

The list of Application Components that belong to this resource.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + } + } + }, + "UpdateAppVersionRequest":{ + "type":"structure", + "required":["appArn"], + "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

Key: \"failover-regions\"

Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"

" + }, + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + } + } + }, + "UpdateAppVersionResourceRequest":{ + "type":"structure", + "required":["appArn"], + "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Currently, there is no supported additional information for resources.

" + }, + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appComponents":{ + "shape":"AppComponentNameList", + "documentation":"

The list of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added.

" + }, + "awsAccountId":{ + "shape":"CustomerId", + "documentation":"

The Amazon Web Services account that owns the physical resource.

" + }, + "awsRegion":{ + "shape":"AwsRegion", + "documentation":"

The Amazon Web Services region that owns the physical resource.

" + }, + "excluded":{ + "shape":"BooleanOptional", + "documentation":"

Indicates if a resource is excluded from an Resilience Hub application.

You can exclude only imported resources from an Resilience Hub application.

" + }, + "logicalResourceId":{ + "shape":"LogicalResourceId", + "documentation":"

The logical identifier of the resource.

" + }, + "physicalResourceId":{ + "shape":"String2048", + "documentation":"

The physical identifier of the resource.

" + }, + "resourceName":{ + "shape":"EntityName", + "documentation":"

The name of the resource.

" + }, + "resourceType":{ + "shape":"String255", + "documentation":"

The type of resource.

" + } + } + }, + "UpdateAppVersionResourceResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + }, + "physicalResource":{ + "shape":"PhysicalResource", + "documentation":"

Defines a physical resource. A physical resource is a resource that exists in your account. It can be identified using an Amazon Resource Name (ARN) or a Resilience Hub-native identifier.

" + } + } + }, + "UpdateAppVersionResponse":{ + "type":"structure", + "required":[ + "appArn", + "appVersion" + ], + "members":{ + "additionalInfo":{ + "shape":"AdditionalInfoMap", + "documentation":"

Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

Currently, this parameter supports only failover region and account.

" + }, + "appArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" + }, + "appVersion":{ + "shape":"EntityVersion", + "documentation":"

The Resilience Hub application version.

" + } + } + }, "UpdateResiliencyPolicyRequest":{ "type":"structure", "required":["policyArn"], @@ -3689,7 +4755,7 @@ }, "policyArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the resiliency policy. The format for this ARN is: arn:partition:resiliencehub:region:account:resiliency-policy/policy-id. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference guide.

" }, "policyDescription":{ "shape":"EntityDescription", @@ -3724,7 +4790,7 @@ "members":{ "message":{"shape":"String500"} }, - "documentation":"

Indicates that a request was not valid.

", + "documentation":"

This exception occurs when a request is not valid.

", "error":{ "httpStatusCode":400, "senderFault":true @@ -3732,5 +4798,5 @@ "exception":true } }, - "documentation":"

AWS Resilience Hub helps you proactively prepare and protect your Amazon Web Services applications from disruptions. Resilience Hub offers continuous resiliency assessment and validation that integrates into your software development lifecycle. This enables you to uncover resiliency weaknesses, ensure recovery time objective (RTO) and recovery point objective (RPO) targets for your applications are met, and resolve issues before they are released into production.

" + "documentation":"

Resilience Hub helps you proactively prepare and protect your Amazon Web Services applications from disruptions. It offers continual resiliency assessment and validation that integrates into your software development lifecycle. This enables you to uncover resiliency weaknesses, ensure recovery time objective (RTO) and recovery point objective (RPO) targets for your applications are met, and resolve issues before they are released into production.

" } diff --git a/services/resourceexplorer2/pom.xml b/services/resourceexplorer2/pom.xml index 9a58505eeda0..d6500cff7856 100644 --- a/services/resourceexplorer2/pom.xml +++ b/services/resourceexplorer2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT resourceexplorer2 AWS Java SDK :: Services :: Resource Explorer 2 diff --git a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json index c1e99000faa7..62dff1a5cb65 100644 --- a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -25,13 +25,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -39,80 +38,64 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], - "type": "tree", - "rules": [ + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ { - "conditions": [ + "fn": "isSet", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] + "ref": "Region" } - ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] + "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", "rules": [ { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], + "conditions": [], "type": "tree", "rules": [ { @@ -127,7 +110,7 @@ { "ref": "PartitionResult" }, - "supportsFIPS" + "supportsDualStack" ] } ] @@ -135,10 +118,62 @@ ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, { "conditions": [], "endpoint": { - "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://resource-explorer-2.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, @@ -148,90 +183,93 @@ }, { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://resource-explorer-2.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" } ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://resource-explorer-2.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" } ] } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json index 924c6acee700..7153473aa146 100644 --- a/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/resourceexplorer2/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1565 +1,5 @@ { "testCases": [ - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-south-2.api.aws" - } - }, - "params": { - "Region": "ap-south-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-south-2.api.aws" - } - }, - "params": { - "Region": "ap-south-2", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-south-2.api.aws" - } - }, - "params": { - "Region": "ap-south-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-south-2.api.aws" - } - }, - "params": { - "Region": "ap-south-2", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-south-1.api.aws" - } - }, - "params": { - "Region": "ap-south-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-south-1.api.aws" - } - }, - "params": { - "Region": "ap-south-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-south-1.api.aws" - } - }, - "params": { - "Region": "ap-south-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-south-1.api.aws" - } - }, - "params": { - "Region": "ap-south-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-south-1.api.aws" - } - }, - "params": { - "Region": "eu-south-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-south-1.api.aws" - } - }, - "params": { - "Region": "eu-south-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-south-1.api.aws" - } - }, - "params": { - "Region": "eu-south-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-south-1.api.aws" - } - }, - "params": { - "Region": "eu-south-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-south-2.api.aws" - } - }, - "params": { - "Region": "eu-south-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-south-2.api.aws" - } - }, - "params": { - "Region": "eu-south-2", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-south-2.api.aws" - } - }, - "params": { - "Region": "eu-south-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-south-2.api.aws" - } - }, - "params": { - "Region": "eu-south-2", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.me-central-1.api.aws" - } - }, - "params": { - "Region": "me-central-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.me-central-1.api.aws" - } - }, - "params": { - "Region": "me-central-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.me-central-1.api.aws" - } - }, - "params": { - "Region": "me-central-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.me-central-1.api.aws" - } - }, - "params": { - "Region": "me-central-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ca-central-1.api.aws" - } - }, - "params": { - "Region": "ca-central-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ca-central-1.api.aws" - } - }, - "params": { - "Region": "ca-central-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ca-central-1.api.aws" - } - }, - "params": { - "Region": "ca-central-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ca-central-1.api.aws" - } - }, - "params": { - "Region": "ca-central-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-central-1.api.aws" - } - }, - "params": { - "Region": "eu-central-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-central-1.api.aws" - } - }, - "params": { - "Region": "eu-central-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-central-1.api.aws" - } - }, - "params": { - "Region": "eu-central-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-central-1.api.aws" - } - }, - "params": { - "Region": "eu-central-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-central-2.api.aws" - } - }, - "params": { - "Region": "eu-central-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-central-2.api.aws" - } - }, - "params": { - "Region": "eu-central-2", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-central-2.api.aws" - } - }, - "params": { - "Region": "eu-central-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-central-2.api.aws" - } - }, - "params": { - "Region": "eu-central-2", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-west-1.api.aws" - } - }, - "params": { - "Region": "us-west-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-west-1.api.aws" - } - }, - "params": { - "Region": "us-west-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-west-1.api.aws" - } - }, - "params": { - "Region": "us-west-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-west-1.api.aws" - } - }, - "params": { - "Region": "us-west-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.af-south-1.api.aws" - } - }, - "params": { - "Region": "af-south-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.af-south-1.api.aws" - } - }, - "params": { - "Region": "af-south-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.af-south-1.api.aws" - } - }, - "params": { - "Region": "af-south-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.af-south-1.api.aws" - } - }, - "params": { - "Region": "af-south-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-north-1.api.aws" - } - }, - "params": { - "Region": "eu-north-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-north-1.api.aws" - } - }, - "params": { - "Region": "eu-north-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-north-1.api.aws" - } - }, - "params": { - "Region": "eu-north-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-north-1.api.aws" - } - }, - "params": { - "Region": "eu-north-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-west-2.api.aws" - } - }, - "params": { - "Region": "eu-west-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-west-2.api.aws" - } - }, - "params": { - "Region": "eu-west-2", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-west-2.api.aws" - } - }, - "params": { - "Region": "eu-west-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-west-2.api.aws" - } - }, - "params": { - "Region": "eu-west-2", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-west-1.api.aws" - } - }, - "params": { - "Region": "eu-west-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.eu-west-1.api.aws" - } - }, - "params": { - "Region": "eu-west-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-west-1.api.aws" - } - }, - "params": { - "Region": "eu-west-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.eu-west-1.api.aws" - } - }, - "params": { - "Region": "eu-west-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "Region": "ap-northeast-3", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "Region": "ap-northeast-3", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-northeast-3.api.aws" - } - }, - "params": { - "Region": "ap-northeast-3", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-northeast-3.api.aws" - } - }, - "params": { - "Region": "ap-northeast-3", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-northeast-2.api.aws" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-northeast-2.api.aws" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "Region": "ap-northeast-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "Region": "ap-northeast-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-northeast-1.api.aws" - } - }, - "params": { - "Region": "ap-northeast-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-northeast-1.api.aws" - } - }, - "params": { - "Region": "ap-northeast-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.me-south-1.api.aws" - } - }, - "params": { - "Region": "me-south-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.me-south-1.api.aws" - } - }, - "params": { - "Region": "me-south-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.me-south-1.api.aws" - } - }, - "params": { - "Region": "me-south-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.me-south-1.api.aws" - } - }, - "params": { - "Region": "me-south-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.sa-east-1.api.aws" - } - }, - "params": { - "Region": "sa-east-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.sa-east-1.api.aws" - } - }, - "params": { - "Region": "sa-east-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.sa-east-1.api.aws" - } - }, - "params": { - "Region": "sa-east-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.sa-east-1.api.aws" - } - }, - "params": { - "Region": "sa-east-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-east-1.api.aws" - } - }, - "params": { - "Region": "ap-east-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-east-1.api.aws" - } - }, - "params": { - "Region": "ap-east-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-east-1.api.aws" - } - }, - "params": { - "Region": "ap-east-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-east-1.api.aws" - } - }, - "params": { - "Region": "ap-east-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-north-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ca-west-1.api.aws" - } - }, - "params": { - "Region": "ca-west-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ca-west-1.api.aws" - } - }, - "params": { - "Region": "ca-west-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ca-west-1.api.aws" - } - }, - "params": { - "Region": "ca-west-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ca-west-1.api.aws" - } - }, - "params": { - "Region": "ca-west-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-1.api.aws" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-1.api.aws" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "Region": "ap-southeast-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "Region": "ap-southeast-2", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-2.api.aws" - } - }, - "params": { - "Region": "ap-southeast-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-2.api.aws" - } - }, - "params": { - "Region": "ap-southeast-2", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-3.api.aws" - } - }, - "params": { - "Region": "ap-southeast-3", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-3.api.aws" - } - }, - "params": { - "Region": "ap-southeast-3", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-3.api.aws" - } - }, - "params": { - "Region": "ap-southeast-3", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-3.api.aws" - } - }, - "params": { - "Region": "ap-southeast-3", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-4.api.aws" - } - }, - "params": { - "Region": "ap-southeast-4", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-4.api.aws" - } - }, - "params": { - "Region": "ap-southeast-4", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-4.api.aws" - } - }, - "params": { - "Region": "ap-southeast-4", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-4.api.aws" - } - }, - "params": { - "Region": "ap-southeast-4", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-5.api.aws" - } - }, - "params": { - "Region": "ap-southeast-5", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-5.api.aws" - } - }, - "params": { - "Region": "ap-southeast-5", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-5.api.aws" - } - }, - "params": { - "Region": "ap-southeast-5", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-5.api.aws" - } - }, - "params": { - "Region": "ap-southeast-5", - "UseDualStack": false, - "UseFIPS": false - } - }, { "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { @@ -1569,20 +9,6 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseDualStack": false, "UseFIPS": true } }, @@ -1595,189 +21,78 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseDualStack": false, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-6 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-6.api.aws" - } - }, - "params": { - "Region": "ap-southeast-6", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-6 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.ap-southeast-6.api.aws" - } - }, - "params": { - "Region": "ap-southeast-6", - "UseDualStack": false, - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-6 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-6.api.aws" - } - }, - "params": { - "Region": "ap-southeast-6", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-6 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.ap-southeast-6.api.aws" - } - }, - "params": { - "Region": "ap-southeast-6", - "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.us-east-2.api.aws" - } - }, - "params": { - "Region": "us-east-2", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resource-explorer-2-fips.us-east-2.api.aws" + "url": "https://resource-explorer-2-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-east-2", - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2.us-east-2.api.aws" - } - }, - "params": { - "Region": "us-east-2", - "UseDualStack": true, - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resource-explorer-2.us-east-2.api.aws" + "url": "https://resource-explorer-2.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "us-east-2", - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://resource-explorer-2-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "Region": "cn-northwest-1", - "UseDualStack": true, - "UseFIPS": true - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resource-explorer-2-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://resource-explorer-2-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "cn-northwest-1", - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://resource-explorer-2.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://resource-explorer-2.us-gov-east-1.api.aws" } }, "params": { - "Region": "cn-northwest-1", - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://resource-explorer-2.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://example.com" } }, "params": { - "Region": "cn-northwest-1", - "UseDualStack": false, - "UseFIPS": false + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "Region": "us-east-1", - "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" } @@ -1789,7 +104,6 @@ }, "params": { "Region": "us-east-1", - "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } diff --git a/services/resourceexplorer2/src/main/resources/codegen-resources/service-2.json b/services/resourceexplorer2/src/main/resources/codegen-resources/service-2.json index 52001af261d0..859b1a601748 100644 --- a/services/resourceexplorer2/src/main/resources/codegen-resources/service-2.json +++ b/services/resourceexplorer2/src/main/resources/codegen-resources/service-2.json @@ -461,7 +461,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

You tried to create a new view or index when one already exists, and you either didn't specify or specified a different idempotency token as the original request.

", + "documentation":"

The request failed because either you specified parameters that didn’t match the original request, or you attempted to create a view with a name that already exists in this Amazon Web Services Region.

", "error":{ "httpStatusCode":409, "senderFault":true diff --git a/services/resourcegroups/pom.xml b/services/resourcegroups/pom.xml index 427642997982..365b7b2ccd03 100644 --- a/services/resourcegroups/pom.xml +++ b/services/resourcegroups/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 resourcegroups diff --git a/services/resourcegroupstaggingapi/pom.xml b/services/resourcegroupstaggingapi/pom.xml index 8c2e9d89f13c..230d792a2921 100644 --- a/services/resourcegroupstaggingapi/pom.xml +++ b/services/resourcegroupstaggingapi/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT resourcegroupstaggingapi AWS Java SDK :: Services :: AWS Resource Groups Tagging API diff --git a/services/robomaker/pom.xml b/services/robomaker/pom.xml index 7a17ba0fe973..dabcbb79b0d9 100644 --- a/services/robomaker/pom.xml +++ b/services/robomaker/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT robomaker AWS Java SDK :: Services :: RoboMaker diff --git a/services/rolesanywhere/pom.xml b/services/rolesanywhere/pom.xml index 9e2ccd541a51..395096aa1eda 100644 --- a/services/rolesanywhere/pom.xml +++ b/services/rolesanywhere/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT rolesanywhere AWS Java SDK :: Services :: Roles Anywhere diff --git a/services/route53/pom.xml b/services/route53/pom.xml index 7d108ea7ac2f..7fa97b096e94 100644 --- a/services/route53/pom.xml +++ b/services/route53/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT route53 AWS Java SDK :: Services :: Amazon Route53 diff --git a/services/route53domains/pom.xml b/services/route53domains/pom.xml index d7fbfbe737c7..f24ea83253d5 100644 --- a/services/route53domains/pom.xml +++ b/services/route53domains/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT route53domains AWS Java SDK :: Services :: Amazon Route53 Domains diff --git a/services/route53recoverycluster/pom.xml b/services/route53recoverycluster/pom.xml index e435e0bc3e13..6e531e309d71 100644 --- a/services/route53recoverycluster/pom.xml +++ b/services/route53recoverycluster/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT route53recoverycluster AWS Java SDK :: Services :: Route53 Recovery Cluster diff --git a/services/route53recoverycontrolconfig/pom.xml b/services/route53recoverycontrolconfig/pom.xml index 514ddd821eda..54d1d61f47db 100644 --- a/services/route53recoverycontrolconfig/pom.xml +++ b/services/route53recoverycontrolconfig/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT route53recoverycontrolconfig AWS Java SDK :: Services :: Route53 Recovery Control Config diff --git a/services/route53recoveryreadiness/pom.xml b/services/route53recoveryreadiness/pom.xml index 4f5afcb6d6b5..4d555e6d7def 100644 --- a/services/route53recoveryreadiness/pom.xml +++ b/services/route53recoveryreadiness/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT route53recoveryreadiness AWS Java SDK :: Services :: Route53 Recovery Readiness diff --git a/services/route53resolver/pom.xml b/services/route53resolver/pom.xml index 646ec97a8374..29fd9a08a74d 100644 --- a/services/route53resolver/pom.xml +++ b/services/route53resolver/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT route53resolver AWS Java SDK :: Services :: Route53Resolver diff --git a/services/route53resolver/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/route53resolver/src/main/resources/codegen-resources/endpoint-rule-set.json index 47ec5c6901bd..553797148366 100644 --- a/services/route53resolver/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/route53resolver/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53resolver-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53resolver-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://route53resolver-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53resolver.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://route53resolver-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://route53resolver.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://route53resolver.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://route53resolver.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/route53resolver/src/main/resources/codegen-resources/endpoint-tests.json b/services/route53resolver/src/main/resources/codegen-resources/endpoint-tests.json index 33ac491625ff..13ea33851e76 100644 --- a/services/route53resolver/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/route53resolver/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1346 +1,288 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://route53resolver.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", + "Region": "af-south-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.cn-north-1.amazonaws.com.cn" + "url": "https://route53resolver.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "Region": "cn-north-1", "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.us-gov-west-1.api.aws" + "url": "https://route53resolver.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.us-gov-west-1.amazonaws.com" + "url": "https://route53resolver.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-gov-west-1.api.aws" + "url": "https://route53resolver.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", + "Region": "ap-northeast-3", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-gov-west-1.amazonaws.com" + "url": "https://route53resolver.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "Region": "us-gov-west-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.ap-southeast-1.api.aws" + "url": "https://route53resolver.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "Region": "ap-southeast-1", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.ap-southeast-1.amazonaws.com" + "url": "https://route53resolver.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.ap-southeast-1.api.aws" + "url": "https://route53resolver.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", + "Region": "ap-southeast-3", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.ap-southeast-1.amazonaws.com" + "url": "https://route53resolver.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.ap-southeast-2.api.aws" + "url": "https://route53resolver.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.ap-southeast-2.amazonaws.com" + "url": "https://route53resolver.eu-north-1.amazonaws.com" } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.ap-southeast-2.api.aws" + "url": "https://route53resolver.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", + "Region": "eu-south-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.ap-southeast-2.amazonaws.com" + "url": "https://route53resolver.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://route53resolver.eu-west-2.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://route53resolver.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://route53resolver.me-south-1.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", + "Region": "me-south-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-iso-east-1.c2s.ic.gov" + "url": "https://route53resolver.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "Region": "us-iso-east-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.ap-southeast-3.api.aws" + "url": "https://route53resolver.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.ap-southeast-3.amazonaws.com" + "url": "https://route53resolver.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.ap-southeast-3.api.aws" + "url": "https://route53resolver.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-3", + "Region": "us-west-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.ap-southeast-3.amazonaws.com" + "url": "https://route53resolver.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "Region": "ap-southeast-3", "UseFIPS": false } }, @@ -1352,8 +294,8 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": true } }, @@ -1365,8 +307,8 @@ } }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true } }, @@ -1378,136 +320,164 @@ } }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-east-1.amazonaws.com" + "url": "https://route53resolver.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.us-east-2.api.aws" + "url": "https://route53resolver-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-2", "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.us-east-2.amazonaws.com" + "url": "https://route53resolver-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-east-2.api.aws" + "url": "https://route53resolver.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-east-2.amazonaws.com" + "url": "https://route53resolver.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://route53resolver-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "cn-northwest-1", "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://route53resolver-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://route53resolver.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://route53resolver.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "cn-northwest-1", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.cn-northwest-1.amazonaws.com.cn" + "url": "https://route53resolver.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://route53resolver-fips.us-iso-east-1.c2s.ic.gov" + } }, "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", + "Region": "us-iso-east-1", + "UseDualStack": false, "UseFIPS": true } }, @@ -1519,37 +489,40 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://route53resolver.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseDualStack": true, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1557,7 +530,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -1568,8 +540,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -1580,8 +552,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/route53resolver/src/main/resources/codegen-resources/service-2.json b/services/route53resolver/src/main/resources/codegen-resources/service-2.json index bd62ab0e613c..b7e08ea4747d 100644 --- a/services/route53resolver/src/main/resources/codegen-resources/service-2.json +++ b/services/route53resolver/src/main/resources/codegen-resources/service-2.json @@ -470,9 +470,10 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalServiceErrorException"}, {"shape":"ThrottlingException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Retrieves the behavior configuration of Route 53 Resolver behavior for a single VPC from Amazon Virtual Private Cloud.

" + "documentation":"

Retrieves the behavior configuration of Route 53 Resolver behavior for a single VPC from Amazon Virtual Private Cloud.

" }, "GetResolverDnssecConfig":{ "name":"GetResolverDnssecConfig", @@ -604,7 +605,8 @@ "errors":[ {"shape":"InvalidParameterException"}, {"shape":"UnknownResourceException"}, - {"shape":"InternalServiceErrorException"} + {"shape":"InternalServiceErrorException"}, + {"shape":"AccessDeniedException"} ], "documentation":"

Gets information about the Resolver rule policy for a specified rule. A Resolver rule policy includes the rule that you want to share with another account, the account that you want to share the rule with, and the Resolver operations that you want to allow the account to use.

" }, @@ -739,9 +741,10 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalServiceErrorException"}, {"shape":"ThrottlingException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Retrieves the Resolver configurations that you have defined. Route 53 Resolver uses the configurations to manage DNS resolution behavior for your VPCs.

" + "documentation":"

Retrieves the Resolver configurations that you have defined. Route 53 Resolver uses the configurations to manage DNS resolution behavior for your VPCs.

" }, "ListResolverDnssecConfigs":{ "name":"ListResolverDnssecConfigs", @@ -930,7 +933,8 @@ {"shape":"InvalidPolicyDocument"}, {"shape":"InvalidParameterException"}, {"shape":"UnknownResourceException"}, - {"shape":"InternalServiceErrorException"} + {"shape":"InternalServiceErrorException"}, + {"shape":"AccessDeniedException"} ], "documentation":"

Specifies an Amazon Web Services rule that you want to share with another account, the account that you want to share the rule with, and the operations that you want the account to be able to perform on the rule.

" }, @@ -1058,9 +1062,10 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServiceErrorException"}, {"shape":"ThrottlingException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} ], - "documentation":"

Updates the behavior configuration of Route 53 Resolver behavior for a single VPC from Amazon Virtual Private Cloud.

" + "documentation":"

Updates the behavior configuration of Route 53 Resolver behavior for a single VPC from Amazon Virtual Private Cloud.

" }, "UpdateResolverDnssecConfig":{ "name":"UpdateResolverDnssecConfig", @@ -1095,7 +1100,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Updates the name of an inbound or an outbound Resolver endpoint.

" + "documentation":"

Updates the name, or enpoint type for an inbound or an outbound Resolver endpoint. You can only update between IPV4 and DUALSTACK, IPV6 endpoint type can't be updated to other type.

" }, "UpdateResolverRule":{ "name":"UpdateResolverRule", @@ -1282,7 +1287,8 @@ "type":"string", "enum":[ "ENABLE", - "DISABLE" + "DISABLE", + "USE_LOCAL_RESOURCE_SETTING" ] }, "BlockOverrideDnsType":{ @@ -1313,7 +1319,7 @@ "members":{ "Message":{"shape":"ExceptionMessage"} }, - "documentation":"

", + "documentation":"

The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is in the process of being deleted, or you can't import domains into a domain list that is in the process of being deleted.

", "exception":true }, "Count":{"type":"integer"}, @@ -1482,6 +1488,11 @@ "shape":"TagList", "documentation":"

A list of the tag keys and values that you want to associate with the endpoint.

", "box":true + }, + "ResolverEndpointType":{ + "shape":"ResolverEndpointType", + "documentation":"

For the endpoint type you can choose either IPv4, IPv6. or dual-stack. A dual-stack endpoint means that it will resolve via both IPv4 and IPv6. This endpoint type is applied to all IP addresses.

", + "box":true } } }, @@ -1989,7 +2000,8 @@ "type":"string", "enum":[ "ENABLED", - "DISABLED" + "DISABLED", + "USE_LOCAL_RESOURCE_SETTING" ] }, "FirewallRule":{ @@ -2326,7 +2338,7 @@ "members":{ "ResolverConfig":{ "shape":"ResolverConfig", - "documentation":"

Information about the behavior configuration of Route 53 Resolver behavior for the VPC you specified in the GetResolverConfig request.

" + "documentation":"

Information about the behavior configuration of Route 53 Resolver behavior for the VPC you specified in the GetResolverConfig request.

" } } }, @@ -2517,7 +2529,7 @@ }, "Status":{ "shape":"FirewallDomainListStatus", - "documentation":"

" + "documentation":"

Status of the import request.

" }, "StatusMessage":{ "shape":"StatusMessage", @@ -2594,7 +2606,12 @@ }, "Ip":{ "shape":"Ip", - "documentation":"

The IP address that you want to use for DNS queries.

", + "documentation":"

The IPv4 address that you want to use for DNS queries.

", + "box":true + }, + "Ipv6":{ + "shape":"Ipv6", + "documentation":"

The IPv6 address that you want to use for DNS queries.

", "box":true } }, @@ -2613,7 +2630,11 @@ }, "Ip":{ "shape":"Ip", - "documentation":"

One IP address that the Resolver endpoint uses for DNS queries.

" + "documentation":"

One IPv4 address that the Resolver endpoint uses for DNS queries.

" + }, + "Ipv6":{ + "shape":"Ipv6", + "documentation":"

One IPv6 address that the Resolver endpoint uses for DNS queries.

" }, "Status":{ "shape":"IpAddressStatus", @@ -2646,7 +2667,8 @@ "DETACHING", "FAILED_RESOURCE_GONE", "DELETING", - "DELETE_FAILED_FAS_EXPIRED" + "DELETE_FAILED_FAS_EXPIRED", + "UPDATING" ] }, "IpAddressUpdate":{ @@ -2664,7 +2686,12 @@ }, "Ip":{ "shape":"Ip", - "documentation":"

The new IP address.

", + "documentation":"

The new IPv4 address.

", + "box":true + }, + "Ipv6":{ + "shape":"Ipv6", + "documentation":"

The new IPv6 address.

", "box":true } }, @@ -2673,13 +2700,18 @@ "IpAddressesRequest":{ "type":"list", "member":{"shape":"IpAddressRequest"}, - "max":10, + "max":20, "min":1 }, "IpAddressesResponse":{ "type":"list", "member":{"shape":"IpAddressResponse"} }, + "Ipv6":{ + "type":"string", + "max":39, + "min":7 + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -2935,7 +2967,7 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

If a response includes the last of the Resolver configurations that are associated with the current Amazon Web Services account, NextToken doesn't appear in the response.

If a response doesn't include the last of the configurations, you can get more configurations by submitting another ListResolverConfigs request. Get the value of NextToken that Amazon Route 53 returned in the previous response and include it in NextToken in the next request.

" + "documentation":"

If a response includes the last of the Resolver configurations that are associated with the current Amazon Web Services account, NextToken doesn't appear in the response.

If a response doesn't include the last of the configurations, you can get more configurations by submitting another ListResolverConfigs request. Get the value of NextToken that Amazon Route 53 returned in the previous response and include it in NextToken in the next request.

" }, "ResolverConfigs":{ "shape":"ResolverConfigList", @@ -3362,7 +3394,9 @@ "ENABLING", "ENABLED", "DISABLING", - "DISABLED" + "DISABLED", + "UPDATING_TO_USE_LOCAL_RESOURCE_SETTING", + "USE_LOCAL_RESOURCE_SETTING" ] }, "ResolverConfig":{ @@ -3382,7 +3416,7 @@ }, "AutodefinedReverse":{ "shape":"ResolverAutodefinedReverseStatus", - "documentation":"

The status of whether or not the Resolver will create autodefined rules for reverse DNS lookups. This is enabled by default. The status can be one of following:

Status of the rules generated by VPCs based on CIDR/Region for reverse DNS resolution. The status can be one of following:

  • ENABLING: Autodefined rules for reverse DNS lookups are being enabled but are not complete.

  • ENABLED: Autodefined rules for reverse DNS lookups are enabled.

  • DISABLING: Autodefined rules for reverse DNS lookups are being disabled but are not complete.

  • DISABLED: Autodefined rules for reverse DNS lookups are disabled.

" + "documentation":"

The status of whether or not the Resolver will create autodefined rules for reverse DNS lookups. This is enabled by default. The status can be one of following:

  • ENABLING: Autodefined rules for reverse DNS lookups are being enabled but are not complete.

  • ENABLED: Autodefined rules for reverse DNS lookups are enabled.

  • DISABLING: Autodefined rules for reverse DNS lookups are being disabled but are not complete.

  • DISABLED: Autodefined rules for reverse DNS lookups are disabled.

" } }, "documentation":"

A complex type that contains information about a Resolver configuration for a VPC.

" @@ -3397,7 +3431,9 @@ "ENABLING", "ENABLED", "DISABLING", - "DISABLED" + "DISABLED", + "UPDATING_TO_USE_LOCAL_RESOURCE_SETTING", + "USE_LOCAL_RESOURCE_SETTING" ] }, "ResolverDnssecConfig":{ @@ -3476,9 +3512,13 @@ "ModificationTime":{ "shape":"Rfc3339TimeString", "documentation":"

The date and time that the endpoint was last modified, in Unix time format and Coordinated Universal Time (UTC).

" + }, + "ResolverEndpointType":{ + "shape":"ResolverEndpointType", + "documentation":"

The Resolver endpoint IP address type.

" } }, - "documentation":"

In the response to a CreateResolverEndpoint, DeleteResolverEndpoint, GetResolverEndpoint, ListResolverEndpoints, or UpdateResolverEndpoint request, a complex type that contains settings for an existing inbound or outbound Resolver endpoint.

" + "documentation":"

In the response to a CreateResolverEndpoint, DeleteResolverEndpoint, GetResolverEndpoint, Updates the name, or ResolverEndpointType for an endpoint, or UpdateResolverEndpoint request, a complex type that contains settings for an existing inbound or outbound Resolver endpoint.

" }, "ResolverEndpointDirection":{ "type":"string", @@ -3498,6 +3538,14 @@ "DELETING" ] }, + "ResolverEndpointType":{ + "type":"string", + "enum":[ + "IPV6", + "IPV4", + "DUALSTACK" + ] + }, "ResolverEndpoints":{ "type":"list", "member":{"shape":"ResolverEndpoint"} @@ -3755,7 +3803,7 @@ }, "ResolverRulePolicy":{ "type":"string", - "max":5000 + "max":30000 }, "ResolverRuleStatus":{ "type":"string", @@ -3937,16 +3985,21 @@ }, "TargetAddress":{ "type":"structure", - "required":["Ip"], "members":{ "Ip":{ "shape":"Ip", - "documentation":"

One IP address that you want to forward DNS queries to. You can specify only IPv4 addresses.

" + "documentation":"

One IPv4 address that you want to forward DNS queries to.

", + "box":true }, "Port":{ "shape":"Port", "documentation":"

The port at Ip that you want to forward DNS queries to.

", "box":true + }, + "Ipv6":{ + "shape":"Ipv6", + "documentation":"

One IPv6 address that you want to forward DNS queries to.

", + "box":true } }, "documentation":"

In a CreateResolverRule request, an array of the IPs that you want to forward DNS queries to.

" @@ -4039,7 +4092,7 @@ }, "Domains":{ "shape":"FirewallDomains", - "documentation":"

A list of domains to use in the update operation.

Each domain specification in your domain list must satisfy the following requirements:

  • It can optionally start with * (asterisk).

  • With the exception of the optional starting asterisk, it must only contain the following characters: A-Z, a-z, 0-9, - (hyphen).

  • It must be from 1-255 characters in length.

" + "documentation":"

A list of domains to use in the update operation.

There is a limit of 1000 domains per request.

Each domain specification in your domain list must satisfy the following requirements:

  • It can optionally start with * (asterisk).

  • With the exception of the optional starting asterisk, it must only contain the following characters: A-Z, a-z, 0-9, - (hyphen).

  • It must be from 1-255 characters in length.

" } } }, @@ -4056,7 +4109,7 @@ }, "Status":{ "shape":"FirewallDomainListStatus", - "documentation":"

" + "documentation":"

Status of the UpdateFirewallDomains request.

" }, "StatusMessage":{ "shape":"StatusMessage", @@ -4159,6 +4212,30 @@ } } }, + "UpdateIpAddress":{ + "type":"structure", + "required":[ + "IpId", + "Ipv6" + ], + "members":{ + "IpId":{ + "shape":"ResourceId", + "documentation":"

The ID of the IP address, specified by the ResolverEndpointId.

" + }, + "Ipv6":{ + "shape":"Ipv6", + "documentation":"

The IPv6 address that you want to use for DNS queries.

" + } + }, + "documentation":"

Provides information about the IP address type in response to UpdateResolverEndpoint.

" + }, + "UpdateIpAddresses":{ + "type":"list", + "member":{"shape":"UpdateIpAddress"}, + "max":50, + "min":0 + }, "UpdateResolverConfigRequest":{ "type":"structure", "required":[ @@ -4172,7 +4249,7 @@ }, "AutodefinedReverseFlag":{ "shape":"AutodefinedReverseFlag", - "documentation":"

Indicates whether or not the Resolver will create autodefined rules for reverse DNS lookups. This is enabled by default. Disabling this option will also affect EC2-Classic instances using ClassicLink. For more information, see ClassicLink in the Amazon EC2 guide.

It can take some time for the status change to be completed.

" + "documentation":"

Indicates whether or not the Resolver will create autodefined rules for reverse DNS lookups. This is enabled by default. Disabling this option will also affect EC2-Classic instances using ClassicLink. For more information, see ClassicLink in the Amazon EC2 guide.

We are retiring EC2-Classic on August 15, 2022. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 guide and the blog EC2-Classic Networking is Retiring – Here’s How to Prepare.

It can take some time for the status change to be completed.

" } } }, @@ -4223,6 +4300,16 @@ "shape":"Name", "documentation":"

The name of the Resolver endpoint that you want to update.

", "box":true + }, + "ResolverEndpointType":{ + "shape":"ResolverEndpointType", + "documentation":"

Specifies the endpoint type for what type of IP address the endpoint uses to forward DNS queries.

", + "box":true + }, + "UpdateIpAddresses":{ + "shape":"UpdateIpAddresses", + "documentation":"

Updates the Resolver endpoint type to IpV4, Ipv6, or dual-stack.

", + "box":true } } }, @@ -4265,7 +4352,8 @@ "type":"string", "enum":[ "ENABLE", - "DISABLE" + "DISABLE", + "USE_LOCAL_RESOURCE_SETTING" ] }, "ValidationException":{ @@ -4273,7 +4361,7 @@ "members":{ "Message":{"shape":"ExceptionMessage"} }, - "documentation":"

", + "documentation":"

You have provided an invalid command. Supported values are ADD, REMOVE, or REPLACE a domain.

", "exception":true } }, diff --git a/services/rum/pom.xml b/services/rum/pom.xml index 5b5ce00a6a0d..17bdae6c4117 100644 --- a/services/rum/pom.xml +++ b/services/rum/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT rum AWS Java SDK :: Services :: RUM diff --git a/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json index 448f04b6f571..8fdeb4663ac7 100644 --- a/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/rum/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rum-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://rum-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://rum.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://rum.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://rum.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/rum/src/main/resources/codegen-resources/endpoint-tests.json b/services/rum/src/main/resources/codegen-resources/endpoint-tests.json index bf22fcfdf074..bb59ef12e338 100644 --- a/services/rum/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/rum/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,146 +1,55 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.eu-central-1.amazonaws.com" + "url": "https://rum.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.us-west-2.amazonaws.com" + "url": "https://rum.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.us-west-2.amazonaws.com" + "url": "https://rum.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" + "UseFIPS": false } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.eu-north-1.amazonaws.com" + "url": "https://rum.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" + "UseFIPS": false } }, { @@ -151,48 +60,22 @@ } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" + "UseFIPS": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.eu-west-2.amazonaws.com" + "url": "https://rum.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" + "UseFIPS": false } }, { @@ -203,325 +86,261 @@ } }, "params": { + "Region": "eu-west-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.eu-west-1.amazonaws.com" + "url": "https://rum.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" + "UseFIPS": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.eu-west-1.amazonaws.com" + "url": "https://rum.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.ap-northeast-1.amazonaws.com" + "url": "https://rum.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rum.ap-northeast-1.api.aws" + "url": "https://rum-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.ap-northeast-1.amazonaws.com" + "url": "https://rum-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rum-fips.ap-southeast-1.api.aws" + "url": "https://rum.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://rum-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rum.ap-southeast-1.api.aws" + "url": "https://rum-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.ap-southeast-1.amazonaws.com" + "url": "https://rum-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rum-fips.ap-southeast-2.api.aws" + "url": "https://rum.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.ap-southeast-2.amazonaws.com" + "url": "https://rum.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rum.ap-southeast-2.api.aws" + "url": "https://rum-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.ap-southeast-2.amazonaws.com" + "url": "https://rum-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://rum-fips.us-east-1.api.aws" + "url": "https://rum.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.us-east-1.amazonaws.com" + "url": "https://rum.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://rum.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.us-east-1.amazonaws.com" + "url": "https://rum-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.us-east-2.api.aws" + "url": "https://rum.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum-fips.us-east-2.amazonaws.com" + "url": "https://rum-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://rum.us-east-2.api.aws" + "url": "https://rum.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://rum.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -530,7 +349,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -540,9 +358,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -552,9 +370,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/rum/src/main/resources/codegen-resources/service-2.json b/services/rum/src/main/resources/codegen-resources/service-2.json index 24396191ca97..98929d148701 100644 --- a/services/rum/src/main/resources/codegen-resources/service-2.json +++ b/services/rum/src/main/resources/codegen-resources/service-2.json @@ -30,7 +30,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Specifies the extended metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.

By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.

If you also send extended metrics, you can send metrics to Evidently as well as CloudWatch, and you can also optionally send the metrics with additional dimensions. The valid dimension names for the additional dimensions are BrowserName, CountryCode, DeviceType, FileType, OSName, and PageId. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently.

The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions operation is 200.

The maximum number of metric definitions that one destination can contain is 2000.

Extended metrics sent are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension value counts as a custom metric. For more information, see Amazon CloudWatch Pricing.

You must have already created a destination for the metrics before you send them. For more information, see PutRumMetricsDestination.

If some metric definitions specified in a BatchCreateRumMetricDefinitions operations are not valid, those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.

", + "documentation":"

Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.

By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.

In addition to these default metrics, you can choose to send extended metrics or custom metrics or both.

  • Extended metrics enable you to send metrics with additional dimensions not included in the default metrics. You can also send extended metrics to Evidently as well as CloudWatch. The valid dimension names for the additional dimensions for extended metrics are BrowserName, CountryCode, DeviceType, FileType, OSName, and PageId. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently.

  • Custom metrics are metrics that you define. You can send custom metrics to CloudWatch or to CloudWatch Evidently or to both. With custom metrics, you can use any metric name and namespace, and to derive the metrics you can use any custom events, built-in events, custom attributes, or default attributes.

    You can't send custom metrics to the AWS/RUM namespace. You must send custom metrics to a custom namespace that you define. The namespace that you use can't start with AWS/. CloudWatch RUM prepends RUM/CustomMetrics/ to the custom namespace that you define, so the final namespace for your metrics in CloudWatch is RUM/CustomMetrics/your-custom-namespace .

The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions operation is 200.

The maximum number of metric definitions that one destination can contain is 2000.

Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension value counts as a custom metric. For more information, see Amazon CloudWatch Pricing.

You must have already created a destination for the metrics before you send them. For more information, see PutRumMetricsDestination.

If some metric definitions specified in a BatchCreateRumMetricDefinitions operations are not valid, those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.

", "idempotent":true }, "BatchDeleteRumMetricDefinitions":{ @@ -253,7 +253,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates or updates a destination to receive extended metrics from CloudWatch RUM. You can send extended metrics to CloudWatch or to a CloudWatch Evidently experiment.

For more information about extended metrics, see AddRumMetrics.

", + "documentation":"

Creates or updates a destination to receive extended metrics from CloudWatch RUM. You can send extended metrics to CloudWatch or to a CloudWatch Evidently experiment.

For more information about extended metrics, see BatchCreateRumMetricDefinitions.

", "idempotent":true }, "TagResource":{ @@ -873,7 +873,9 @@ "DimensionKeysMap":{ "type":"map", "key":{"shape":"DimensionKey"}, - "value":{"shape":"DimensionName"} + "value":{"shape":"DimensionName"}, + "max":29, + "min":0 }, "DimensionName":{ "type":"string", @@ -1130,6 +1132,10 @@ "shape":"MetricName", "documentation":"

The name of the metric that is defined in this structure.

" }, + "Namespace":{ + "shape":"Namespace", + "documentation":"

If this metric definition is for a custom metric instead of an extended metric, this field displays the metric namespace that the custom metric is published to.

" + }, "UnitLabel":{ "shape":"UnitLabel", "documentation":"

Use this field only if you are sending this metric to CloudWatch. It defines the CloudWatch metric unit that this metric is measured in.

" @@ -1156,7 +1162,7 @@ "members":{ "DimensionKeys":{ "shape":"DimensionKeysMap", - "documentation":"

Use this field only if you are sending the metric to CloudWatch.

This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. Valid values for the entries in this field are the following:

  • \"metadata.pageId\": \"PageId\"

  • \"metadata.browserName\": \"BrowserName\"

  • \"metadata.deviceType\": \"DeviceType\"

  • \"metadata.osName\": \"OSName\"

  • \"metadata.countryCode\": \"CountryCode\"

  • \"event_details.fileType\": \"FileType\"

All dimensions listed in this field must also be included in EventPattern.

" + "documentation":"

Use this field only if you are sending the metric to CloudWatch.

This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. For extended metrics, valid values for the entries in this field are the following:

  • \"metadata.pageId\": \"PageId\"

  • \"metadata.browserName\": \"BrowserName\"

  • \"metadata.deviceType\": \"DeviceType\"

  • \"metadata.osName\": \"OSName\"

  • \"metadata.countryCode\": \"CountryCode\"

  • \"event_details.fileType\": \"FileType\"

For both extended metrics and custom metrics, all dimensions listed in this field must also be included in EventPattern.

" }, "EventPattern":{ "shape":"EventPattern", @@ -1164,7 +1170,11 @@ }, "Name":{ "shape":"MetricName", - "documentation":"

The name for the metric that is defined in this structure. Valid values are the following:

  • PerformanceNavigationDuration

  • PerformanceResourceDuration

  • NavigationSatisfiedTransaction

  • NavigationToleratedTransaction

  • NavigationFrustratedTransaction

  • WebVitalsCumulativeLayoutShift

  • WebVitalsFirstInputDelay

  • WebVitalsLargestContentfulPaint

  • JsErrorCount

  • HttpErrorCount

  • SessionCount

" + "documentation":"

The name for the metric that is defined in this structure. For custom metrics, you can specify any name that you like. For extended metrics, valid values are the following:

  • PerformanceNavigationDuration

  • PerformanceResourceDuration

  • NavigationSatisfiedTransaction

  • NavigationToleratedTransaction

  • NavigationFrustratedTransaction

  • WebVitalsCumulativeLayoutShift

  • WebVitalsFirstInputDelay

  • WebVitalsLargestContentfulPaint

  • JsErrorCount

  • HttpErrorCount

  • SessionCount

" + }, + "Namespace":{ + "shape":"Namespace", + "documentation":"

If this structure is for a custom metric instead of an extended metrics, use this parameter to define the metric namespace for that custom metric. Do not specify this parameter if this structure is for an extended metric.

You cannot use any string that starts with AWS/ for your namespace.

" }, "UnitLabel":{ "shape":"UnitLabel", @@ -1175,7 +1185,7 @@ "documentation":"

The field within the event object that the metric value is sourced from.

If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.

If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.

" } }, - "documentation":"

Use this structure to define one extended metric that RUM will send to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.

Only certain combinations of values for Name, ValueKey, and EventPattern are valid. In addition to what is displayed in the list below, the EventPattern can also include information used by the DimensionKeys field.

  • If Name is PerformanceNavigationDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}

  • If Name is PerformanceResourceDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}

  • If Name is NavigationSatisfiedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">\",2000] }] } }

  • If Name is NavigationToleratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",2000,\"<\"8000] }] } }

  • If Name is NavigationFrustratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",8000] }] } }

  • If Name is WebVitalsCumulativeLayoutShift, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}

  • If Name is WebVitalsFirstInputDelay, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}

  • If Name is WebVitalsLargestContentfulPaint, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}

  • If Name is JsErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}

  • If Name is HttpErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.http_event\"]}

  • If Name is SessionCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}

" + "documentation":"

Use this structure to define one extended metric or custom metric that RUM will send to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.

This structure is validated differently for extended metrics and custom metrics. For extended metrics that are sent to the AWS/RUM namespace, the following validations apply:

  • The Namespace parameter must be omitted or set to AWS/RUM.

  • Only certain combinations of values for Name, ValueKey, and EventPattern are valid. In addition to what is displayed in the list below, the EventPattern can also include information used by the DimensionKeys field.

    • If Name is PerformanceNavigationDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}

    • If Name is PerformanceResourceDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}

    • If Name is NavigationSatisfiedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">\",2000] }] } }

    • If Name is NavigationToleratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",2000,\"<\"8000] }] } }

    • If Name is NavigationFrustratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",8000] }] } }

    • If Name is WebVitalsCumulativeLayoutShift, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}

    • If Name is WebVitalsFirstInputDelay, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}

    • If Name is WebVitalsLargestContentfulPaint, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}

    • If Name is JsErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}

    • If Name is HttpErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.http_event\"]}

    • If Name is SessionCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}

For custom metrics, the following validation rules apply:

  • The namespace can't be omitted and can't be AWS/RUM. You can use the AWS/RUM namespace only for extended metrics.

  • All dimensions listed in the DimensionKeys field must be present in the value of EventPattern.

  • The values that you specify for ValueKey, EventPattern, and DimensionKeys must be fields in RUM events, so all first-level keys in these fields must be one of the keys in the list later in this section.

  • If you set a value for EventPattern, it must be a JSON object.

  • For every non-empty event_details, there must be a non-empty event_type.

  • If EventPattern contains an event_details field, it must also contain an event_type. For every built-in event_type that you use, you must use a value for event_details that corresponds to that event_type. For information about event details that correspond to event types, see RUM event details.

  • In EventPattern, any JSON array must contain only one value.

Valid key values for first-level keys in the ValueKey, EventPattern, and DimensionKeys fields:

  • account_id

  • application_Id

  • application_version

  • application_name

  • batch_id

  • event_details

  • event_id

  • event_interaction

  • event_timestamp

  • event_type

  • event_version

  • log_stream

  • metadata

  • sessionId

  • user_details

  • userId

" }, "MetricDefinitions":{ "type":"list", @@ -1219,6 +1229,12 @@ "max":255, "min":1 }, + "Namespace":{ + "type":"string", + "max":237, + "min":1, + "pattern":"[a-zA-Z0-9-._/#:]+$" + }, "Pages":{ "type":"list", "member":{"shape":"Url"}, @@ -1240,11 +1256,11 @@ "documentation":"

A structure that contains information about the app monitor that collected this telemetry information.

" }, "BatchId":{ - "shape":"String", + "shape":"PutRumEventsRequestBatchIdString", "documentation":"

A unique identifier for this batch of RUM event data.

" }, "Id":{ - "shape":"AppMonitorId", + "shape":"PutRumEventsRequestIdString", "documentation":"

The ID of the app monitor that is sending this data.

", "location":"uri", "locationName":"Id" @@ -1259,6 +1275,18 @@ } } }, + "PutRumEventsRequestBatchIdString":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + }, + "PutRumEventsRequestIdString":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + }, "PutRumEventsResponse":{ "type":"structure", "members":{ @@ -1360,7 +1388,7 @@ "jsonvalue":true }, "id":{ - "shape":"String", + "shape":"RumEventIdString", "documentation":"

A unique ID for this event.

" }, "metadata":{ @@ -1379,6 +1407,12 @@ }, "documentation":"

A structure that contains the information for one performance event that RUM collects from a user session with your application.

" }, + "RumEventIdString":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + }, "RumEventList":{ "type":"list", "member":{"shape":"RumEvent"} @@ -1625,16 +1659,28 @@ "type":"structure", "members":{ "sessionId":{ - "shape":"String", + "shape":"UserDetailsSessionIdString", "documentation":"

The session ID that the performance events are from.

" }, "userId":{ - "shape":"String", + "shape":"UserDetailsUserIdString", "documentation":"

The ID of the user for this user session. This ID is generated by RUM and does not include any personally identifiable information about the user.

" } }, "documentation":"

A structure that contains information about the user session that this batch of events was collected from.

" }, + "UserDetailsSessionIdString":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + }, + "UserDetailsUserIdString":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + }, "ValidationException":{ "type":"structure", "required":["message"], diff --git a/services/s3/pom.xml b/services/s3/pom.xml index 8028cadaf80f..7f11aedd1bd4 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT s3 AWS Java SDK :: Services :: Amazon S3 @@ -75,6 +75,11 @@ profiles ${awsjavasdk.version} + + software.amazon.awssdk + crt-core + ${awsjavasdk.version} + software.amazon.awssdk.crt aws-crt @@ -143,6 +148,11 @@ eventstream test + + nl.jqno.equalsverifier + equalsverifier + test + diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java index 83dca2275214..5e3811bfa70f 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.java @@ -17,13 +17,17 @@ import java.net.URI; import java.nio.file.Path; +import java.util.function.Consumer; import software.amazon.awssdk.annotations.SdkPublicApi; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.IdentityProvider; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.crt.S3CrtHttpConfiguration; +import software.amazon.awssdk.services.s3.crt.S3CrtRetryConfiguration; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.utils.Validate; import software.amazon.awssdk.utils.builder.SdkBuilder; /** @@ -61,8 +65,8 @@ default S3CrtAsyncClientBuilder credentialsProvider(AwsCredentialsProvider crede * *

The default provider will attempt to identify the credentials automatically using the following checks: *

    - *
  1. Java System Properties - aws.accessKeyId and aws.secretKey
  2. - *
  3. Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  4. + *
  5. Java System Properties - {@code aws.accessKeyId} and {@code aws.secretKey}
  6. + *
  7. Environment Variables - {@code AWS_ACCESS_KEY_ID} and {@code AWS_SECRET_ACCESS_KEY}
  8. *
  9. Credential profiles file at the default location (~/.aws/credentials) shared by all AWS SDKs and the AWS CLI
  10. *
  11. Credentials delivered through the Amazon EC2 container service if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI * environment variable is set and security manager has permission to access the variable.
  12. @@ -155,13 +159,11 @@ default S3CrtAsyncClientBuilder credentialsProvider(IdentityProvider * Checksum validation using CRC32 is enabled by default. - * */ S3CrtAsyncClientBuilder checksumValidationEnabled(Boolean checksumValidationEnabled); @@ -178,6 +180,69 @@ default S3CrtAsyncClientBuilder credentialsProvider(IdentityProvider configurationBuilder) { + Validate.paramNotNull(configurationBuilder, "configurationBuilder"); + return httpConfiguration(S3CrtHttpConfiguration.builder() + .applyMutation(configurationBuilder) + .build()); + } + + // S3 client context params, copied from S3BaseClientBuilder. Note we only have accelerate and path style because they're + // the only ones we can support in the CRT client (does not affect signing). + /** + * Enables this client to use S3 Transfer Acceleration endpoints. + */ + S3CrtAsyncClientBuilder accelerate(Boolean accelerate); + + /** + * Forces this client to use path-style addressing for buckets. + */ + S3CrtAsyncClientBuilder forcePathStyle(Boolean forcePathStyle); + + /** + * A convenience method that creates an instance of the {@link S3CrtRetryConfiguration} builder, avoiding the + * need to create one manually via {@link S3CrtRetryConfiguration#builder()}. + * + * @param retryConfigurationBuilder The retry config builder to use + * @return The builder of the method chaining. + * @see #retryConfiguration(S3CrtRetryConfiguration) + */ + default S3CrtAsyncClientBuilder retryConfiguration(Consumer retryConfigurationBuilder) { + Validate.paramNotNull(retryConfigurationBuilder, "retryConfigurationBuilder"); + return retryConfiguration(S3CrtRetryConfiguration.builder() + .applyMutation(retryConfigurationBuilder) + .build()); + } + + + + + @Override S3AsyncClient build(); } \ No newline at end of file diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Uri.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Uri.java new file mode 100644 index 000000000000..b4ebc29fc939 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Uri.java @@ -0,0 +1,255 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3; + +import java.net.URI; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.utils.CollectionUtils; +import software.amazon.awssdk.utils.ToString; +import software.amazon.awssdk.utils.Validate; +import software.amazon.awssdk.utils.builder.CopyableBuilder; +import software.amazon.awssdk.utils.builder.ToCopyableBuilder; + +/** + * Object that represents a parsed S3 URI. Can be used to easily retrieve the bucket, key, region, style, and query parameters + * of the URI. Only path-style and virtual-hosted-style URI parsing is supported, including CLI-style URIs, e.g., + * "s3://bucket/key". AccessPoints and Outposts URI parsing is not supported. If you work with object keys and/or query + * parameters with special characters, they must be URL-encoded, e.g., replace " " with "%20". If you work with + * virtual-hosted-style URIs with bucket names that contain a dot, i.e., ".", the dot must not be URL-encoded. Encoded buckets, + * keys, and query parameters will be returned decoded. + */ +@Immutable +@SdkPublicApi +public final class S3Uri implements ToCopyableBuilder { + + private final URI uri; + private final String bucket; + private final String key; + private final Region region; + private final boolean isPathStyle; + private final Map> queryParams; + + private S3Uri(Builder builder) { + this.uri = Validate.notNull(builder.uri, "URI must not be null"); + this.bucket = builder.bucket; + this.key = builder.key; + this.region = builder.region; + this.isPathStyle = Validate.notNull(builder.isPathStyle, "Path style flag must not be null"); + this.queryParams = builder.queryParams == null ? new HashMap<>() : CollectionUtils.deepCopyMap(builder.queryParams); + } + + public static Builder builder() { + return new Builder(); + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + /** + * Returns the original URI that was used to instantiate the {@link S3Uri} + */ + public URI uri() { + return uri; + } + + /** + * Returns the bucket specified in the URI. Returns an empty optional if no bucket is specified. + */ + public Optional bucket() { + return Optional.ofNullable(bucket); + } + + /** + * Returns the key specified in the URI. Returns an empty optional if no key is specified. + */ + public Optional key() { + return Optional.ofNullable(key); + } + + /** + * Returns the region specified in the URI. Returns an empty optional if no region is specified, i.e., global endpoint. + */ + public Optional region() { + return Optional.ofNullable(region); + } + + /** + * Returns true if the URI is path-style, false if the URI is virtual-hosted style. + */ + public boolean isPathStyle() { + return isPathStyle; + } + + /** + * Returns a map of the query parameters specified in the URI. Returns an empty map if no queries are specified. + */ + public Map> rawQueryParameters() { + return queryParams; + } + + /** + * Returns the list of values for a specified query parameter. A empty list is returned if the URI does not contain the + * specified query parameter. + */ + public List firstMatchingRawQueryParameters(String key) { + List queryValues = queryParams.get(key); + if (queryValues == null) { + return new ArrayList<>(); + } + List queryValuesCopy = Arrays.asList(new String[queryValues.size()]); + Collections.copy(queryValuesCopy, queryValues); + return queryValuesCopy; + } + + /** + * Returns the value for the specified query parameter. If there are multiple values for the query parameter, the first + * value is returned. An empty optional is returned if the URI does not contain the specified query parameter. + */ + public Optional firstMatchingRawQueryParameter(String key) { + return Optional.ofNullable(queryParams.get(key)).map(q -> q.get(0)); + } + + @Override + public String toString() { + return ToString.builder("S3Uri") + .add("uri", uri) + .add("bucket", bucket) + .add("key", key) + .add("region", region) + .add("isPathStyle", isPathStyle) + .add("queryParams", queryParams) + .build(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + S3Uri s3Uri = (S3Uri) o; + return Objects.equals(uri, s3Uri.uri) + && Objects.equals(bucket, s3Uri.bucket) + && Objects.equals(key, s3Uri.key) + && Objects.equals(region, s3Uri.region) + && Objects.equals(isPathStyle, s3Uri.isPathStyle) + && Objects.equals(queryParams, s3Uri.queryParams); + } + + @Override + public int hashCode() { + int result = uri != null ? uri.hashCode() : 0; + result = 31 * result + (bucket != null ? bucket.hashCode() : 0); + result = 31 * result + (key != null ? key.hashCode() : 0); + result = 31 * result + (region != null ? region.hashCode() : 0); + result = 31 * result + Boolean.hashCode(isPathStyle); + result = 31 * result + (queryParams != null ? queryParams.hashCode() : 0); + return result; + } + + /** + * A builder for creating a {@link S3Uri} + */ + public static final class Builder implements CopyableBuilder { + private URI uri; + private String bucket; + private String key; + private Region region; + private boolean isPathStyle; + private Map> queryParams; + + private Builder() { + } + + private Builder(S3Uri s3Uri) { + this.uri = s3Uri.uri; + this.bucket = s3Uri.bucket; + this.key = s3Uri.key; + this.region = s3Uri.region; + this.isPathStyle = s3Uri.isPathStyle; + this.queryParams = s3Uri.queryParams; + } + + /** + * Configure the URI + */ + public Builder uri(URI uri) { + this.uri = uri; + return this; + } + + /** + * Configure the bucket + */ + public Builder bucket(String bucket) { + this.bucket = bucket; + return this; + } + + /** + * Configure the key + */ + public Builder key(String key) { + this.key = key; + return this; + } + + /** + * Configure the region + */ + public Builder region(Region region) { + this.region = region; + return this; + } + + /** + * Configure the path style flag + */ + public Builder isPathStyle(boolean isPathStyle) { + this.isPathStyle = isPathStyle; + return this; + } + + /** + * Configure the map of query parameters + */ + public Builder queryParams(Map> queryParams) { + this.queryParams = queryParams; + return this; + } + + @Override + public S3Uri build() { + return new S3Uri(this); + } + } + +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java index 0a0bbc9cfc33..3e9c32b0ff4b 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/S3Utilities.java @@ -20,10 +20,14 @@ import java.net.URI; import java.net.URL; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.function.Consumer; import java.util.function.Supplier; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import software.amazon.awssdk.annotations.Immutable; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.annotations.SdkPublicApi; @@ -63,7 +67,9 @@ import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.GetUrlRequest; import software.amazon.awssdk.utils.AttributeMap; +import software.amazon.awssdk.utils.StringUtils; import software.amazon.awssdk.utils.Validate; +import software.amazon.awssdk.utils.http.SdkHttpUtils; /** * Utilities for working with Amazon S3 objects. An instance of this class can be created by: @@ -94,7 +100,7 @@ @SdkPublicApi public final class S3Utilities { private static final String SERVICE_NAME = "s3"; - + private static final Pattern ENDPOINT_PATTERN = Pattern.compile("^(.+\\.)?s3[.-]([a-z0-9-]+)\\."); private final Region region; private final URI endpoint; private final S3Configuration s3Configuration; @@ -251,6 +257,162 @@ public URL getUrl(GetUrlRequest getUrlRequest) { } } + /** + * Returns a parsed {@link S3Uri} with which a user can easily retrieve the bucket, key, region, style, and query + * parameters of the URI. Only path-style and virtual-hosted-style URI parsing is supported, including CLI-style + * URIs, e.g., "s3://bucket/key". AccessPoints and Outposts URI parsing is not supported. If you work with object keys + * and/or query parameters with special characters, they must be URL-encoded, e.g., replace " " with "%20". If you work with + * virtual-hosted-style URIs with bucket names that contain a dot, i.e., ".", the dot must not be URL-encoded. Encoded + * buckets, keys, and query parameters will be returned decoded. + * + *

    + * For more information on path-style and virtual-hosted-style URIs, see Methods for accessing a bucket. + * + * @param uri The URI to be parsed + * @return Parsed {@link S3Uri} + * + *

    Example Usage + *

    + * {@snippet : + * S3Client s3Client = S3Client.create(); + * S3Utilities s3Utilities = s3Client.utilities(); + * String uriString = "https://myBucket.s3.us-west-1.amazonaws.com/doc.txt?versionId=abc123"; + * URI uri = URI.create(uriString); + * S3Uri s3Uri = s3Utilities.parseUri(uri); + * + * String bucket = s3Uri.bucket().orElse(null); // "myBucket" + * String key = s3Uri.key().orElse(null); // "doc.txt" + * Region region = s3Uri.region().orElse(null); // Region.US_WEST_1 + * boolean isPathStyle = s3Uri.isPathStyle(); // false + * String versionId = s3Uri.firstMatchingRawQueryParameter("versionId").orElse(null); // "abc123" + *} + */ + public S3Uri parseUri(URI uri) { + validateUri(uri); + + if ("s3".equalsIgnoreCase(uri.getScheme())) { + return parseAwsCliStyleUri(uri); + } + + return parseStandardUri(uri); + } + + private S3Uri parseStandardUri(URI uri) { + + if (uri.getHost() == null) { + throw new IllegalArgumentException("Invalid S3 URI: no hostname: " + uri); + } + + Matcher matcher = ENDPOINT_PATTERN.matcher(uri.getHost()); + if (!matcher.find()) { + throw new IllegalArgumentException("Invalid S3 URI: hostname does not appear to be a valid S3 endpoint: " + uri); + } + + S3Uri.Builder builder = S3Uri.builder().uri(uri); + addRegionIfNeeded(builder, matcher.group(2)); + addQueryParamsIfNeeded(builder, uri); + + String prefix = matcher.group(1); + if (StringUtils.isEmpty(prefix)) { + return parsePathStyleUri(builder, uri); + } + return parseVirtualHostedStyleUri(builder, uri, matcher); + } + + private S3Uri.Builder addRegionIfNeeded(S3Uri.Builder builder, String region) { + if (!"amazonaws".equals(region)) { + return builder.region(Region.of(region)); + } + return builder; + } + + private S3Uri.Builder addQueryParamsIfNeeded(S3Uri.Builder builder, URI uri) { + if (uri.getQuery() != null) { + return builder.queryParams(SdkHttpUtils.uriParams(uri)); + } + return builder; + } + + private S3Uri parsePathStyleUri(S3Uri.Builder builder, URI uri) { + String bucket = null; + String key = null; + String path = uri.getPath(); + + if (!StringUtils.isEmpty(path) && !"/".equals(path)) { + int index = path.indexOf('/', 1); + + if (index == -1) { + // No trailing slash, e.g., "https://s3.amazonaws.com/bucket" + bucket = path.substring(1); + } else { + bucket = path.substring(1, index); + if (index != path.length() - 1) { + key = path.substring(index + 1); + } + } + } + return builder.key(key) + .bucket(bucket) + .isPathStyle(true) + .build(); + } + + private S3Uri parseVirtualHostedStyleUri(S3Uri.Builder builder, URI uri, Matcher matcher) { + String bucket; + String key = null; + String path = uri.getPath(); + String prefix = matcher.group(1); + + bucket = prefix.substring(0, prefix.length() - 1); + if (!StringUtils.isEmpty(path) && !"/".equals(path)) { + key = path.substring(1); + } + + return builder.key(key) + .bucket(bucket) + .build(); + } + + private S3Uri parseAwsCliStyleUri(URI uri) { + String key = null; + String bucket = uri.getAuthority(); + Region region = null; + boolean isPathStyle = false; + Map> queryParams = new HashMap<>(); + String path = uri.getPath(); + + if (bucket == null) { + throw new IllegalArgumentException("Invalid S3 URI: bucket not included: " + uri); + } + + if (path.length() > 1) { + key = path.substring(1); + } + + return S3Uri.builder() + .uri(uri) + .bucket(bucket) + .key(key) + .region(region) + .isPathStyle(isPathStyle) + .queryParams(queryParams) + .build(); + } + + private void validateUri(URI uri) { + Validate.paramNotNull(uri, "uri"); + + if (uri.toString().contains(".s3-accesspoint")) { + throw new IllegalArgumentException("AccessPoints URI parsing is not supported: " + uri); + } + + if (uri.toString().contains(".s3-outposts")) { + throw new IllegalArgumentException("Outposts URI parsing is not supported: " + uri); + } + } + private Region resolveRegionForGetUrl(GetUrlRequest getUrlRequest) { if (getUrlRequest.region() == null && this.region == null) { throw new IllegalArgumentException("Region should be provided either in GetUrlRequest object or S3Utilities object"); diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtConnectionHealthConfiguration.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtConnectionHealthConfiguration.java new file mode 100644 index 000000000000..327d4aae6bfe --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtConnectionHealthConfiguration.java @@ -0,0 +1,92 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import java.time.Duration; +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.crtcore.CrtConnectionHealthConfiguration; +import software.amazon.awssdk.utils.builder.CopyableBuilder; +import software.amazon.awssdk.utils.builder.ToCopyableBuilder; + +/** + * Configuration that defines health checks for all connections established by + * the AWS CRT-based S3 client + * + */ +@SdkPublicApi +@Immutable +@ThreadSafe +public final class S3CrtConnectionHealthConfiguration extends CrtConnectionHealthConfiguration + implements ToCopyableBuilder { + private S3CrtConnectionHealthConfiguration(DefaultBuilder builder) { + super(builder); + } + + public static Builder builder() { + return new DefaultBuilder(); + } + + @Override + public Builder toBuilder() { + return new DefaultBuilder(this); + } + + @Override + public boolean equals(Object o) { + return super.equals(o); + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + /** + * A builder for {@link S3CrtConnectionHealthConfiguration}. + * + *

    All implementations of this interface are mutable and not thread safe.

    + */ + public interface Builder extends CrtConnectionHealthConfiguration.Builder, + CopyableBuilder { + + @Override + Builder minimumThroughputInBps(Long minimumThroughputInBps); + + @Override + Builder minimumThroughputTimeout(Duration minimumThroughputTimeout); + + @Override + S3CrtConnectionHealthConfiguration build(); + } + + private static final class DefaultBuilder + extends CrtConnectionHealthConfiguration.DefaultBuilder implements Builder { + + private DefaultBuilder() { + } + + private DefaultBuilder(S3CrtConnectionHealthConfiguration configuration) { + super(configuration); + } + + @Override + public S3CrtConnectionHealthConfiguration build() { + return new S3CrtConnectionHealthConfiguration(this); + } + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtHttpConfiguration.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtHttpConfiguration.java new file mode 100644 index 000000000000..819d23b5b347 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtHttpConfiguration.java @@ -0,0 +1,217 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import java.time.Duration; +import java.util.Objects; +import java.util.function.Consumer; +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.services.s3.S3CrtAsyncClientBuilder; +import software.amazon.awssdk.utils.builder.CopyableBuilder; +import software.amazon.awssdk.utils.builder.ToCopyableBuilder; + +/** + * HTTP configuration for AWS CRT-based S3 client. + * + * @see S3CrtAsyncClientBuilder#httpConfiguration + */ +@SdkPublicApi +@Immutable +@ThreadSafe +public final class S3CrtHttpConfiguration implements ToCopyableBuilder { + private final Duration connectionTimeout; + private final S3CrtProxyConfiguration proxyConfiguration; + private final S3CrtConnectionHealthConfiguration healthConfiguration; + + private S3CrtHttpConfiguration(DefaultBuilder builder) { + this.connectionTimeout = builder.connectionTimeout; + this.proxyConfiguration = builder.proxyConfiguration; + this.healthConfiguration = builder.healthConfiguration; + } + + /** + * Creates a default builder for {@link S3CrtHttpConfiguration}. + */ + public static Builder builder() { + return new S3CrtHttpConfiguration.DefaultBuilder(); + } + + /** + * Return the amount of time to wait when initially establishing a connection before giving up and timing out. + */ + public Duration connectionTimeout() { + return connectionTimeout; + } + + /** + * Return the configured {@link S3CrtProxyConfiguration}. + */ + public S3CrtProxyConfiguration proxyConfiguration() { + return proxyConfiguration; + } + + /** + * Return the configured {@link S3CrtConnectionHealthConfiguration}. + */ + public S3CrtConnectionHealthConfiguration healthConfiguration() { + return healthConfiguration; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + S3CrtHttpConfiguration that = (S3CrtHttpConfiguration) o; + + if (!Objects.equals(connectionTimeout, that.connectionTimeout)) { + return false; + } + if (!Objects.equals(proxyConfiguration, that.proxyConfiguration)) { + return false; + } + return Objects.equals(healthConfiguration, that.healthConfiguration); + } + + @Override + public int hashCode() { + int result = connectionTimeout != null ? connectionTimeout.hashCode() : 0; + result = 31 * result + (proxyConfiguration != null ? proxyConfiguration.hashCode() : 0); + result = 31 * result + (healthConfiguration != null ? healthConfiguration.hashCode() : 0); + return result; + } + + @Override + public Builder toBuilder() { + return new S3CrtHttpConfiguration.DefaultBuilder(this); + } + + public interface Builder extends CopyableBuilder { + /** + * The amount of time to wait when initially establishing a connection before giving up and timing out. + * + * @param connectionTimeout timeout + * @return The builder of the method chaining. + */ + Builder connectionTimeout(Duration connectionTimeout); + + /** + * Sets the http proxy configuration to use for this client. + * + * @param proxyConfiguration The http proxy configuration to use + * @return The builder of the method chaining. + */ + Builder proxyConfiguration(S3CrtProxyConfiguration proxyConfiguration); + + /** + * A convenience method that creates an instance of the {@link S3CrtProxyConfiguration} builder, avoiding the + * need to create one manually via {@link S3CrtProxyConfiguration#builder()}. + * + * @param configurationBuilder The config builder to use + * @return The builder of the method chaining. + * @see #proxyConfiguration(S3CrtProxyConfiguration) + */ + Builder proxyConfiguration(Consumer configurationBuilder); + + /** + * Configure the health checks for all connections established by this client. + * + *

    + * You can set a throughput threshold for a connection to be considered healthy. If a connection falls below this + * threshold ({@link S3CrtConnectionHealthConfiguration#minimumThroughputInBps() }) for the configurable amount of time + * ({@link S3CrtConnectionHealthConfiguration#minimumThroughputTimeout()}), then the connection is considered unhealthy + * and will be shut down. + * + * @param healthConfiguration The health checks config to use + * @return The builder of the method chaining. + */ + Builder connectionHealthConfiguration(S3CrtConnectionHealthConfiguration healthConfiguration); + + /** + * A convenience method that creates an instance of the {@link S3CrtConnectionHealthConfiguration} builder, avoiding the + * need to create one manually via {@link S3CrtConnectionHealthConfiguration#builder()}. + * + * @param configurationBuilder The health checks config builder to use + * @return The builder of the method chaining. + * @see #connectionHealthConfiguration(S3CrtConnectionHealthConfiguration) + */ + Builder connectionHealthConfiguration(Consumer + configurationBuilder); + + @Override + S3CrtHttpConfiguration build(); + } + + private static final class DefaultBuilder implements Builder { + private S3CrtConnectionHealthConfiguration healthConfiguration; + private Duration connectionTimeout; + private S3CrtProxyConfiguration proxyConfiguration; + + private DefaultBuilder() { + } + + private DefaultBuilder(S3CrtHttpConfiguration httpConfiguration) { + this.healthConfiguration = httpConfiguration.healthConfiguration; + this.connectionTimeout = httpConfiguration.connectionTimeout; + this.proxyConfiguration = httpConfiguration.proxyConfiguration; + } + + @Override + public Builder connectionTimeout(Duration connectionTimeout) { + this.connectionTimeout = connectionTimeout; + return this; + } + + @Override + public Builder proxyConfiguration(S3CrtProxyConfiguration proxyConfiguration) { + this.proxyConfiguration = proxyConfiguration; + return this; + } + + @Override + public Builder proxyConfiguration(Consumer configurationBuilder) { + return proxyConfiguration(S3CrtProxyConfiguration.builder() + .applyMutation(configurationBuilder) + .build()); + } + + @Override + public Builder connectionHealthConfiguration(S3CrtConnectionHealthConfiguration healthConfiguration) { + this.healthConfiguration = healthConfiguration; + return this; + } + + @Override + public Builder connectionHealthConfiguration(Consumer + configurationBuilder) { + return connectionHealthConfiguration(S3CrtConnectionHealthConfiguration.builder() + .applyMutation(configurationBuilder) + .build()); + } + + @Override + public S3CrtHttpConfiguration build() { + return new S3CrtHttpConfiguration(this); + } + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtProxyConfiguration.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtProxyConfiguration.java new file mode 100644 index 000000000000..9b6238252214 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtProxyConfiguration.java @@ -0,0 +1,109 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.crtcore.CrtProxyConfiguration; +import software.amazon.awssdk.services.s3.S3CrtAsyncClientBuilder; +import software.amazon.awssdk.utils.builder.CopyableBuilder; +import software.amazon.awssdk.utils.builder.ToCopyableBuilder; + + +/** + * Proxy configuration for {@link S3CrtAsyncClientBuilder}. This class is used to configure proxy to be used + * by the AWS CRT-based S3 client. + * + * @see S3CrtHttpConfiguration.Builder#proxyConfiguration(S3CrtProxyConfiguration) + */ +@SdkPublicApi +@Immutable +@ThreadSafe +public final class S3CrtProxyConfiguration extends CrtProxyConfiguration + implements ToCopyableBuilder { + + private S3CrtProxyConfiguration(DefaultBuilder builder) { + super(builder); + } + + @Override + public Builder toBuilder() { + return new DefaultBuilder(this); + } + + public static Builder builder() { + return new DefaultBuilder(); + } + + @Override + public String toString() { + return super.toString(); + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public boolean equals(Object o) { + return super.equals(o); + } + + /** + * Builder for {@link S3CrtProxyConfiguration}. + */ + public interface Builder extends CrtProxyConfiguration.Builder, CopyableBuilder { + + @Override + Builder host(String host); + + @Override + Builder port(int port); + + @Override + Builder scheme(String scheme); + + @Override + Builder username(String username); + + @Override + Builder password(String password); + + @Override + Builder useSystemPropertyValues(Boolean useSystemPropertyValues); + + @Override + S3CrtProxyConfiguration build(); + } + + private static final class DefaultBuilder extends CrtProxyConfiguration.DefaultBuilder implements Builder { + + private DefaultBuilder(S3CrtProxyConfiguration proxyConfiguration) { + super(proxyConfiguration); + } + + private DefaultBuilder() { + + } + + @Override + public S3CrtProxyConfiguration build() { + return new S3CrtProxyConfiguration(this); + } + } +} \ No newline at end of file diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtRetryConfiguration.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtRetryConfiguration.java new file mode 100644 index 000000000000..6ea6a1508ed9 --- /dev/null +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/crt/S3CrtRetryConfiguration.java @@ -0,0 +1,116 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import java.util.Objects; +import software.amazon.awssdk.annotations.Immutable; +import software.amazon.awssdk.annotations.SdkPublicApi; +import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.services.s3.S3CrtAsyncClientBuilder; +import software.amazon.awssdk.utils.Validate; +import software.amazon.awssdk.utils.builder.CopyableBuilder; +import software.amazon.awssdk.utils.builder.ToCopyableBuilder; + +/** + * Retry option configuration for AWS CRT-based S3 client. + * + * @see S3CrtAsyncClientBuilder#retryConfiguration + */ +@SdkPublicApi +@Immutable +@ThreadSafe +public final class S3CrtRetryConfiguration implements ToCopyableBuilder { + private final Integer numRetries; + + private S3CrtRetryConfiguration(DefaultBuilder builder) { + Validate.notNull(builder.numRetries, "numRetries"); + this.numRetries = builder.numRetries; + } + + /** + * Creates a default builder for {@link S3CrtRetryConfiguration}. + */ + public static Builder builder() { + return new S3CrtRetryConfiguration.DefaultBuilder(); + } + + /** + * Retrieve the {@link S3CrtRetryConfiguration.Builder#numRetries(Integer)} configured on the builder. + */ + public Integer numRetries() { + return numRetries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + S3CrtRetryConfiguration that = (S3CrtRetryConfiguration) o; + return Objects.equals(numRetries, that.numRetries); + } + + @Override + public int hashCode() { + return numRetries != null ? numRetries.hashCode() : 0; + } + + @Override + public Builder toBuilder() { + return new S3CrtRetryConfiguration.DefaultBuilder(this); + } + + public interface Builder extends CopyableBuilder { + + /** + * Sets the maximum number of retries for a single HTTP request. + *

    For example, if an upload operation is split into 5 HTTP service requests ( One for initiate, Three for + * uploadPart and one for completeUpload), then numRetries specifies the maximum number of retries for each failed + * request, not for the entire uploadObject operation. + * + * @param numRetries The maximum number of retries for a single HTTP request. + * @return The builder of the method chaining. + */ + Builder numRetries(Integer numRetries); + + } + + private static final class DefaultBuilder implements Builder { + private Integer numRetries; + + private DefaultBuilder() { + } + + private DefaultBuilder(S3CrtRetryConfiguration crtRetryConfiguration) { + this.numRetries = crtRetryConfiguration.numRetries; + } + + @Override + public Builder numRetries(Integer numRetries) { + this.numRetries = numRetries; + return this; + } + + @Override + public S3CrtRetryConfiguration build() { + return new S3CrtRetryConfiguration(this); + } + } +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelper.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelper.java index a9d0b65d4825..c09c31d42a5a 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelper.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelper.java @@ -56,11 +56,11 @@ public final class CopyObjectHelper { private static final long MAX_UPLOAD_PARTS = 10_000; private final S3AsyncClient s3AsyncClient; - private final S3NativeClientConfiguration s3NativeClientConfiguration; + private final long partSizeInBytes; - public CopyObjectHelper(S3AsyncClient s3AsyncClient, S3NativeClientConfiguration s3NativeClientConfiguration) { + public CopyObjectHelper(S3AsyncClient s3AsyncClient, long partSizeInBytes) { this.s3AsyncClient = s3AsyncClient; - this.s3NativeClientConfiguration = s3NativeClientConfiguration; + this.partSizeInBytes = partSizeInBytes; } public CompletableFuture copyObject(CopyObjectRequest copyObjectRequest) { @@ -92,9 +92,7 @@ private void doCopyObject(CopyObjectRequest copyObjectRequest, CompletableFuture HeadObjectResponse headObjectResponse) { Long contentLength = headObjectResponse.contentLength(); - long partSize = s3NativeClientConfiguration.partSizeBytes(); - - if (contentLength <= partSize) { + if (contentLength <= partSizeInBytes) { log.debug(() -> "Starting the copy as a single copy part request"); copyInOneChunk(copyObjectRequest, returnFuture); } else { @@ -132,7 +130,7 @@ private void doCopyInParts(CopyObjectRequest copyObjectRequest, Long contentLength, CompletableFuture returnFuture, String uploadId) { - long optimalPartSize = calculateOptimalPartSizeForCopy(s3NativeClientConfiguration.partSizeBytes()); + long optimalPartSize = calculateOptimalPartSizeForCopy(partSizeInBytes); int partCount = determinePartCount(contentLength, optimalPartSize); @@ -281,8 +279,7 @@ private long calculateOptimalPartSizeForCopy(long contentLengthOfSource) { double optimalPartSize = contentLengthOfSource / (double) MAX_UPLOAD_PARTS; optimalPartSize = Math.ceil(optimalPartSize); - return (long) Math.max(optimalPartSize, - s3NativeClientConfiguration.partSizeBytes()); + return (long) Math.max(optimalPartSize, partSizeInBytes); } private void copyInOneChunk(CopyObjectRequest copyObjectRequest, diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java index b8506e7ac03f..264ffc4009ed 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClient.java @@ -18,14 +18,19 @@ import static software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute.SDK_HTTP_EXECUTION_ATTRIBUTES; import static software.amazon.awssdk.services.s3.internal.crt.S3InternalSdkHttpExecutionAttribute.HTTP_CHECKSUM; import static software.amazon.awssdk.services.s3.internal.crt.S3InternalSdkHttpExecutionAttribute.OPERATION_NAME; +import static software.amazon.awssdk.services.s3.internal.crt.S3NativeClientConfiguration.DEFAULT_PART_SIZE_IN_BYTES; import java.net.URI; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.CompletableFuture; import software.amazon.awssdk.annotations.SdkInternalApi; +import software.amazon.awssdk.annotations.SdkTestInternalApi; import software.amazon.awssdk.awscore.AwsRequest; import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration; import software.amazon.awssdk.core.SdkRequest; import software.amazon.awssdk.core.checksums.ChecksumValidation; +import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption; import software.amazon.awssdk.core.interceptor.Context; import software.amazon.awssdk.core.interceptor.ExecutionAttributes; @@ -35,6 +40,8 @@ import software.amazon.awssdk.core.internal.util.ClassLoaderHelper; import software.amazon.awssdk.core.retry.RetryPolicy; import software.amazon.awssdk.core.signer.NoOpSigner; +import software.amazon.awssdk.crt.io.ExponentialBackoffRetryOptions; +import software.amazon.awssdk.crt.io.StandardRetryOptions; import software.amazon.awssdk.http.SdkHttpExecutionAttributes; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.IdentityProvider; @@ -43,6 +50,8 @@ import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.S3Configuration; import software.amazon.awssdk.services.s3.S3CrtAsyncClientBuilder; +import software.amazon.awssdk.services.s3.crt.S3CrtHttpConfiguration; +import software.amazon.awssdk.services.s3.crt.S3CrtRetryConfiguration; import software.amazon.awssdk.services.s3.model.CopyObjectRequest; import software.amazon.awssdk.services.s3.model.CopyObjectResponse; import software.amazon.awssdk.services.s3.model.GetObjectRequest; @@ -53,12 +62,13 @@ @SdkInternalApi public final class DefaultS3CrtAsyncClient extends DelegatingS3AsyncClient implements S3CrtAsyncClient { private static final String CRT_CLIENT_CLASSPATH = "software.amazon.awssdk.crt.s3.S3Client"; - private static S3NativeClientConfiguration s3NativeClientConfiguration; private final CopyObjectHelper copyObjectHelper; private DefaultS3CrtAsyncClient(DefaultS3CrtClientBuilder builder) { super(initializeS3AsyncClient(builder)); - this.copyObjectHelper = new CopyObjectHelper((S3AsyncClient) delegate(), s3NativeClientConfiguration); + long partSizeInBytes = builder.minimalPartSizeInBytes == null ? DEFAULT_PART_SIZE_IN_BYTES : + builder.minimalPartSizeInBytes; + this.copyObjectHelper = new CopyObjectHelper((S3AsyncClient) delegate(), partSizeInBytes); } @Override @@ -67,22 +77,31 @@ public CompletableFuture copyObject(CopyObjectRequest copyOb } private static S3AsyncClient initializeS3AsyncClient(DefaultS3CrtClientBuilder builder) { + ClientOverrideConfiguration.Builder overrideConfigurationBuilder = + ClientOverrideConfiguration.builder() + // Disable checksum, retry policy and signer because they are handled in crt + .putAdvancedOption(SdkAdvancedClientOption.SIGNER, new NoOpSigner()) + .putExecutionAttribute(SdkExecutionAttribute.HTTP_RESPONSE_CHECKSUM_VALIDATION, + ChecksumValidation.FORCE_SKIP) + .retryPolicy(RetryPolicy.none()) + .addExecutionInterceptor(new ValidateRequestInterceptor()) + .addExecutionInterceptor(new AttachHttpAttributesExecutionInterceptor()); + + if (builder.executionInterceptors != null) { + builder.executionInterceptors.forEach(overrideConfigurationBuilder::addExecutionInterceptor); + } + return S3AsyncClient.builder() - // Disable checksum, retry policy and signer because they are handled in crt + // Disable checksum, it is handled in CRT .serviceConfiguration(S3Configuration.builder() .checksumValidationEnabled(false) .build()) .region(builder.region) .endpointOverride(builder.endpointOverride) .credentialsProvider(builder.credentialsProvider) - .overrideConfiguration(o -> o.putAdvancedOption(SdkAdvancedClientOption.SIGNER, - new NoOpSigner()) - .putExecutionAttribute( - SdkExecutionAttribute.HTTP_RESPONSE_CHECKSUM_VALIDATION, - ChecksumValidation.FORCE_SKIP) - .retryPolicy(RetryPolicy.none()) - .addExecutionInterceptor(new ValidateRequestInterceptor()) - .addExecutionInterceptor(new AttachHttpAttributesExecutionInterceptor())) + .overrideConfiguration(overrideConfigurationBuilder.build()) + .accelerate(builder.accelerate) + .forcePathStyle(builder.forcePathStyle) .httpClientBuilder(initializeS3CrtAsyncHttpClient(builder)) .build(); } @@ -94,7 +113,7 @@ private static S3CrtAsyncHttpClient.Builder initializeS3CrtAsyncHttpClient(Defau Validate.isPositiveOrNull(builder.targetThroughputInGbps, "targetThroughputInGbps"); Validate.isPositiveOrNull(builder.minimalPartSizeInBytes, "minimalPartSizeInBytes"); - s3NativeClientConfiguration = + S3NativeClientConfiguration.Builder nativeClientBuilder = S3NativeClientConfiguration.builder() .checksumValidationEnabled(builder.checksumValidationEnabled) .targetThroughputInGbps(builder.targetThroughputInGbps) @@ -104,9 +123,16 @@ private static S3CrtAsyncHttpClient.Builder initializeS3CrtAsyncHttpClient(Defau .endpointOverride(builder.endpointOverride) .credentialsProvider(builder.credentialsProvider) .readBufferSizeInBytes(builder.readBufferSizeInBytes) - .build(); + .httpConfiguration(builder.httpConfiguration); + + if (builder.retryConfiguration != null) { + nativeClientBuilder.standardRetryOptions( + new StandardRetryOptions() + .withBackoffRetryOptions(new ExponentialBackoffRetryOptions() + .withMaxRetries(builder.retryConfiguration.numRetries()))); + } return S3CrtAsyncHttpClient.builder() - .s3ClientConfiguration(s3NativeClientConfiguration); + .s3ClientConfiguration(nativeClientBuilder.build()); } public static final class DefaultS3CrtClientBuilder implements S3CrtAsyncClientBuilder { @@ -118,6 +144,12 @@ public static final class DefaultS3CrtClientBuilder implements S3CrtAsyncClientB private Integer maxConcurrency; private URI endpointOverride; private Boolean checksumValidationEnabled; + private S3CrtHttpConfiguration httpConfiguration; + private Boolean accelerate; + private Boolean forcePathStyle; + + private List executionInterceptors; + private S3CrtRetryConfiguration retryConfiguration; @Override public S3CrtAsyncClientBuilder credentialsProvider( @@ -168,6 +200,39 @@ public S3CrtAsyncClientBuilder initialReadBufferSizeInBytes(Long readBufferSizeI return this; } + @Override + public S3CrtAsyncClientBuilder httpConfiguration(S3CrtHttpConfiguration configuration) { + this.httpConfiguration = configuration; + return this; + } + + @Override + public S3CrtAsyncClientBuilder accelerate(Boolean accelerate) { + this.accelerate = accelerate; + return this; + } + + @Override + public S3CrtAsyncClientBuilder forcePathStyle(Boolean forcePathStyle) { + this.forcePathStyle = forcePathStyle; + return this; + } + + @SdkTestInternalApi + S3CrtAsyncClientBuilder addExecutionInterceptor(ExecutionInterceptor executionInterceptor) { + if (executionInterceptors == null) { + this.executionInterceptors = new ArrayList<>(); + } + executionInterceptors.add(executionInterceptor); + return this; + } + + @Override + public S3CrtAsyncClientBuilder retryConfiguration(S3CrtRetryConfiguration retryConfiguration) { + this.retryConfiguration = retryConfiguration; + return this; + } + @Override public S3CrtAsyncClient build() { return new DefaultS3CrtAsyncClient(this); diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java index 78983dad55ba..9681c8c14f94 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClient.java @@ -23,6 +23,7 @@ import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely; import java.net.URI; +import java.time.Duration; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -44,6 +45,7 @@ import software.amazon.awssdk.http.async.SdkAsyncHttpClient; import software.amazon.awssdk.utils.AttributeMap; import software.amazon.awssdk.utils.Logger; +import software.amazon.awssdk.utils.NumericUtils; import software.amazon.awssdk.utils.http.SdkHttpUtils; /** @@ -57,12 +59,13 @@ public final class S3CrtAsyncHttpClient implements SdkAsyncHttpClient { private final S3Client crtS3Client; private final S3NativeClientConfiguration s3NativeClientConfiguration; + private final S3ClientOptions s3ClientOptions; private S3CrtAsyncHttpClient(Builder builder) { s3NativeClientConfiguration = builder.clientConfiguration; Long initialWindowSize = s3NativeClientConfiguration.readBufferSizeInBytes(); - S3ClientOptions s3ClientOptions = + this.s3ClientOptions = new S3ClientOptions().withRegion(s3NativeClientConfiguration.signingRegion()) .withEndpoint(s3NativeClientConfiguration.endpointOverride() == null ? null : s3NativeClientConfiguration.endpointOverride().toString()) @@ -74,6 +77,18 @@ private S3CrtAsyncHttpClient(Builder builder) { .withThroughputTargetGbps(s3NativeClientConfiguration.targetThroughputInGbps()) .withInitialReadWindowSize(initialWindowSize) .withReadBackpressureEnabled(true); + + if (s3NativeClientConfiguration.standardRetryOptions() != null) { + this.s3ClientOptions.withStandardRetryOptions(s3NativeClientConfiguration.standardRetryOptions()); + } + Optional.ofNullable(s3NativeClientConfiguration.proxyOptions()).ifPresent(s3ClientOptions::withProxyOptions); + Optional.ofNullable(s3NativeClientConfiguration.connectionTimeout()) + .map(Duration::toMillis) + .map(NumericUtils::saturatedCast) + .ifPresent(s3ClientOptions::withConnectTimeoutMs); + Optional.ofNullable(s3NativeClientConfiguration.httpMonitoringOptions()) + .ifPresent(s3ClientOptions::withHttpMonitoringOptions); + this.crtS3Client = new S3Client(s3ClientOptions); } @@ -82,6 +97,12 @@ private S3CrtAsyncHttpClient(Builder builder) { S3NativeClientConfiguration nativeClientConfiguration) { this.crtS3Client = crtS3Client; this.s3NativeClientConfiguration = nativeClientConfiguration; + this.s3ClientOptions = null; + } + + @SdkTestInternalApi + public S3ClientOptions s3ClientOptions() { + return s3ClientOptions; } @Override diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtRequestBodyStreamAdapter.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtRequestBodyStreamAdapter.java index ff608821fcaf..2c22a1768824 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtRequestBodyStreamAdapter.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtRequestBodyStreamAdapter.java @@ -16,6 +16,7 @@ package software.amazon.awssdk.services.s3.internal.crt; import java.nio.ByteBuffer; +import java.util.concurrent.atomic.AtomicBoolean; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.crt.http.HttpRequestBodyStream; import software.amazon.awssdk.http.async.SdkHttpContentPublisher; @@ -26,19 +27,23 @@ */ @SdkInternalApi public final class S3CrtRequestBodyStreamAdapter implements HttpRequestBodyStream { - private static final long MINIMUM_BYTES_BUFFERED = 16 * 1024 * 1024L; + private static final long MINIMUM_BYTES_BUFFERED = 1024 * 1024L; private final SdkHttpContentPublisher bodyPublisher; private final ByteBufferStoringSubscriber requestBodySubscriber; + private final AtomicBoolean subscribed = new AtomicBoolean(false); public S3CrtRequestBodyStreamAdapter(SdkHttpContentPublisher bodyPublisher) { this.bodyPublisher = bodyPublisher; this.requestBodySubscriber = new ByteBufferStoringSubscriber(MINIMUM_BYTES_BUFFERED); - bodyPublisher.subscribe(requestBodySubscriber); } @Override public boolean sendRequestBody(ByteBuffer outBuffer) { + if (subscribed.compareAndSet(false, true)) { + bodyPublisher.subscribe(requestBodySubscriber); + } + // blocking here because CRT S3 requires the buffer to be completely filled return requestBodySubscriber.blockingTransferTo(outBuffer) == ByteBufferStoringSubscriber.TransferResult.END_OF_STREAM; } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java index 142deadb289c..bcd6a957afa2 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3NativeClientConfiguration.java @@ -15,14 +15,25 @@ package software.amazon.awssdk.services.s3.internal.crt; +import static software.amazon.awssdk.crtcore.CrtConfigurationUtils.resolveHttpMonitoringOptions; +import static software.amazon.awssdk.crtcore.CrtConfigurationUtils.resolveProxy; + import java.net.URI; +import java.time.Duration; import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import software.amazon.awssdk.crt.auth.credentials.CredentialsProvider; +import software.amazon.awssdk.crt.http.HttpMonitoringOptions; +import software.amazon.awssdk.crt.http.HttpProxyOptions; import software.amazon.awssdk.crt.io.ClientBootstrap; +import software.amazon.awssdk.crt.io.StandardRetryOptions; +import software.amazon.awssdk.crt.io.TlsCipherPreference; +import software.amazon.awssdk.crt.io.TlsContext; +import software.amazon.awssdk.crt.io.TlsContextOptions; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.IdentityProvider; import software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain; +import software.amazon.awssdk.services.s3.crt.S3CrtHttpConfiguration; import software.amazon.awssdk.utils.SdkAutoCloseable; /** @@ -30,10 +41,11 @@ */ @SdkInternalApi public class S3NativeClientConfiguration implements SdkAutoCloseable { - private static final long DEFAULT_PART_SIZE_IN_BYTES = 8L * 1024 * 1024; + static final long DEFAULT_PART_SIZE_IN_BYTES = 8L * 1024 * 1024; private static final long DEFAULT_TARGET_THROUGHPUT_IN_GBPS = 10; private final String signingRegion; + private final StandardRetryOptions standardRetryOptions; private final ClientBootstrap clientBootstrap; private final CrtCredentialsProviderAdapter credentialProviderAdapter; private final CredentialsProvider credentialsProvider; @@ -44,11 +56,19 @@ public class S3NativeClientConfiguration implements SdkAutoCloseable { private final boolean checksumValidationEnabled; private final Long readBufferSizeInBytes; + private final TlsContext tlsContext; + private final HttpProxyOptions proxyOptions; + private final Duration connectionTimeout; + private final HttpMonitoringOptions httpMonitoringOptions; + public S3NativeClientConfiguration(Builder builder) { this.signingRegion = builder.signingRegion == null ? DefaultAwsRegionProviderChain.builder().build().getRegion().id() : builder.signingRegion; this.clientBootstrap = new ClientBootstrap(null, null); - + TlsContextOptions clientTlsContextOptions = + TlsContextOptions.createDefaultClient() + .withCipherPreference(TlsCipherPreference.TLS_CIPHER_SYSTEM_DEFAULT); + this.tlsContext = new TlsContext(clientTlsContextOptions); this.credentialProviderAdapter = builder.credentialsProvider == null ? new CrtCredentialsProviderAdapter(DefaultCredentialsProvider.create()) : @@ -69,8 +89,33 @@ public S3NativeClientConfiguration(Builder builder) { this.checksumValidationEnabled = builder.checksumValidationEnabled == null || builder.checksumValidationEnabled; this.readBufferSizeInBytes = builder.readBufferSizeInBytes == null ? partSizeInBytes * 10 : builder.readBufferSizeInBytes; + + if (builder.httpConfiguration != null) { + this.proxyOptions = resolveProxy(builder.httpConfiguration.proxyConfiguration(), tlsContext).orElse(null); + this.connectionTimeout = builder.httpConfiguration.connectionTimeout(); + this.httpMonitoringOptions = + resolveHttpMonitoringOptions(builder.httpConfiguration.healthConfiguration()).orElse(null); + } else { + this.proxyOptions = null; + this.connectionTimeout = null; + this.httpMonitoringOptions = null; + } + this.standardRetryOptions = builder.standardRetryOptions; + } + + public HttpMonitoringOptions httpMonitoringOptions() { + return httpMonitoringOptions; + } + + public HttpProxyOptions proxyOptions() { + return proxyOptions; + } + + public Duration connectionTimeout() { + return connectionTimeout; } + public static Builder builder() { return new Builder(); } @@ -99,6 +144,10 @@ public int maxConcurrency() { return maxConcurrency; } + public StandardRetryOptions standardRetryOptions() { + return standardRetryOptions; + } + public URI endpointOverride() { return endpointOverride; } @@ -114,6 +163,7 @@ public Long readBufferSizeInBytes() { @Override public void close() { clientBootstrap.close(); + tlsContext.close(); credentialProviderAdapter.close(); } @@ -126,6 +176,8 @@ public static final class Builder { private Integer maxConcurrency; private URI endpointOverride; private Boolean checksumValidationEnabled; + private S3CrtHttpConfiguration httpConfiguration; + private StandardRetryOptions standardRetryOptions; private Builder() { } @@ -176,5 +228,15 @@ public Builder readBufferSizeInBytes(Long readBufferSizeInBytes) { this.readBufferSizeInBytes = readBufferSizeInBytes; return this; } + + public Builder httpConfiguration(S3CrtHttpConfiguration httpConfiguration) { + this.httpConfiguration = httpConfiguration; + return this; + } + + public Builder standardRetryOptions(StandardRetryOptions standardRetryOptions) { + this.standardRetryOptions = standardRetryOptions; + return this; + } } } diff --git a/services/s3/src/main/resources/codegen-resources/customization.config b/services/s3/src/main/resources/codegen-resources/customization.config index 47f98284f01b..d09990c54ad8 100644 --- a/services/s3/src/main/resources/codegen-resources/customization.config +++ b/services/s3/src/main/resources/codegen-resources/customization.config @@ -6,6 +6,17 @@ "Error": "S3Error", "Object": "S3Object" }, + "customSdkShapes": { + "shapes":{ + "SdkPartType":{ + "type":"string", + "enum":[ + "DEFAULT", + "LAST" + ] + } + } + }, "shapeModifiers": { "S3Object": { "modify": [ @@ -16,6 +27,16 @@ } ] }, + "UploadPartRequest": { + "inject": [ + { + "SdkPartType": { + "shape": "SdkPartType", + "documentation": "Indicates whether the request is a last part or not. This field will not be included in the request payload." + } + } + ] + }, "CopyObjectRequest": { "inject": [ { diff --git a/services/s3/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/s3/src/main/resources/codegen-resources/endpoint-rule-set.json index ec1f9545b8ab..c624befb2515 100644 --- a/services/s3/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/s3/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -267,10 +267,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3-outposts", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -287,10 +287,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3-outposts", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -372,10 +372,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3-outposts", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -392,10 +392,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3-outposts", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -635,10 +635,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -694,10 +694,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -771,10 +771,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -846,10 +846,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -909,10 +909,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -972,10 +972,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -1053,10 +1053,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1132,10 +1132,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1191,10 +1191,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -1250,10 +1250,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -1327,10 +1327,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1402,10 +1402,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1461,10 +1461,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -1520,10 +1520,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -1597,10 +1597,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1672,10 +1672,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1735,10 +1735,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -1798,10 +1798,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -1889,10 +1889,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1907,10 +1907,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -1986,10 +1986,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -2045,10 +2045,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -2104,10 +2104,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -2191,10 +2191,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -2209,10 +2209,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -2284,10 +2284,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -2605,10 +2605,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -2673,10 +2673,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -2759,10 +2759,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -2843,10 +2843,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -2911,10 +2911,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -2979,10 +2979,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -3065,10 +3065,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -3149,10 +3149,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -3217,10 +3217,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -3285,10 +3285,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -3371,10 +3371,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -3455,10 +3455,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -3523,10 +3523,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -3591,10 +3591,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -3677,10 +3677,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -3761,10 +3761,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -3848,10 +3848,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -3935,10 +3935,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -4022,10 +4022,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -4109,10 +4109,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -4224,10 +4224,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4242,10 +4242,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4359,10 +4359,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4377,10 +4377,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4480,10 +4480,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4581,10 +4581,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4649,10 +4649,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -4717,10 +4717,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -4813,10 +4813,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4831,10 +4831,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4915,10 +4915,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -4983,10 +4983,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -5051,10 +5051,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -5147,10 +5147,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -5165,10 +5165,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -5249,10 +5249,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -5404,10 +5404,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -5944,10 +5944,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3-object-lambda", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -5972,10 +5972,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3-object-lambda", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -5990,10 +5990,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3-object-lambda", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -6584,10 +6584,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -6621,10 +6621,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -6658,10 +6658,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -6712,10 +6712,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -6749,10 +6749,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -7006,12 +7006,12 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4a", + "signingName": "s3", "signingRegionSet": [ "*" - ], - "signingName": "s3", - "disableDoubleEncoding": true + ] } ] }, @@ -7453,10 +7453,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3-outposts", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -7471,10 +7471,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{bucketArn#region}", "signingName": "s3-outposts", - "disableDoubleEncoding": true + "signingRegion": "{bucketArn#region}" } ] }, @@ -7770,10 +7770,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -7829,10 +7829,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -7906,10 +7906,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -7981,10 +7981,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -8044,10 +8044,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -8107,10 +8107,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -8188,10 +8188,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -8267,10 +8267,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -8326,10 +8326,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -8385,10 +8385,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -8462,10 +8462,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -8537,10 +8537,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -8596,10 +8596,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -8655,10 +8655,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -8732,10 +8732,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -8807,10 +8807,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -8870,10 +8870,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -8933,10 +8933,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -9024,10 +9024,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9042,10 +9042,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9121,10 +9121,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9180,10 +9180,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -9239,10 +9239,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -9326,10 +9326,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9344,10 +9344,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9419,10 +9419,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9611,10 +9611,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3-object-lambda", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9639,10 +9639,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3-object-lambda", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9657,10 +9657,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3-object-lambda", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -9834,10 +9834,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -9897,10 +9897,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -9978,10 +9978,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10057,10 +10057,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10116,10 +10116,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -10175,10 +10175,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -10252,10 +10252,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10327,10 +10327,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10390,10 +10390,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -10453,10 +10453,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -10534,10 +10534,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10613,10 +10613,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10672,10 +10672,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -10731,10 +10731,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -10808,10 +10808,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10883,10 +10883,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -10946,10 +10946,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11009,10 +11009,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11090,10 +11090,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11169,10 +11169,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11228,10 +11228,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11287,10 +11287,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11364,10 +11364,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11439,10 +11439,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11502,10 +11502,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11565,10 +11565,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11656,10 +11656,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11674,10 +11674,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11753,10 +11753,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11812,10 +11812,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11871,10 +11871,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "us-east-1", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "us-east-1" } ] }, @@ -11958,10 +11958,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -11976,10 +11976,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, @@ -12051,10 +12051,10 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", - "signingRegion": "{Region}", "signingName": "s3", - "disableDoubleEncoding": true + "signingRegion": "{Region}" } ] }, diff --git a/services/s3/src/main/resources/codegen-resources/service-2.json b/services/s3/src/main/resources/codegen-resources/service-2.json index ba057f86b6ce..6815e9fac539 100644 --- a/services/s3/src/main/resources/codegen-resources/service-2.json +++ b/services/s3/src/main/resources/codegen-resources/service-2.json @@ -37,7 +37,7 @@ "input":{"shape":"CompleteMultipartUploadRequest"}, "output":{"shape":"CompleteMultipartUploadOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html", - "documentation":"

    Completes a multipart upload by assembling previously uploaded parts.

    You first initiate the multipart upload and then upload all parts using the UploadPart operation. After successfully uploading all relevant parts of an upload, you call this action to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure that the parts list is complete. This action concatenates the parts that you provide in the list. For each part in the list, you must provide the part number and the ETag value, returned after that part was uploaded.

    Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. Because a request could fail after the initial 200 OK response has been sent, it is important that you check the response body to determine whether the request succeeded.

    Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

    You cannot use Content-Type: application/x-www-form-urlencoded with Complete Multipart Upload requests. Also, if you do not provide a Content-Type header, CompleteMultipartUpload returns a 200 OK response.

    For more information about multipart uploads, see Uploading Objects Using Multipart Upload.

    For information about permissions required to use the multipart upload API, see Multipart Upload and Permissions.

    CompleteMultipartUpload has the following special errors:

    • Error code: EntityTooSmall

      • Description: Your proposed upload is smaller than the minimum allowed object size. Each part must be at least 5 MB in size, except the last part.

      • 400 Bad Request

    • Error code: InvalidPart

      • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

      • 400 Bad Request

    • Error code: InvalidPartOrder

      • Description: The list of parts was not in ascending order. The parts list must be specified in order by part number.

      • 400 Bad Request

    • Error code: NoSuchUpload

      • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      • 404 Not Found

    The following operations are related to CompleteMultipartUpload:

    " + "documentation":"

    Completes a multipart upload by assembling previously uploaded parts.

    You first initiate the multipart upload and then upload all parts using the UploadPart operation. After successfully uploading all relevant parts of an upload, you call this action to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure that the parts list is complete. This action concatenates the parts that you provide in the list. For each part in the list, you must provide the part number and the ETag value, returned after that part was uploaded.

    Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. A request could fail after the initial 200 OK response has been sent. This means that a 200 OK response can contain either a success or an error. If you call the S3 API directly, make sure to design your application to parse the contents of the response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply error handling per your configuration settings (including automatically retrying the request as appropriate). If the condition persists, the SDKs throws an exception (or, for the SDKs that don't use exceptions, they return the error).

    Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

    You cannot use Content-Type: application/x-www-form-urlencoded with Complete Multipart Upload requests. Also, if you do not provide a Content-Type header, CompleteMultipartUpload returns a 200 OK response.

    For more information about multipart uploads, see Uploading Objects Using Multipart Upload.

    For information about permissions required to use the multipart upload API, see Multipart Upload and Permissions.

    CompleteMultipartUpload has the following special errors:

    • Error code: EntityTooSmall

      • Description: Your proposed upload is smaller than the minimum allowed object size. Each part must be at least 5 MB in size, except the last part.

      • 400 Bad Request

    • Error code: InvalidPart

      • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

      • 400 Bad Request

    • Error code: InvalidPartOrder

      • Description: The list of parts was not in ascending order. The parts list must be specified in order by part number.

      • 400 Bad Request

    • Error code: NoSuchUpload

      • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      • 404 Not Found

    The following operations are related to CompleteMultipartUpload:

    " }, "CopyObject":{ "name":"CopyObject", @@ -51,7 +51,7 @@ {"shape":"ObjectNotInActiveTierError"} ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html", - "documentation":"

    Creates a copy of an object that is already stored in Amazon S3.

    You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic action using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy (UploadPartCopy) API. For more information, see Copy Object Using the REST Multipart Upload API.

    All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. For more information, see REST Authentication. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

    A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy action starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the 200 OK response. This means that a 200 OK response can contain either a success or an error. Design your application to parse the contents of the response and handle it appropriately.

    If the copy is successful, you receive a response with information about the copied object.

    If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body.

    The copy request charge is based on the storage class and Region that you specify for the destination object. For pricing information, see Amazon S3 pricing.

    Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more information, see Transfer Acceleration.

    Metadata

    When copying an object, you can preserve all metadata (default) or specify new metadata. However, the ACL is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see Using ACLs.

    To specify whether you want the object metadata copied from the source object or replaced with metadata provided in the request, you can optionally add the x-amz-metadata-directive header. When you grant permissions, you can use the s3:x-amz-metadata-directive condition key to enforce certain metadata behavior when objects are uploaded. For more information, see Specifying Conditions in a Policy in the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for Amazon S3.

    x-amz-copy-source-if Headers

    To only copy an object under certain conditions, such as whether the Etag matches or whether the object was modified before or after a specified date, use the following request parameters:

    • x-amz-copy-source-if-match

    • x-amz-copy-source-if-none-match

    • x-amz-copy-source-if-unmodified-since

    • x-amz-copy-source-if-modified-since

    If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

    • x-amz-copy-source-if-match condition evaluates to true

    • x-amz-copy-source-if-unmodified-since condition evaluates to false

    If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

    • x-amz-copy-source-if-none-match condition evaluates to false

    • x-amz-copy-source-if-modified-since condition evaluates to true

    All headers with the x-amz- prefix, including x-amz-copy-source, must be signed.

    Server-side encryption

    When you perform a CopyObject operation, you can optionally use the appropriate encryption-related headers to encrypt the object using server-side encryption with Amazon Web Services managed encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see Using Server-Side Encryption.

    If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

    Access Control List (ACL)-Specific Request Headers

    When copying an object, you can optionally use headers to grant ACL-based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

    If the bucket that you're copying objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format.

    For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

    If your bucket uses the bucket owner enforced setting for Object Ownership, all objects written to the bucket by any account will be owned by the bucket owner.

    Checksums

    When copying an object, if it has a checksum, that checksum will be copied to the new object by default. When you copy the object over, you may optionally specify a different checksum algorithm to use with the x-amz-checksum-algorithm header.

    Storage Class Options

    You can use the CopyObject action to change the storage class of an object that is already stored in Amazon S3 using the StorageClass parameter. For more information, see Storage Classes in the Amazon S3 User Guide.

    Versioning

    By default, x-amz-copy-source identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use the versionId subresource.

    If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

    If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null.

    If the source object's storage class is GLACIER, you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see RestoreObject.

    The following operations are related to CopyObject:

    For more information, see Copying Objects.

    ", + "documentation":"

    Creates a copy of an object that is already stored in Amazon S3.

    You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic action using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy (UploadPartCopy) API. For more information, see Copy Object Using the REST Multipart Upload API.

    All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. For more information, see REST Authentication. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

    A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy action starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the 200 OK response. This means that a 200 OK response can contain either a success or an error. If you call the S3 API directly, make sure to design your application to parse the contents of the response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply error handling per your configuration settings (including automatically retrying the request as appropriate). If the condition persists, the SDKs throws an exception (or, for the SDKs that don't use exceptions, they return the error).

    If the copy is successful, you receive a response with information about the copied object.

    If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body.

    The copy request charge is based on the storage class and Region that you specify for the destination object. For pricing information, see Amazon S3 pricing.

    Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more information, see Transfer Acceleration.

    Metadata

    When copying an object, you can preserve all metadata (default) or specify new metadata. However, the ACL is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see Using ACLs.

    To specify whether you want the object metadata copied from the source object or replaced with metadata provided in the request, you can optionally add the x-amz-metadata-directive header. When you grant permissions, you can use the s3:x-amz-metadata-directive condition key to enforce certain metadata behavior when objects are uploaded. For more information, see Specifying Conditions in a Policy in the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for Amazon S3.

    x-amz-website-redirect-location is unique to each object and must be specified in the request headers to copy the value.

    x-amz-copy-source-if Headers

    To only copy an object under certain conditions, such as whether the Etag matches or whether the object was modified before or after a specified date, use the following request parameters:

    • x-amz-copy-source-if-match

    • x-amz-copy-source-if-none-match

    • x-amz-copy-source-if-unmodified-since

    • x-amz-copy-source-if-modified-since

    If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

    • x-amz-copy-source-if-match condition evaluates to true

    • x-amz-copy-source-if-unmodified-since condition evaluates to false

    If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

    • x-amz-copy-source-if-none-match condition evaluates to false

    • x-amz-copy-source-if-modified-since condition evaluates to true

    All headers with the x-amz- prefix, including x-amz-copy-source, must be signed.

    Server-side encryption

    Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When copying an object, if you don't specify encryption information in your copy request, the encryption setting of the target object is set to the default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a default encryption configuration that uses server-side encryption with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the target object copy. When you perform a CopyObject operation, if you want to use a different type of encryption setting for the target object, you can use other appropriate encryption-related headers to encrypt the target object with a KMS key, an Amazon S3 managed key, or a customer-provided key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence. If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary encryption information in your request so that Amazon S3 can decrypt the object for copying. For more information about server-side encryption, see Using Server-Side Encryption.

    If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

    Access Control List (ACL)-Specific Request Headers

    When copying an object, you can optionally use headers to grant ACL-based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

    If the bucket that you're copying objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format.

    For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

    If your bucket uses the bucket owner enforced setting for Object Ownership, all objects written to the bucket by any account will be owned by the bucket owner.

    Checksums

    When copying an object, if it has a checksum, that checksum will be copied to the new object by default. When you copy the object over, you may optionally specify a different checksum algorithm to use with the x-amz-checksum-algorithm header.

    Storage Class Options

    You can use the CopyObject action to change the storage class of an object that is already stored in Amazon S3 using the StorageClass parameter. For more information, see Storage Classes in the Amazon S3 User Guide.

    Versioning

    By default, x-amz-copy-source identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use the versionId subresource.

    If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

    If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null.

    If the source object's storage class is GLACIER, you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see RestoreObject.

    The following operations are related to CopyObject:

    For more information, see Copying Objects.

    ", "alias":"PutObjectCopy" }, "CreateBucket":{ @@ -82,7 +82,7 @@ "input":{"shape":"CreateMultipartUploadRequest"}, "output":{"shape":"CreateMultipartUploadOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html", - "documentation":"

    This action initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request.

    For more information about multipart uploads, see Multipart Upload Overview.

    If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort action and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

    For information about the permissions required to use the multipart upload API, see Multipart Upload and Permissions.

    For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (Amazon Web Services Signature Version 4).

    After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.

    You can optionally request server-side encryption. For server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can provide your own encryption key, or use Amazon Web Services KMS keys or Amazon S3-managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to initiate the upload by using CreateMultipartUpload.

    To perform a multipart upload with encryption using an Amazon Web Services KMS key, the requester must have permission to the kms:Decrypt and kms:GenerateDataKey* actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload. For more information, see Multipart upload API and permissions in the Amazon S3 User Guide.

    If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account as the KMS key, then you must have these permissions on the key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.

    For more information, see Protecting Data Using Server-Side Encryption.

    Access Permissions

    When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

    • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

    • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

    You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

    Server-Side- Encryption-Specific Request Headers

    You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use Amazon Web Services managed encryption keys or provide your own encryption key.

    • Use encryption keys managed by Amazon S3 or customer managed key stored in Amazon Web Services Key Management Service (Amazon Web Services KMS) – If you want Amazon Web Services to manage the keys used to encrypt data, specify the following headers in the request.

      • x-amz-server-side-encryption

      • x-amz-server-side-encryption-aws-kms-key-id

      • x-amz-server-side-encryption-context

      If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key in Amazon Web Services KMS to protect the data.

      All GET and PUT requests for an object protected by Amazon Web Services KMS fail if you don't make them with SSL or by using SigV4.

      For more information about server-side encryption with KMS key (SSE-KMS), see Protecting Data Using Server-Side Encryption with KMS keys.

    • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

      • x-amz-server-side-encryption-customer-algorithm

      • x-amz-server-side-encryption-customer-key

      • x-amz-server-side-encryption-customer-key-MD5

      For more information about server-side encryption with KMS keys (SSE-KMS), see Protecting Data Using Server-Side Encryption with KMS keys.

    Access-Control-List (ACL)-Specific Request Headers

    You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

    • Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. For more information, see Canned ACL.

    • Specify access permissions explicitly — To explicitly grant access permissions to specific Amazon Web Services accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly, use:

      • x-amz-grant-read

      • x-amz-grant-write

      • x-amz-grant-read-acp

      • x-amz-grant-write-acp

      • x-amz-grant-full-control

      You specify each grantee as a type=value pair, where the type is one of the following:

      • id – if the value specified is the canonical user ID of an Amazon Web Services account

      • uri – if you are granting permissions to a predefined group

      • emailAddress – if the value specified is the email address of an Amazon Web Services account

        Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

        • US East (N. Virginia)

        • US West (N. California)

        • US West (Oregon)

        • Asia Pacific (Singapore)

        • Asia Pacific (Sydney)

        • Asia Pacific (Tokyo)

        • Europe (Ireland)

        • South America (São Paulo)

        For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

      x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

    The following operations are related to CreateMultipartUpload:

    ", + "documentation":"

    This action initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request.

    For more information about multipart uploads, see Multipart Upload Overview.

    If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort action and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

    For information about the permissions required to use the multipart upload API, see Multipart Upload and Permissions.

    For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (Amazon Web Services Signature Version 4).

    After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.

    Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. Amazon S3 automatically encrypts all new objects that are uploaded to an S3 bucket. When doing a multipart upload, if you don't specify encryption information in your request, the encryption setting of the uploaded parts is set to the default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a default encryption configuration that uses server-side encryption with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the uploaded parts. When you perform a CreateMultipartUpload operation, if you want to use a different type of encryption setting for the uploaded parts, you can request that Amazon S3 encrypts the object with a KMS key, an Amazon S3 managed key, or a customer-provided key. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence. If you choose to provide your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. you can request that Amazon S3 save the uploaded parts encrypted with server-side encryption with an Amazon S3 managed key (SSE-S3), an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key (SSE-C).

    To perform a multipart upload with encryption by using an Amazon Web Services KMS key, the requester must have permission to the kms:Decrypt and kms:GenerateDataKey* actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload. For more information, see Multipart upload API and permissions and Protecting data using server-side encryption with Amazon Web Services KMS in the Amazon S3 User Guide.

    If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account as the KMS key, then you must have these permissions on the key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.

    For more information, see Protecting Data Using Server-Side Encryption.

    Access Permissions

    When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

    • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

    • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

    You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

    Server-Side- Encryption-Specific Request Headers

    Amazon S3 encrypts data by using server-side encryption with an Amazon S3 managed key (SSE-S3) by default. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can request that Amazon S3 encrypts data at rest by using server-side encryption with other key options. The option you use depends on whether you want to use KMS keys (SSE-KMS) or provide your own encryption keys (SSE-C).

    • Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key (aws/s3) and KMS customer managed keys stored in Key Management Service (KMS) – If you want Amazon Web Services to manage the keys used to encrypt data, specify the following headers in the request.

      • x-amz-server-side-encryption

      • x-amz-server-side-encryption-aws-kms-key-id

      • x-amz-server-side-encryption-context

      If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key (aws/s3 key) in KMS to protect the data.

      All GET and PUT requests for an object protected by KMS fail if you don't make them by using Secure Sockets Layer (SSL), Transport Layer Security (TLS), or Signature Version 4.

      For more information about server-side encryption with KMS keys (SSE-KMS), see Protecting Data Using Server-Side Encryption with KMS keys.

    • Use customer-provided encryption keys (SSE-C) – If you want to manage your own encryption keys, provide all the following headers in the request.

      • x-amz-server-side-encryption-customer-algorithm

      • x-amz-server-side-encryption-customer-key

      • x-amz-server-side-encryption-customer-key-MD5

      For more information about server-side encryption with customer-provided encryption keys (SSE-C), see Protecting data using server-side encryption with customer-provided encryption keys (SSE-C).

    Access-Control-List (ACL)-Specific Request Headers

    You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

    • Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. For more information, see Canned ACL.

    • Specify access permissions explicitly — To explicitly grant access permissions to specific Amazon Web Services accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly, use:

      • x-amz-grant-read

      • x-amz-grant-write

      • x-amz-grant-read-acp

      • x-amz-grant-write-acp

      • x-amz-grant-full-control

      You specify each grantee as a type=value pair, where the type is one of the following:

      • id – if the value specified is the canonical user ID of an Amazon Web Services account

      • uri – if you are granting permissions to a predefined group

      • emailAddress – if the value specified is the email address of an Amazon Web Services account

        Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

        • US East (N. Virginia)

        • US West (N. California)

        • US West (Oregon)

        • Asia Pacific (Singapore)

        • Asia Pacific (Sydney)

        • Asia Pacific (Tokyo)

        • Europe (Ireland)

        • South America (São Paulo)

        For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

      x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

    The following operations are related to CreateMultipartUpload:

    ", "alias":"InitiateMultipartUpload" }, "DeleteBucket":{ @@ -125,7 +125,7 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketEncryptionRequest"}, - "documentation":"

    This implementation of the DELETE action removes default encryption from the bucket. For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption in the Amazon S3 User Guide.

    To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

    Related Resources

    " + "documentation":"

    This implementation of the DELETE action resets the default encryption for the bucket as server-side encryption with Amazon S3 managed keys (SSE-S3). For information about the bucket default encryption feature, see Amazon S3 Bucket Default Encryption in the Amazon S3 User Guide.

    To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

    Related Resources

    " }, "DeleteBucketIntelligentTieringConfiguration":{ "name":"DeleteBucketIntelligentTieringConfiguration", @@ -231,7 +231,7 @@ "input":{"shape":"DeleteObjectRequest"}, "output":{"shape":"DeleteObjectOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html", - "documentation":"

    Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects but will still respond that the command was successful.

    To remove a specific version, you must be the bucket owner and you must use the version Id subresource. Using this subresource permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header, x-amz-delete-marker, to true.

    If the object you want to delete is in a bucket where the bucket versioning configuration is MFA Delete enabled, you must include the x-amz-mfa request header in the DELETE versionId request. Requests that include x-amz-mfa must use HTTPS.

    For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

    You can delete objects by explicitly calling DELETE Object or configure its lifecycle (PutBucketLifecycle) to enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration actions.

    The following action is related to DeleteObject:

    " + "documentation":"

    Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects but will still respond that the command was successful.

    To remove a specific version, you must use the version Id subresource. Using this subresource permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header, x-amz-delete-marker, to true.

    If the object you want to delete is in a bucket where the bucket versioning configuration is MFA Delete enabled, you must include the x-amz-mfa request header in the DELETE versionId request. Requests that include x-amz-mfa must use HTTPS.

    For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

    You can delete objects by explicitly calling DELETE Object or configure its lifecycle (PutBucketLifecycle) to enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration actions.

    The following action is related to DeleteObject:

    " }, "DeleteObjectTagging":{ "name":"DeleteObjectTagging", @@ -242,7 +242,7 @@ }, "input":{"shape":"DeleteObjectTaggingRequest"}, "output":{"shape":"DeleteObjectTaggingOutput"}, - "documentation":"

    Removes the entire tag set from the specified object. For more information about managing object tags, see Object Tagging.

    To use this operation, you must have permission to perform the s3:DeleteObjectTagging action.

    To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action.

    The following operations are related to DeleteBucketMetricsConfiguration:

    " + "documentation":"

    Removes the entire tag set from the specified object. For more information about managing object tags, see Object Tagging.

    To use this operation, you must have permission to perform the s3:DeleteObjectTagging action.

    To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action.

    The following operations are related to DeleteObjectTagging:

    " }, "DeleteObjects":{ "name":"DeleteObjects", @@ -289,7 +289,7 @@ "input":{"shape":"GetBucketAclRequest"}, "output":{"shape":"GetBucketAclOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html", - "documentation":"

    This implementation of the GET action uses the acl subresource to return the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you must have READ_ACP access to the bucket. If READ_ACP permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header.

    If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

    Related Resources

    " + "documentation":"

    This implementation of the GET action uses the acl subresource to return the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you must have READ_ACP access to the bucket. If READ_ACP permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header.

    To use this API against an access point, provide the alias of the access point in place of the bucket name.

    If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

    Related Resources

    " }, "GetBucketAnalyticsConfiguration":{ "name":"GetBucketAnalyticsConfiguration", @@ -310,7 +310,7 @@ "input":{"shape":"GetBucketCorsRequest"}, "output":{"shape":"GetBucketCorsOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html", - "documentation":"

    Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the bucket.

    To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

    For more information about CORS, see Enabling Cross-Origin Resource Sharing.

    The following operations are related to GetBucketCors:

    " + "documentation":"

    Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the bucket.

    To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

    To use this API against an access point, provide the alias of the access point in place of the bucket name.

    For more information about CORS, see Enabling Cross-Origin Resource Sharing.

    The following operations are related to GetBucketCors:

    " }, "GetBucketEncryption":{ "name":"GetBucketEncryption", @@ -320,7 +320,7 @@ }, "input":{"shape":"GetBucketEncryptionRequest"}, "output":{"shape":"GetBucketEncryptionOutput"}, - "documentation":"

    Returns the default encryption configuration for an Amazon S3 bucket. If the bucket does not have a default encryption configuration, GetBucketEncryption returns ServerSideEncryptionConfigurationNotFoundError.

    For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption.

    To use this operation, you must have permission to perform the s3:GetEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

    The following operations are related to GetBucketEncryption:

    " + "documentation":"

    Returns the default encryption configuration for an Amazon S3 bucket. By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). For information about the bucket default encryption feature, see Amazon S3 Bucket Default Encryption in the Amazon S3 User Guide.

    To use this operation, you must have permission to perform the s3:GetEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

    The following operations are related to GetBucketEncryption:

    " }, "GetBucketIntelligentTieringConfiguration":{ "name":"GetBucketIntelligentTieringConfiguration", @@ -373,7 +373,7 @@ "input":{"shape":"GetBucketLocationRequest"}, "output":{"shape":"GetBucketLocationOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html", - "documentation":"

    Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see CreateBucket.

    To use this implementation of the operation, you must be the bucket owner.

    To use this API against an access point, provide the alias of the access point in place of the bucket name.

    The following operations are related to GetBucketLocation:

    " + "documentation":"

    Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see CreateBucket.

    To use this implementation of the operation, you must be the bucket owner.

    To use this API against an access point, provide the alias of the access point in place of the bucket name.

    For requests made using Amazon Web Services Signature Version 4 (SigV4), we recommend that you use HeadBucket to return the bucket Region instead of GetBucketLocation.

    The following operations are related to GetBucketLocation:

    " }, "GetBucketLogging":{ "name":"GetBucketLogging", @@ -384,7 +384,7 @@ "input":{"shape":"GetBucketLoggingRequest"}, "output":{"shape":"GetBucketLoggingOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html", - "documentation":"

    Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.

    The following operations are related to GetBucketLogging:

    " + "documentation":"

    Returns the logging status of a bucket and the permissions users have to view and modify that status.

    The following operations are related to GetBucketLogging:

    " }, "GetBucketMetricsConfiguration":{ "name":"GetBucketMetricsConfiguration", @@ -416,7 +416,7 @@ }, "input":{"shape":"GetBucketNotificationConfigurationRequest"}, "output":{"shape":"NotificationConfiguration"}, - "documentation":"

    Returns the notification configuration of a bucket.

    If notifications are not enabled on the bucket, the action returns an empty NotificationConfiguration element.

    By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission.

    For more information about setting and reading the notification configuration on a bucket, see Setting Up Notification of Bucket Events. For more information about bucket policies, see Using Bucket Policies.

    The following action is related to GetBucketNotification:

    " + "documentation":"

    Returns the notification configuration of a bucket.

    If notifications are not enabled on the bucket, the action returns an empty NotificationConfiguration element.

    By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission.

    To use this API against an access point, provide the alias of the access point in place of the bucket name.

    For more information about setting and reading the notification configuration on a bucket, see Setting Up Notification of Bucket Events. For more information about bucket policies, see Using Bucket Policies.

    The following action is related to GetBucketNotification:

    " }, "GetBucketOwnershipControls":{ "name":"GetBucketOwnershipControls", @@ -437,7 +437,7 @@ "input":{"shape":"GetBucketPolicyRequest"}, "output":{"shape":"GetBucketPolicyOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html", - "documentation":"

    Returns the policy of a specified bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

    If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

    As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

    For more information about bucket policies, see Using Bucket Policies and User Policies.

    The following action is related to GetBucketPolicy:

    " + "documentation":"

    Returns the policy of a specified bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

    If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

    As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

    To use this API against an access point, provide the alias of the access point in place of the bucket name.

    For more information about bucket policies, see Using Bucket Policies and User Policies.

    The following action is related to GetBucketPolicy:

    " }, "GetBucketPolicyStatus":{ "name":"GetBucketPolicyStatus", @@ -516,7 +516,7 @@ {"shape":"InvalidObjectState"} ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html", - "documentation":"

    Retrieves objects from Amazon S3. To use GET, you must have READ access to the object. If you grant READ access to the anonymous user, you can return the object without using an authorization header.

    An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg.

    To get an object from such a logical hierarchy, specify the full key name for the object in the GET operation. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg, specify the resource as /photos/2006/February/sample.jpg. For a path-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more information about request types, see HTTP Host Header Bucket Specification.

    For more information about returning the ACL of an object, see GetObjectAcl.

    If the object you are retrieving is stored in the S3 Glacier or S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a copy using RestoreObject. Otherwise, this action returns an InvalidObjectStateError error. For information about restoring archived objects, see Restoring Archived Objects.

    Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with KMS keys (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

    If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

    Assuming you have the relevant permission to read object tags, the response also returns the x-amz-tagging-count header that provides the count of number of tags associated with the object. You can use GetObjectTagging to retrieve the tag set associated with an object.

    Permissions

    You need the relevant read object (or version) permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    • If you have the s3:ListBucket permission on the bucket, Amazon S3 will return an HTTP status code 404 (\"no such key\") error.

    • If you don’t have the s3:ListBucket permission, Amazon S3 will return an HTTP status code 403 (\"access denied\") error.

    Versioning

    By default, the GET action returns the current version of an object. To return a different version, use the versionId subresource.

    • If you supply a versionId, you need the s3:GetObjectVersion permission to access a specific version of an object. If you request a specific version, you do not need to have the s3:GetObject permission.

    • If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

    For more information about versioning, see PutBucketVersioning.

    Overriding Response Header Values

    There are times when you want to override certain response header values in a GET response. For example, you might override the Content-Disposition response header value in your GET request.

    You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK is returned. The set of headers you can override using these parameters is a subset of the headers that Amazon S3 accepts when you create an object. The response headers that you can override for the GET response are Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, and Content-Encoding. To override these header values in the GET response, you use the following request parameters.

    You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request.

    • response-content-type

    • response-content-language

    • response-expires

    • response-cache-control

    • response-content-disposition

    • response-content-encoding

    Additional Considerations about Request Headers

    If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

    If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified response code.

    For more information about conditional requests, see RFC 7232.

    The following operations are related to GetObject:

    ", + "documentation":"

    Retrieves objects from Amazon S3. To use GET, you must have READ access to the object. If you grant READ access to the anonymous user, you can return the object without using an authorization header.

    An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg.

    To get an object from such a logical hierarchy, specify the full key name for the object in the GET operation. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg, specify the resource as /photos/2006/February/sample.jpg. For a path-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more information about request types, see HTTP Host Header Bucket Specification.

    For more information about returning the ACL of an object, see GetObjectAcl.

    If the object you are retrieving is stored in the S3 Glacier or S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a copy using RestoreObject. Otherwise, this action returns an InvalidObjectState error. For information about restoring archived objects, see Restoring Archived Objects.

    Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with KMS keys (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

    If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

    Assuming you have the relevant permission to read object tags, the response also returns the x-amz-tagging-count header that provides the count of number of tags associated with the object. You can use GetObjectTagging to retrieve the tag set associated with an object.

    Permissions

    You need the relevant read object (or version) permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    • If you have the s3:ListBucket permission on the bucket, Amazon S3 will return an HTTP status code 404 (\"no such key\") error.

    • If you don’t have the s3:ListBucket permission, Amazon S3 will return an HTTP status code 403 (\"access denied\") error.

    Versioning

    By default, the GET action returns the current version of an object. To return a different version, use the versionId subresource.

    • If you supply a versionId, you need the s3:GetObjectVersion permission to access a specific version of an object. If you request a specific version, you do not need to have the s3:GetObject permission. If you request the current version without a specific version ID, only s3:GetObject permission is required. s3:GetObjectVersion permission won't be required.

    • If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

    For more information about versioning, see PutBucketVersioning.

    Overriding Response Header Values

    There are times when you want to override certain response header values in a GET response. For example, you might override the Content-Disposition response header value in your GET request.

    You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK is returned. The set of headers you can override using these parameters is a subset of the headers that Amazon S3 accepts when you create an object. The response headers that you can override for the GET response are Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, and Content-Encoding. To override these header values in the GET response, you use the following request parameters.

    You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request.

    • response-content-type

    • response-content-language

    • response-expires

    • response-cache-control

    • response-content-disposition

    • response-content-encoding

    Additional Considerations about Request Headers

    If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

    If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified response code.

    For more information about conditional requests, see RFC 7232.

    The following operations are related to GetObject:

    ", "httpChecksum":{ "requestValidationModeMember":"ChecksumMode", "responseAlgorithms":[ @@ -552,7 +552,7 @@ "errors":[ {"shape":"NoSuchKey"} ], - "documentation":"

    Retrieves all the metadata from an object without returning the object itself. This action is useful if you're interested only in an object's metadata. To use GetObjectAttributes, you must have READ access to the object.

    GetObjectAttributes combines the functionality of GetObjectAcl, GetObjectLegalHold, GetObjectLockConfiguration, GetObjectRetention, GetObjectTagging, HeadObject, and ListParts. All of the data returned with each of those individual calls can be returned with a single call to GetObjectAttributes.

    If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

    • Encryption request headers, such as x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with Amazon Web Services KMS keys stored in Amazon Web Services Key Management Service (SSE-KMS) or server-side encryption with Amazon S3 managed encryption keys (SSE-S3). If your object does use these types of keys, you'll get an HTTP 400 Bad Request error.

    • The last modified property in this case is the creation date of the object.

    Consider the following when using request headers:

    • If both of the If-Match and If-Unmodified-Since headers are present in the request as follows, then Amazon S3 returns the HTTP status code 200 OK and the data requested:

      • If-Match condition evaluates to true.

      • If-Unmodified-Since condition evaluates to false.

    • If both of the If-None-Match and If-Modified-Since headers are present in the request as follows, then Amazon S3 returns the HTTP status code 304 Not Modified:

      • If-None-Match condition evaluates to false.

      • If-Modified-Since condition evaluates to true.

    For more information about conditional requests, see RFC 7232.

    Permissions

    The permissions that you need to use this operation depend on whether the bucket is versioned. If the bucket is versioned, you need both the s3:GetObjectVersion and s3:GetObjectVersionAttributes permissions for this operation. If the bucket is not versioned, you need the s3:GetObject and s3:GetObjectAttributes permissions. For more information, see Specifying Permissions in a Policy in the Amazon S3 User Guide. If the object that you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    • If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an HTTP status code 404 Not Found (\"no such key\") error.

    • If you don't have the s3:ListBucket permission, Amazon S3 returns an HTTP status code 403 Forbidden (\"access denied\") error.

    The following actions are related to GetObjectAttributes:

    " + "documentation":"

    Retrieves all the metadata from an object without returning the object itself. This action is useful if you're interested only in an object's metadata. To use GetObjectAttributes, you must have READ access to the object.

    GetObjectAttributes combines the functionality of HeadObject and ListParts. All of the data returned with each of those individual calls can be returned with a single call to GetObjectAttributes.

    If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

    • Encryption request headers, such as x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with Amazon Web Services KMS keys stored in Amazon Web Services Key Management Service (SSE-KMS) or server-side encryption with Amazon S3 managed keys (SSE-S3). If your object does use these types of keys, you'll get an HTTP 400 Bad Request error.

    • The last modified property in this case is the creation date of the object.

    Consider the following when using request headers:

    • If both of the If-Match and If-Unmodified-Since headers are present in the request as follows, then Amazon S3 returns the HTTP status code 200 OK and the data requested:

      • If-Match condition evaluates to true.

      • If-Unmodified-Since condition evaluates to false.

    • If both of the If-None-Match and If-Modified-Since headers are present in the request as follows, then Amazon S3 returns the HTTP status code 304 Not Modified:

      • If-None-Match condition evaluates to false.

      • If-Modified-Since condition evaluates to true.

    For more information about conditional requests, see RFC 7232.

    Permissions

    The permissions that you need to use this operation depend on whether the bucket is versioned. If the bucket is versioned, you need both the s3:GetObjectVersion and s3:GetObjectVersionAttributes permissions for this operation. If the bucket is not versioned, you need the s3:GetObject and s3:GetObjectAttributes permissions. For more information, see Specifying Permissions in a Policy in the Amazon S3 User Guide. If the object that you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    • If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an HTTP status code 404 Not Found (\"no such key\") error.

    • If you don't have the s3:ListBucket permission, Amazon S3 returns an HTTP status code 403 Forbidden (\"access denied\") error.

    The following actions are related to GetObjectAttributes:

    " }, "GetObjectLegalHold":{ "name":"GetObjectLegalHold", @@ -603,7 +603,7 @@ "input":{"shape":"GetObjectTorrentRequest"}, "output":{"shape":"GetObjectTorrentOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html", - "documentation":"

    Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files. For more information about BitTorrent, see Using BitTorrent with Amazon S3.

    You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key.

    To use GET, you must have READ access to the object.

    This action is not supported by Amazon S3 on Outposts.

    The following action is related to GetObjectTorrent:

    " + "documentation":"

    Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files.

    You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key.

    To use GET, you must have READ access to the object.

    This action is not supported by Amazon S3 on Outposts.

    The following action is related to GetObjectTorrent:

    " }, "GetPublicAccessBlock":{ "name":"GetPublicAccessBlock", @@ -626,7 +626,7 @@ {"shape":"NoSuchBucket"} ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html", - "documentation":"

    This action is useful to determine if a bucket exists and you have permission to access it. The action returns a 200 OK if the bucket exists and you have permission to access it.

    If the bucket does not exist or you do not have permission to access it, the HEAD request returns a generic 404 Not Found or 403 Forbidden code. A message body is not included, so you cannot determine the exception beyond these error codes.

    To use this operation, you must have permissions to perform the s3:ListBucket action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

    To use this API against an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using the Amazon Web Services SDKs, you provide the ARN in place of the bucket name. For more information see, Using access points.

    " + "documentation":"

    This action is useful to determine if a bucket exists and you have permission to access it. The action returns a 200 OK if the bucket exists and you have permission to access it.

    If the bucket does not exist or you do not have permission to access it, the HEAD request returns a generic 400 Bad Request, 403 Forbidden or 404 Not Found code. A message body is not included, so you cannot determine the exception beyond these error codes.

    To use this operation, you must have permissions to perform the s3:ListBucket action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

    To use this API against an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using the Amazon Web Services SDKs, you provide the ARN in place of the bucket name. For more information see, Using access points.

    " }, "HeadObject":{ "name":"HeadObject", @@ -640,7 +640,7 @@ {"shape":"NoSuchKey"} ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html", - "documentation":"

    The HEAD action retrieves metadata from an object without returning the object itself. This action is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.

    A HEAD request has the same options as a GET action on an object. The response is identical to the GET response except that there is no response body. Because of this, if the HEAD request generates an error, it returns a generic 404 Not Found or 403 Forbidden code. It is not possible to retrieve the exact exception beyond these error codes.

    If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

    • Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with KMS keys (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

    • The last modified property in this case is the creation date of the object.

    Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

    Consider the following when using request headers:

    • Consideration 1 – If both of the If-Match and If-Unmodified-Since headers are present in the request as follows:

      • If-Match condition evaluates to true, and;

      • If-Unmodified-Since condition evaluates to false;

      Then Amazon S3 returns 200 OK and the data requested.

    • Consideration 2 – If both of the If-None-Match and If-Modified-Since headers are present in the request as follows:

      • If-None-Match condition evaluates to false, and;

      • If-Modified-Since condition evaluates to true;

      Then Amazon S3 returns the 304 Not Modified response code.

    For more information about conditional requests, see RFC 7232.

    Permissions

    You need the relevant read object (or version) permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    • If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an HTTP status code 404 (\"no such key\") error.

    • If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP status code 403 (\"access denied\") error.

    The following actions are related to HeadObject:

    " + "documentation":"

    The HEAD action retrieves metadata from an object without returning the object itself. This action is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.

    A HEAD request has the same options as a GET action on an object. The response is identical to the GET response except that there is no response body. Because of this, if the HEAD request generates an error, it returns a generic 400 Bad Request, 403 Forbidden or 404 Not Found code. It is not possible to retrieve the exact exception beyond these error codes.

    If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

    • Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with KMS keys (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

    • The last modified property in this case is the creation date of the object.

    Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

    Consider the following when using request headers:

    • Consideration 1 – If both of the If-Match and If-Unmodified-Since headers are present in the request as follows:

      • If-Match condition evaluates to true, and;

      • If-Unmodified-Since condition evaluates to false;

      Then Amazon S3 returns 200 OK and the data requested.

    • Consideration 2 – If both of the If-None-Match and If-Modified-Since headers are present in the request as follows:

      • If-None-Match condition evaluates to false, and;

      • If-Modified-Since condition evaluates to true;

      Then Amazon S3 returns the 304 Not Modified response code.

    For more information about conditional requests, see RFC 7232.

    Permissions

    You need the relevant read object (or version) permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    • If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an HTTP status code 404 (\"no such key\") error.

    • If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP status code 403 (\"access denied\") error.

    The following actions are related to HeadObject:

    " }, "ListBucketAnalyticsConfigurations":{ "name":"ListBucketAnalyticsConfigurations", @@ -690,7 +690,7 @@ }, "output":{"shape":"ListBucketsOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html", - "documentation":"

    Returns a list of all buckets owned by the authenticated sender of the request. To use this operation, you must have the s3:ListAllMyBuckets permission.

    ", + "documentation":"

    Returns a list of all buckets owned by the authenticated sender of the request. To use this operation, you must have the s3:ListAllMyBuckets permission.

    For information about Amazon S3 buckets, see Creating, configuring, and working with Amazon S3 buckets.

    ", "alias":"GetService" }, "ListMultipartUploads":{ @@ -776,7 +776,7 @@ }, "input":{"shape":"PutBucketAclRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html", - "documentation":"

    Sets the permissions on an existing bucket using access control lists (ACL). For more information, see Using ACLs. To set the ACL of a bucket, you must have WRITE_ACP permission.

    You can use one of the following two ways to set a bucket's permissions:

    • Specify the ACL in the request body

    • Specify permissions using request headers

    You cannot specify access permission using both the body and the request headers.

    Depending on your application needs, you may choose to set the ACL on a bucket using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.

    If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see Controlling object ownership in the Amazon S3 User Guide.

    Access Permissions

    You can set access permissions using one of the following methods:

    • Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. Specify the canned ACL name as the value of x-amz-acl. If you use this header, you cannot use other access control-specific headers in your request. For more information, see Canned ACL.

    • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using these headers, you specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific headers, you cannot use the x-amz-acl header to set a canned ACL. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

      You specify each grantee as a type=value pair, where the type is one of the following:

      • id – if the value specified is the canonical user ID of an Amazon Web Services account

      • uri – if you are granting permissions to a predefined group

      • emailAddress – if the value specified is the email address of an Amazon Web Services account

        Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

        • US East (N. Virginia)

        • US West (N. California)

        • US West (Oregon)

        • Asia Pacific (Singapore)

        • Asia Pacific (Sydney)

        • Asia Pacific (Tokyo)

        • Europe (Ireland)

        • South America (São Paulo)

        For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      For example, the following x-amz-grant-write header grants create, overwrite, and delete objects permission to LogDelivery group predefined by Amazon S3 and two Amazon Web Services accounts identified by their email addresses.

      x-amz-grant-write: uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\", id=\"111122223333\", id=\"555566667777\"

    You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

    Grantee Values

    You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

    • By the person's ID:

      <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

      DisplayName is optional and ignored in the request

    • By URI:

      <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

    • By Email address:

      <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>

      The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      • US East (N. Virginia)

      • US West (N. California)

      • US West (Oregon)

      • Asia Pacific (Singapore)

      • Asia Pacific (Sydney)

      • Asia Pacific (Tokyo)

      • Europe (Ireland)

      • South America (São Paulo)

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    Related Resources

    ", + "documentation":"

    Sets the permissions on an existing bucket using access control lists (ACL). For more information, see Using ACLs. To set the ACL of a bucket, you must have WRITE_ACP permission.

    You can use one of the following two ways to set a bucket's permissions:

    • Specify the ACL in the request body

    • Specify permissions using request headers

    You cannot specify access permission using both the body and the request headers.

    Depending on your application needs, you may choose to set the ACL on a bucket using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.

    If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see Controlling object ownership in the Amazon S3 User Guide.

    Access Permissions

    You can set access permissions using one of the following methods:

    • Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. Specify the canned ACL name as the value of x-amz-acl. If you use this header, you cannot use other access control-specific headers in your request. For more information, see Canned ACL.

    • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using these headers, you specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific headers, you cannot use the x-amz-acl header to set a canned ACL. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

      You specify each grantee as a type=value pair, where the type is one of the following:

      • id – if the value specified is the canonical user ID of an Amazon Web Services account

      • uri – if you are granting permissions to a predefined group

      • emailAddress – if the value specified is the email address of an Amazon Web Services account

        Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

        • US East (N. Virginia)

        • US West (N. California)

        • US West (Oregon)

        • Asia Pacific (Singapore)

        • Asia Pacific (Sydney)

        • Asia Pacific (Tokyo)

        • Europe (Ireland)

        • South America (São Paulo)

        For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

      For example, the following x-amz-grant-write header grants create, overwrite, and delete objects permission to LogDelivery group predefined by Amazon S3 and two Amazon Web Services accounts identified by their email addresses.

      x-amz-grant-write: uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\", id=\"111122223333\", id=\"555566667777\"

    You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

    Grantee Values

    You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

    • By the person's ID:

      <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>

      DisplayName is optional and ignored in the request

    • By URI:

      <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>

    • By Email address:

      <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>&</Grantee>

      The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      • US East (N. Virginia)

      • US West (N. California)

      • US West (Oregon)

      • Asia Pacific (Singapore)

      • Asia Pacific (Sydney)

      • Asia Pacific (Tokyo)

      • Europe (Ireland)

      • South America (São Paulo)

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    Related Resources

    ", "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true @@ -812,7 +812,7 @@ "requestUri":"/{Bucket}?encryption" }, "input":{"shape":"PutBucketEncryptionRequest"}, - "documentation":"

    This action uses the encryption subresource to configure default encryption and Amazon S3 Bucket Key for an existing bucket.

    Default encryption for a bucket can use server-side encryption with Amazon S3-managed keys (SSE-S3) or customer managed keys (SSE-KMS). If you specify default encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. When the default encryption is SSE-KMS, if you upload an object to the bucket and do not specify the KMS key to use for encryption, Amazon S3 uses the default Amazon Web Services managed KMS key for your account. For information about default encryption, see Amazon S3 default bucket encryption in the Amazon S3 User Guide. For more information about S3 Bucket Keys, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

    This action requires Amazon Web Services Signature Version 4. For more information, see Authenticating Requests (Amazon Web Services Signature Version 4).

    To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

    Related Resources

    ", + "documentation":"

    This action uses the encryption subresource to configure default encryption and Amazon S3 Bucket Keys for an existing bucket.

    By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). You can optionally configure default encryption for a bucket by using server-side encryption with an Amazon Web Services KMS key (SSE-KMS) or a customer-provided key (SSE-C). If you specify default encryption by using SSE-KMS, you can also configure Amazon S3 Bucket Keys. For information about bucket default encryption, see Amazon S3 bucket default encryption in the Amazon S3 User Guide. For more information about S3 Bucket Keys, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

    This action requires Amazon Web Services Signature Version 4. For more information, see Authenticating Requests (Amazon Web Services Signature Version 4).

    To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

    Related Resources

    ", "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true @@ -834,7 +834,7 @@ "requestUri":"/{Bucket}?inventory" }, "input":{"shape":"PutBucketInventoryConfigurationRequest"}, - "documentation":"

    This implementation of the PUT action adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket.

    Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the source bucket, and the bucket where the inventory flat file is stored is called the destination bucket. The destination bucket must be in the same Amazon Web Services Region as the source bucket.

    When you configure an inventory for a source bucket, you specify the destination bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see Amazon S3 Inventory in the Amazon S3 User Guide.

    You must create a bucket policy on the destination bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

    To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

    Special Errors

    • HTTP 400 Bad Request Error

      • Code: InvalidArgument

      • Cause: Invalid Argument

    • HTTP 400 Bad Request Error

      • Code: TooManyConfigurations

      • Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

    • HTTP 403 Forbidden Error

      • Code: AccessDenied

      • Cause: You are not the owner of the specified bucket, or you do not have the s3:PutInventoryConfiguration bucket permission to set the configuration on the bucket.

    Related Resources

    " + "documentation":"

    This implementation of the PUT action adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket.

    Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the source bucket, and the bucket where the inventory flat file is stored is called the destination bucket. The destination bucket must be in the same Amazon Web Services Region as the source bucket.

    When you configure an inventory for a source bucket, you specify the destination bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see Amazon S3 Inventory in the Amazon S3 User Guide.

    You must create a bucket policy on the destination bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

    Permissions

    To use this operation, you must have permission to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others.

    The s3:PutInventoryConfiguration permission allows a user to create an S3 Inventory report that includes all object metadata fields available and to specify the destination bucket to store the inventory. A user with read access to objects in the destination bucket can also access all object metadata fields that are available in the inventory report.

    To restrict access to an inventory report, see Restricting access to an Amazon S3 Inventory report in the Amazon S3 User Guide. For more information about the metadata fields available in S3 Inventory, see Amazon S3 Inventory lists in the Amazon S3 User Guide. For more information about permissions, see Permissions related to bucket subresource operations and Identity and access management in Amazon S3 in the Amazon S3 User Guide.

    Special Errors

    • HTTP 400 Bad Request Error

      • Code: InvalidArgument

      • Cause: Invalid Argument

    • HTTP 400 Bad Request Error

      • Code: TooManyConfigurations

      • Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

    • HTTP 403 Forbidden Error

      • Code: AccessDenied

      • Cause: You are not the owner of the specified bucket, or you do not have the s3:PutInventoryConfiguration bucket permission to set the configuration on the bucket.

    Related Resources

    " }, "PutBucketLifecycle":{ "name":"PutBucketLifecycle", @@ -1013,7 +1013,7 @@ "input":{"shape":"PutObjectRequest"}, "output":{"shape":"PutObjectOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html", - "documentation":"

    Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

    Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket.

    Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead.

    To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

    • To successfully complete the PutObject request, you must have the s3:PutObject in your IAM permissions.

    • To successfully change the objects acl of your PutObject request, you must have the s3:PutObjectAcl in your IAM permissions.

    • The Content-MD5 header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview in the Amazon S3 User Guide.

    Server-side Encryption

    You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. You have the option to provide your own encryption key or use Amazon Web Services managed encryption keys (SSE-S3 or SSE-KMS). For more information, see Using Server-Side Encryption.

    If you request server-side encryption using Amazon Web Services Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the object-level. For more information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

    Access Control List (ACL)-Specific Request Headers

    You can use headers to grant ACL- based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

    If the bucket that you're uploading objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a 400 error with the error code AccessControlListNotSupported.

    For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

    If your bucket uses the bucket owner enforced setting for Object Ownership, all objects written to the bucket by any account will be owned by the bucket owner.

    Storage Class Options

    By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

    Versioning

    If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects.

    For more information about versioning, see Adding Objects to Versioning Enabled Buckets. For information about returning the versioning state of a bucket, see GetBucketVersioning.

    Related Resources

    ", + "documentation":"

    Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

    Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket. You cannot use PutObject to only update a single piece of metadata for an existing object. You must put the entire object with updated metadata if you want to update some values.

    Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. To prevent objects from being deleted or overwritten, you can use Amazon S3 Object Lock.

    To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

    • To successfully complete the PutObject request, you must have the s3:PutObject in your IAM permissions.

    • To successfully change the objects acl of your PutObject request, you must have the s3:PutObjectAcl in your IAM permissions.

    • To successfully set the tag-set with your PutObject request, you must have the s3:PutObjectTagging in your IAM permissions.

    • The Content-MD5 header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview in the Amazon S3 User Guide.

    You have three mutually exclusive options to protect data using server-side encryption in Amazon S3, depending on how you choose to manage the encryption keys. Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at by rest using server-side encryption with other key options. For more information, see Using Server-Side Encryption.

    When adding a new object, you can use headers to grant ACL-based permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. By default, all objects are private. Only the owner has full access control. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

    If the bucket that you're uploading objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a 400 error with the error code AccessControlListNotSupported. For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

    If your bucket uses the bucket owner enforced setting for Object Ownership, all objects written to the bucket by any account will be owned by the bucket owner.

    By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

    If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see Adding Objects to Versioning Enabled Buckets. For information about returning the versioning state of a bucket, see GetBucketVersioning.

    For more information about related Amazon S3 APIs, see the following:

    ", "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":false @@ -1118,7 +1118,7 @@ {"shape":"ObjectAlreadyInActiveTierError"} ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectRestore.html", - "documentation":"

    Restores an archived copy of an object back into Amazon S3

    This action is not supported by Amazon S3 on Outposts.

    This action performs the following types of requests:

    • select - Perform a select query on an archived object

    • restore an archive - Restore an archived object

    To use this operation, you must have permissions to perform the s3:RestoreObject action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

    Querying Archives with Select Requests

    You use a select type of request to perform SQL queries on archived objects. The archived objects that are being queried by the select request must be formatted as uncompressed comma-separated values (CSV) files. You can run queries and custom analytics on your archived data without having to restore your data to a hotter Amazon S3 tier. For an overview about select requests, see Querying Archived Objects in the Amazon S3 User Guide.

    When making a select request, do the following:

    • Define an output location for the select query's output. This must be an Amazon S3 bucket in the same Amazon Web Services Region as the bucket that contains the archive object that is being queried. The Amazon Web Services account that initiates the job must have permissions to write to the S3 bucket. You can specify the storage class and encryption for the output objects stored in the bucket. For more information about output, see Querying Archived Objects in the Amazon S3 User Guide.

      For more information about the S3 structure in the request body, see the following:

    • Define the SQL expression for the SELECT type of restoration for your query in the request body's SelectParameters structure. You can use expressions like the following examples.

      • The following expression returns all records from the specified object.

        SELECT * FROM Object

      • Assuming that you are not using any headers for data stored in the object, you can specify columns with positional headers.

        SELECT s._1, s._2 FROM Object s WHERE s._3 > 100

      • If you have headers and you set the fileHeaderInfo in the CSV structure in the request body to USE, you can specify headers in the query. (If you set the fileHeaderInfo field to IGNORE, the first row is skipped for the query.) You cannot mix ordinal positions with header column names.

        SELECT s.Id, s.FirstName, s.SSN FROM S3Object s

    For more information about using SQL with S3 Glacier Select restore, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon S3 User Guide.

    When making a select request, you can also do the following:

    • To expedite your queries, specify the Expedited tier. For more information about tiers, see \"Restoring Archives,\" later in this topic.

    • Specify details about the data serialization format of both the input object that is being queried and the serialization of the CSV-encoded query results.

    The following are additional important facts about the select feature:

    • The output results are new Amazon S3 objects. Unlike archive retrievals, they are stored until explicitly deleted-manually or through a lifecycle policy.

    • You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate requests.

    • Amazon S3 accepts a select request even if the object has already been restored. A select request doesn’t return error response 409.

    Restoring objects

    Objects that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are not accessible in real time. For objects in Archive Access or Deep Archive Access tiers you must first initiate a restore request, and then wait until the object is moved into the Frequent Access tier. For objects in S3 Glacier or S3 Glacier Deep Archive storage classes you must first initiate a restore request, and then wait until a temporary copy of the object is available. To access an archived object, you must restore the object for the duration (number of days) that you specify.

    To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

    When restoring an archived object (or using a select request), you can specify one of the following data access tier options in the Tier element of the request body:

    • Expedited - Expedited retrievals allow you to quickly access your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests for a subset of archives are required. For all but the largest archived objects (250 MB+), data accessed using Expedited retrievals is typically made available within 1–5 minutes. Provisioned capacity ensures that retrieval capacity for Expedited retrievals is available when you need it. Expedited retrievals and provisioned capacity are not available for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.

    • Standard - Standard retrievals allow you to access any of your archived objects within several hours. This is the default option for retrieval requests that do not specify the retrieval option. Standard retrievals typically finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored in S3 Intelligent-Tiering.

    • Bulk - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling you to retrieve large amounts, even petabytes, of data inexpensively. Bulk retrievals typically finish within 5–12 hours for objects stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for objects stored in S3 Intelligent-Tiering.

    For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon S3 User Guide.

    You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. For more information, see Upgrading the speed of an in-progress restore in the Amazon S3 User Guide.

    To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon S3 User Guide.

    After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

    If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon S3 User Guide.

    Responses

    A successful action returns either the 200 OK or 202 Accepted status code.

    • If the object is not previously restored, then Amazon S3 returns 202 Accepted in the response.

    • If the object is previously restored, Amazon S3 returns 200 OK in the response.

    Special Errors

      • Code: RestoreAlreadyInProgress

      • Cause: Object restore is already in progress. (This error does not apply to SELECT type requests.)

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: GlacierExpeditedRetrievalNotAvailable

      • Cause: expedited retrievals are currently not available. Try again later. (Returned if there is insufficient capacity to process the Expedited request. This error applies only to Expedited retrievals and not to S3 Standard or Bulk retrievals.)

      • HTTP Status Code: 503

      • SOAP Fault Code Prefix: N/A

    Related Resources

    ", + "documentation":"

    Restores an archived copy of an object back into Amazon S3

    This action is not supported by Amazon S3 on Outposts.

    This action performs the following types of requests:

    • select - Perform a select query on an archived object

    • restore an archive - Restore an archived object

    To use this operation, you must have permissions to perform the s3:RestoreObject action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

    For more information about the S3 structure in the request body, see the following:

    • Define the SQL expression for the SELECT type of restoration for your query in the request body's SelectParameters structure. You can use expressions like the following examples.

      • The following expression returns all records from the specified object.

        SELECT * FROM Object

      • Assuming that you are not using any headers for data stored in the object, you can specify columns with positional headers.

        SELECT s._1, s._2 FROM Object s WHERE s._3 > 100

      • If you have headers and you set the fileHeaderInfo in the CSV structure in the request body to USE, you can specify headers in the query. (If you set the fileHeaderInfo field to IGNORE, the first row is skipped for the query.) You cannot mix ordinal positions with header column names.

        SELECT s.Id, s.FirstName, s.SSN FROM S3Object s

    When making a select request, you can also do the following:

    • To expedite your queries, specify the Expedited tier. For more information about tiers, see \"Restoring Archives,\" later in this topic.

    • Specify details about the data serialization format of both the input object that is being queried and the serialization of the CSV-encoded query results.

    The following are additional important facts about the select feature:

    • The output results are new Amazon S3 objects. Unlike archive retrievals, they are stored until explicitly deleted-manually or through a lifecycle policy.

    • You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't duplicate requests, so avoid issuing duplicate requests.

    • Amazon S3 accepts a select request even if the object has already been restored. A select request doesn’t return error response 409.

    Restoring objects

    Objects that you archive to the S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, are not accessible in real time. For objects in the S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes, you must first initiate a restore request, and then wait until a temporary copy of the object is available. If you want a permanent copy of the object, create a copy of it in the Amazon S3 Standard storage class in your S3 bucket. To access an archived object, you must restore the object for the duration (number of days) that you specify. For objects in the Archive Access or Deep Archive Access tiers of S3 Intelligent-Tiering, you must first initiate a restore request, and then wait until the object is moved into the Frequent Access tier.

    To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

    When restoring an archived object, you can specify one of the following data access tier options in the Tier element of the request body:

    • Expedited - Expedited retrievals allow you to quickly access your data stored in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests for a subset of archives are required. For all but the largest archived objects (250 MB+), data accessed using Expedited retrievals is typically made available within 1–5 minutes. Provisioned capacity ensures that retrieval capacity for Expedited retrievals is available when you need it. Expedited retrievals and provisioned capacity are not available for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.

    • Standard - Standard retrievals allow you to access any of your archived objects within several hours. This is the default option for retrieval requests that do not specify the retrieval option. Standard retrievals typically finish within 3–5 hours for objects stored in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored in S3 Intelligent-Tiering.

    • Bulk - Bulk retrievals free for objects stored in the S3 Glacier Flexible Retrieval and S3 Intelligent-Tiering storage classes, enabling you to retrieve large amounts, even petabytes, of data at no cost. Bulk retrievals typically finish within 5–12 hours for objects stored in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering Archive tier. Bulk retrievals are also the lowest-cost retrieval option when restoring objects from S3 Glacier Deep Archive. They typically finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.

    For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon S3 User Guide.

    You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. For more information, see Upgrading the speed of an in-progress restore in the Amazon S3 User Guide.

    To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon S3 User Guide.

    After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

    If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon S3 User Guide.

    Responses

    A successful action returns either the 200 OK or 202 Accepted status code.

    • If the object is not previously restored, then Amazon S3 returns 202 Accepted in the response.

    • If the object is previously restored, Amazon S3 returns 200 OK in the response.

    Special Errors

      • Code: RestoreAlreadyInProgress

      • Cause: Object restore is already in progress. (This error does not apply to SELECT type requests.)

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: GlacierExpeditedRetrievalNotAvailable

      • Cause: expedited retrievals are currently not available. Try again later. (Returned if there is insufficient capacity to process the Expedited request. This error applies only to Expedited retrievals and not to S3 Standard or Bulk retrievals.)

      • HTTP Status Code: 503

      • SOAP Fault Code Prefix: N/A

    Related Resources

    ", "alias":"PostObjectRestore", "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", @@ -1137,7 +1137,7 @@ "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} }, "output":{"shape":"SelectObjectContentOutput"}, - "documentation":"

    This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

    This action is not supported by Amazon S3 on Outposts.

    For more information about Amazon S3 Select, see Selecting Content from Objects and SELECT Command in the Amazon S3 User Guide.

    For more information about using SQL with Amazon S3 Select, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon S3 User Guide.

    Permissions

    You must have s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon S3 User Guide.

    Object Data Formats

    You can use Amazon S3 Select to query objects that have the following format properties:

    • CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format.

    • UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports.

    • GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression for Parquet objects.

    • Server-side encryption - Amazon S3 Select supports querying objects that are protected with server-side encryption.

      For objects that are encrypted with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use the headers that are documented in the GetObject. For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

      For objects that are encrypted with Amazon S3 managed encryption keys (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption in the Amazon S3 User Guide.

    Working with the Response Body

    Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see Appendix: SelectObjectContent Response.

    GetObject Support

    The SelectObjectContent action does not support the following GetObject functionality. For more information, see GetObject.

    • Range: Although you can specify a scan range for an Amazon S3 Select request (see SelectObjectContentRequest - ScanRange in the request parameters), you cannot specify the range of bytes of an object to return.

    • GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. For more information, about storage classes see Storage Classes in the Amazon S3 User Guide.

    Special Errors

    For a list of special errors for this operation, see List of SELECT Object Content Error Codes

    Related Resources

    " + "documentation":"

    This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

    This action is not supported by Amazon S3 on Outposts.

    For more information about Amazon S3 Select, see Selecting Content from Objects and SELECT Command in the Amazon S3 User Guide.

    Permissions

    You must have s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon S3 User Guide.

    Object Data Formats

    You can use Amazon S3 Select to query objects that have the following format properties:

    • CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format.

    • UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports.

    • GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression for Parquet objects.

    • Server-side encryption - Amazon S3 Select supports querying objects that are protected with server-side encryption.

      For objects that are encrypted with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use the headers that are documented in the GetObject. For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

      For objects that are encrypted with Amazon S3 managed keys (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption in the Amazon S3 User Guide.

    Working with the Response Body

    Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see Appendix: SelectObjectContent Response.

    GetObject Support

    The SelectObjectContent action does not support the following GetObject functionality. For more information, see GetObject.

    • Range: Although you can specify a scan range for an Amazon S3 Select request (see SelectObjectContentRequest - ScanRange in the request parameters), you cannot specify the range of bytes of an object to return.

    • GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. For more information, about storage classes see Storage Classes in the Amazon S3 User Guide.

    Special Errors

    For a list of special errors for this operation, see List of SELECT Object Content Error Codes

    Related Resources

    " }, "UploadPart":{ "name":"UploadPart", @@ -1148,7 +1148,7 @@ "input":{"shape":"UploadPartRequest"}, "output":{"shape":"UploadPartOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html", - "documentation":"

    Uploads a part in a multipart upload.

    In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

    You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

    Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten.

    For information about maximum and minimum part sizes and other multipart upload specifications, see Multipart upload limits in the Amazon S3 User Guide.

    To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

    If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256 header as a checksum instead of Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4).

    Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

    For more information on multipart uploads, go to Multipart Upload Overview in the Amazon S3 User Guide .

    For information on the permissions required to use the multipart upload API, go to Multipart Upload and Permissions in the Amazon S3 User Guide.

    You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the Amazon Web Services managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon S3 User Guide.

    Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

    If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    Special Errors

      • Code: NoSuchUpload

      • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

    Related Resources

    ", + "documentation":"

    Uploads a part in a multipart upload.

    In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

    You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

    Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten.

    For information about maximum and minimum part sizes and other multipart upload specifications, see Multipart upload limits in the Amazon S3 User Guide.

    To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

    If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256 header as a checksum instead of Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4).

    Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

    For more information on multipart uploads, go to Multipart Upload Overview in the Amazon S3 User Guide .

    For information on the permissions required to use the multipart upload API, go to Multipart Upload and Permissions in the Amazon S3 User Guide.

    Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You have three mutually exclusive options to protect data using server-side encryption in Amazon S3, depending on how you choose to manage the encryption keys. Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS), and Customer-Provided Keys (SSE-C). Amazon S3 encrypts data with server-side encryption using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption with other key options. The option you use depends on whether you want to use KMS keys (SSE-KMS) or provide your own encryption key (SSE-C). If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon S3 User Guide.

    Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key (SSE-C), you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

    If you requested server-side encryption using a customer-provided encryption key (SSE-C) in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    Special Errors

      • Code: NoSuchUpload

      • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

    Related Resources

    ", "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":false @@ -1214,7 +1214,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name to which the upload was taking place.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name to which the upload was taking place.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -1600,7 +1600,7 @@ }, "Comments":{ "shape":"Comments", - "documentation":"

    A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line.

    " + "documentation":"

    A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is #.

    Default: #

    " }, "QuoteEscapeCharacter":{ "shape":"QuoteEscapeCharacter", @@ -1748,7 +1748,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    " + "documentation":"

    The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    " }, "Key":{ "shape":"ObjectKey", @@ -1782,7 +1782,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    If you specified server-side encryption either with an Amazon S3-managed encryption key or an Amazon Web Services KMS key in your initiate multipart upload request, the response includes this header. It confirms the encryption algorithm that Amazon S3 used to encrypt the object.

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -1794,7 +1794,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for the object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -1821,7 +1821,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    Name of the bucket to which the multipart upload was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    Name of the bucket to which the multipart upload was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -2010,7 +2010,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -2028,7 +2028,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for the object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -2068,7 +2068,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the destination bucket.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the destination bucket.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -2195,7 +2195,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -2207,7 +2207,7 @@ }, "WebsiteRedirectLocation":{ "shape":"WebsiteRedirectLocation", - "documentation":"

    If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

    ", + "documentation":"

    If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. This value is unique to each object and is not copied when using the x-amz-metadata-directive header. Instead, you may opt to provide this header in combination with the directive.

    ", "location":"header", "locationName":"x-amz-website-redirect-location" }, @@ -2489,7 +2489,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "locationName":"Bucket" }, "Key":{ @@ -2502,7 +2502,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -2520,7 +2520,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for the object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -2564,7 +2564,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket to which to initiate the upload

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket to which to initiate the upload

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -2643,7 +2643,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -2679,7 +2679,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    Specifies the ID of the symmetric customer managed key to use for object encryption. All GET and PUT requests for an object protected by Amazon Web Services KMS will fail if not made via SSL or using SigV4. For information about configuring using any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature Version in Request Authentication in the Amazon S3 User Guide.

    ", + "documentation":"

    Specifies the ID of the symmetric encryption customer managed key to use for object encryption. All GET and PUT requests for an object protected by Amazon Web Services KMS will fail if not made via SSL or using SigV4. For information about configuring using any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature Version in Request Authentication in the Amazon S3 User Guide.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -2930,7 +2930,7 @@ }, "Id":{ "shape":"MetricsId", - "documentation":"

    The ID used to identify the metrics configuration.

    ", + "documentation":"

    The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.

    ", "location":"querystring", "locationName":"id" }, @@ -3137,7 +3137,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name of the bucket containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name of the bucket containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -3199,7 +3199,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name containing the objects from which to remove the tags.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name containing the objects from which to remove the tags.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -3252,7 +3252,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name containing the objects to delete.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name containing the objects to delete.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -3393,11 +3393,11 @@ "members":{ "EncryptionType":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing job results in Amazon S3 (for example, AES256, aws:kms).

    " + "documentation":"

    The server-side encryption algorithm used when storing job results in Amazon S3 (for example, AES256, aws:kms).

    " }, "KMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If the encryption type is aws:kms, this optional value specifies the ID of the symmetric customer managed key to use for encryption of job results. Amazon S3 only supports symmetric keys. For more information, see Using symmetric and asymmetric keys in the Amazon Web Services Key Management Service Developer Guide.

    " + "documentation":"

    If the encryption type is aws:kms, this optional value specifies the ID of the symmetric encryption customer managed key to use for encryption of job results. Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service Developer Guide.

    " }, "KMSContext":{ "shape":"KMSContext", @@ -3411,7 +3411,7 @@ "members":{ "ReplicaKmsKeyID":{ "shape":"ReplicaKmsKeyID", - "documentation":"

    Specifies the ID (Key ARN or Alias ARN) of the customer managed Amazon Web Services KMS key stored in Amazon Web Services Key Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric, customer managed KMS keys. For more information, see Using symmetric and asymmetric keys in the Amazon Web Services Key Management Service Developer Guide.

    " + "documentation":"

    Specifies the ID (Key ARN or Alias ARN) of the customer managed Amazon Web Services KMS key stored in Amazon Web Services Key Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service Developer Guide.

    " } }, "documentation":"

    Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.

    " @@ -3437,7 +3437,7 @@ }, "Code":{ "shape":"Code", - "documentation":"

    The error code is a string that uniquely identifies an error condition. It is meant to be read and understood by programs that detect and handle errors by type.

    Amazon S3 error codes

      • Code: AccessDenied

      • Description: Access Denied

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: AccountProblem

      • Description: There is a problem with your Amazon Web Services account that prevents the action from completing successfully. Contact Amazon Web Services Support for further assistance.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: AllAccessDisabled

      • Description: All access to this Amazon S3 resource has been disabled. Contact Amazon Web Services Support for further assistance.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: AmbiguousGrantByEmailAddress

      • Description: The email address you provided is associated with more than one account.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: AuthorizationHeaderMalformed

      • Description: The authorization header you provided is invalid.

      • HTTP Status Code: 400 Bad Request

      • HTTP Status Code: N/A

      • Code: BadDigest

      • Description: The Content-MD5 you specified did not match what we received.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: BucketAlreadyExists

      • Description: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: BucketAlreadyOwnedByYou

      • Description: The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all Amazon Web Services Regions except in the North Virginia Region. For legacy compatibility, if you re-create an existing bucket that you already own in the North Virginia Region, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

      • Code: 409 Conflict (in all Regions except the North Virginia Region)

      • SOAP Fault Code Prefix: Client

      • Code: BucketNotEmpty

      • Description: The bucket you tried to delete is not empty.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: CredentialsNotSupported

      • Description: This request does not support credentials.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: CrossLocationLoggingProhibited

      • Description: Cross-location logging not allowed. Buckets in one geographic location cannot log information to a bucket in another location.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: EntityTooSmall

      • Description: Your proposed upload is smaller than the minimum allowed object size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: EntityTooLarge

      • Description: Your proposed upload exceeds the maximum allowed object size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: ExpiredToken

      • Description: The provided token has expired.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: IllegalVersioningConfigurationException

      • Description: Indicates that the versioning configuration specified in the request is invalid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: IncompleteBody

      • Description: You did not provide the number of bytes specified by the Content-Length HTTP header

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: IncorrectNumberOfFilesInPostRequest

      • Description: POST requires exactly one file upload per request.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InlineDataTooLarge

      • Description: Inline data exceeds the maximum allowed size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InternalError

      • Description: We encountered an internal error. Please try again.

      • HTTP Status Code: 500 Internal Server Error

      • SOAP Fault Code Prefix: Server

      • Code: InvalidAccessKeyId

      • Description: The Amazon Web Services access key ID you provided does not exist in our records.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidAddressingHeader

      • Description: You must specify the Anonymous role.

      • HTTP Status Code: N/A

      • SOAP Fault Code Prefix: Client

      • Code: InvalidArgument

      • Description: Invalid Argument

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidBucketName

      • Description: The specified bucket is not valid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidBucketState

      • Description: The request is not valid with the current state of the bucket.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: InvalidDigest

      • Description: The Content-MD5 you specified is not valid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidEncryptionAlgorithmError

      • Description: The encryption request you specified is not valid. The valid value is AES256.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidLocationConstraint

      • Description: The specified location constraint is not valid. For more information about Regions, see How to Select a Region for Your Buckets.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidObjectState

      • Description: The action is not valid for the current state of the object.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPart

      • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPartOrder

      • Description: The list of parts was not in ascending order. Parts list must be specified in order by part number.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPayer

      • Description: All access to this object has been disabled. Please contact Amazon Web Services Support for further assistance.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPolicyDocument

      • Description: The content of the form does not meet the conditions specified in the policy document.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidRange

      • Description: The requested range cannot be satisfied.

      • HTTP Status Code: 416 Requested Range Not Satisfiable

      • SOAP Fault Code Prefix: Client

      • Code: InvalidRequest

      • Description: Please use AWS4-HMAC-SHA256.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: SOAP requests must be made over an HTTPS connection.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration is not supported for buckets with non-DNS compliant names.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration is not supported for buckets with periods (.) in their names.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Accelerate endpoint only supports virtual style requests.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Accelerate is not configured on this bucket.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Accelerate is disabled on this bucket.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration is not supported on this bucket. Contact Amazon Web Services Support for more information.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration cannot be enabled on this bucket. Contact Amazon Web Services Support for more information.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidSecurity

      • Description: The provided security credentials are not valid.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidSOAPRequest

      • Description: The SOAP request body is invalid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidStorageClass

      • Description: The storage class you specified is not valid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidTargetBucketForLogging

      • Description: The target bucket for logging does not exist, is not owned by you, or does not have the appropriate grants for the log-delivery group.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidToken

      • Description: The provided token is malformed or otherwise invalid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidURI

      • Description: Couldn't parse the specified URI.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: KeyTooLongError

      • Description: Your key is too long.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MalformedACLError

      • Description: The XML you provided was not well-formed or did not validate against our published schema.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MalformedPOSTRequest

      • Description: The body of your POST request is not well-formed multipart/form-data.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MalformedXML

      • Description: This happens when the user sends malformed XML (XML that doesn't conform to the published XSD) for the configuration. The error message is, \"The XML you provided was not well-formed or did not validate against our published schema.\"

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MaxMessageLengthExceeded

      • Description: Your request was too big.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MaxPostPreDataLengthExceededError

      • Description: Your POST request fields preceding the upload file were too large.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MetadataTooLarge

      • Description: Your metadata headers exceed the maximum allowed metadata size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MethodNotAllowed

      • Description: The specified method is not allowed against this resource.

      • HTTP Status Code: 405 Method Not Allowed

      • SOAP Fault Code Prefix: Client

      • Code: MissingAttachment

      • Description: A SOAP attachment was expected, but none were found.

      • HTTP Status Code: N/A

      • SOAP Fault Code Prefix: Client

      • Code: MissingContentLength

      • Description: You must provide the Content-Length HTTP header.

      • HTTP Status Code: 411 Length Required

      • SOAP Fault Code Prefix: Client

      • Code: MissingRequestBodyError

      • Description: This happens when the user sends an empty XML document as a request. The error message is, \"Request body is empty.\"

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MissingSecurityElement

      • Description: The SOAP 1.1 request is missing a security element.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MissingSecurityHeader

      • Description: Your request is missing a required header.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: NoLoggingStatusForKey

      • Description: There is no such thing as a logging status subresource for a key.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchBucket

      • Description: The specified bucket does not exist.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchBucketPolicy

      • Description: The specified bucket does not have a bucket policy.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchKey

      • Description: The specified key does not exist.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchLifecycleConfiguration

      • Description: The lifecycle configuration does not exist.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchUpload

      • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchVersion

      • Description: Indicates that the version ID specified in the request does not match an existing version.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NotImplemented

      • Description: A header you provided implies functionality that is not implemented.

      • HTTP Status Code: 501 Not Implemented

      • SOAP Fault Code Prefix: Server

      • Code: NotSignedUp

      • Description: Your account is not signed up for the Amazon S3 service. You must sign up before you can use Amazon S3. You can sign up at the following URL: Amazon S3

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: OperationAborted

      • Description: A conflicting conditional action is currently in progress against this resource. Try again.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: PermanentRedirect

      • Description: The bucket you are attempting to access must be addressed using the specified endpoint. Send all future requests to this endpoint.

      • HTTP Status Code: 301 Moved Permanently

      • SOAP Fault Code Prefix: Client

      • Code: PreconditionFailed

      • Description: At least one of the preconditions you specified did not hold.

      • HTTP Status Code: 412 Precondition Failed

      • SOAP Fault Code Prefix: Client

      • Code: Redirect

      • Description: Temporary redirect.

      • HTTP Status Code: 307 Moved Temporarily

      • SOAP Fault Code Prefix: Client

      • Code: RestoreAlreadyInProgress

      • Description: Object restore is already in progress.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: RequestIsNotMultiPartContent

      • Description: Bucket POST must be of the enclosure-type multipart/form-data.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: RequestTimeout

      • Description: Your socket connection to the server was not read from or written to within the timeout period.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: RequestTimeTooSkewed

      • Description: The difference between the request time and the server's time is too large.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: RequestTorrentOfBucketError

      • Description: Requesting the torrent file of a bucket is not permitted.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: SignatureDoesNotMatch

      • Description: The request signature we calculated does not match the signature you provided. Check your Amazon Web Services secret access key and signing method. For more information, see REST Authentication and SOAP Authentication for details.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: ServiceUnavailable

      • Description: Reduce your request rate.

      • HTTP Status Code: 503 Service Unavailable

      • SOAP Fault Code Prefix: Server

      • Code: SlowDown

      • Description: Reduce your request rate.

      • HTTP Status Code: 503 Slow Down

      • SOAP Fault Code Prefix: Server

      • Code: TemporaryRedirect

      • Description: You are being redirected to the bucket while DNS updates.

      • HTTP Status Code: 307 Moved Temporarily

      • SOAP Fault Code Prefix: Client

      • Code: TokenRefreshRequired

      • Description: The provided token must be refreshed.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: TooManyBuckets

      • Description: You have attempted to create more buckets than allowed.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: UnexpectedContent

      • Description: This request does not support content.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: UnresolvableGrantByEmailAddress

      • Description: The email address you provided does not match any account on record.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: UserKeyMustBeSpecified

      • Description: The bucket POST must contain the specified field name. If it is specified, check the order of the fields.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

    " + "documentation":"

    The error code is a string that uniquely identifies an error condition. It is meant to be read and understood by programs that detect and handle errors by type.

    Amazon S3 error codes

      • Code: AccessDenied

      • Description: Access Denied

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: AccountProblem

      • Description: There is a problem with your Amazon Web Services account that prevents the action from completing successfully. Contact Amazon Web Services Support for further assistance.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: AllAccessDisabled

      • Description: All access to this Amazon S3 resource has been disabled. Contact Amazon Web Services Support for further assistance.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: AmbiguousGrantByEmailAddress

      • Description: The email address you provided is associated with more than one account.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: AuthorizationHeaderMalformed

      • Description: The authorization header you provided is invalid.

      • HTTP Status Code: 400 Bad Request

      • HTTP Status Code: N/A

      • Code: BadDigest

      • Description: The Content-MD5 you specified did not match what we received.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: BucketAlreadyExists

      • Description: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: BucketAlreadyOwnedByYou

      • Description: The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all Amazon Web Services Regions except in the North Virginia Region. For legacy compatibility, if you re-create an existing bucket that you already own in the North Virginia Region, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

      • Code: 409 Conflict (in all Regions except the North Virginia Region)

      • SOAP Fault Code Prefix: Client

      • Code: BucketNotEmpty

      • Description: The bucket you tried to delete is not empty.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: CredentialsNotSupported

      • Description: This request does not support credentials.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: CrossLocationLoggingProhibited

      • Description: Cross-location logging not allowed. Buckets in one geographic location cannot log information to a bucket in another location.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: EntityTooSmall

      • Description: Your proposed upload is smaller than the minimum allowed object size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: EntityTooLarge

      • Description: Your proposed upload exceeds the maximum allowed object size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: ExpiredToken

      • Description: The provided token has expired.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: IllegalVersioningConfigurationException

      • Description: Indicates that the versioning configuration specified in the request is invalid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: IncompleteBody

      • Description: You did not provide the number of bytes specified by the Content-Length HTTP header

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: IncorrectNumberOfFilesInPostRequest

      • Description: POST requires exactly one file upload per request.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InlineDataTooLarge

      • Description: Inline data exceeds the maximum allowed size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InternalError

      • Description: We encountered an internal error. Please try again.

      • HTTP Status Code: 500 Internal Server Error

      • SOAP Fault Code Prefix: Server

      • Code: InvalidAccessKeyId

      • Description: The Amazon Web Services access key ID you provided does not exist in our records.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidAddressingHeader

      • Description: You must specify the Anonymous role.

      • HTTP Status Code: N/A

      • SOAP Fault Code Prefix: Client

      • Code: InvalidArgument

      • Description: Invalid Argument

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidBucketName

      • Description: The specified bucket is not valid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidBucketState

      • Description: The request is not valid with the current state of the bucket.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: InvalidDigest

      • Description: The Content-MD5 you specified is not valid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidEncryptionAlgorithmError

      • Description: The encryption request you specified is not valid. The valid value is AES256.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidLocationConstraint

      • Description: The specified location constraint is not valid. For more information about Regions, see How to Select a Region for Your Buckets.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidObjectState

      • Description: The action is not valid for the current state of the object.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPart

      • Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPartOrder

      • Description: The list of parts was not in ascending order. Parts list must be specified in order by part number.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPayer

      • Description: All access to this object has been disabled. Please contact Amazon Web Services Support for further assistance.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidPolicyDocument

      • Description: The content of the form does not meet the conditions specified in the policy document.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidRange

      • Description: The requested range cannot be satisfied.

      • HTTP Status Code: 416 Requested Range Not Satisfiable

      • SOAP Fault Code Prefix: Client

      • Code: InvalidRequest

      • Description: Please use AWS4-HMAC-SHA256.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: SOAP requests must be made over an HTTPS connection.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration is not supported for buckets with non-DNS compliant names.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration is not supported for buckets with periods (.) in their names.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Accelerate endpoint only supports virtual style requests.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Accelerate is not configured on this bucket.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Accelerate is disabled on this bucket.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration is not supported on this bucket. Contact Amazon Web Services Support for more information.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidRequest

      • Description: Amazon S3 Transfer Acceleration cannot be enabled on this bucket. Contact Amazon Web Services Support for more information.

      • HTTP Status Code: 400 Bad Request

      • Code: N/A

      • Code: InvalidSecurity

      • Description: The provided security credentials are not valid.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: InvalidSOAPRequest

      • Description: The SOAP request body is invalid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidStorageClass

      • Description: The storage class you specified is not valid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidTargetBucketForLogging

      • Description: The target bucket for logging does not exist, is not owned by you, or does not have the appropriate grants for the log-delivery group.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidToken

      • Description: The provided token is malformed or otherwise invalid.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: InvalidURI

      • Description: Couldn't parse the specified URI.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: KeyTooLongError

      • Description: Your key is too long.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MalformedACLError

      • Description: The XML you provided was not well-formed or did not validate against our published schema.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MalformedPOSTRequest

      • Description: The body of your POST request is not well-formed multipart/form-data.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MalformedXML

      • Description: This happens when the user sends malformed XML (XML that doesn't conform to the published XSD) for the configuration. The error message is, \"The XML you provided was not well-formed or did not validate against our published schema.\"

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MaxMessageLengthExceeded

      • Description: Your request was too big.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MaxPostPreDataLengthExceededError

      • Description: Your POST request fields preceding the upload file were too large.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MetadataTooLarge

      • Description: Your metadata headers exceed the maximum allowed metadata size.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MethodNotAllowed

      • Description: The specified method is not allowed against this resource.

      • HTTP Status Code: 405 Method Not Allowed

      • SOAP Fault Code Prefix: Client

      • Code: MissingAttachment

      • Description: A SOAP attachment was expected, but none were found.

      • HTTP Status Code: N/A

      • SOAP Fault Code Prefix: Client

      • Code: MissingContentLength

      • Description: You must provide the Content-Length HTTP header.

      • HTTP Status Code: 411 Length Required

      • SOAP Fault Code Prefix: Client

      • Code: MissingRequestBodyError

      • Description: This happens when the user sends an empty XML document as a request. The error message is, \"Request body is empty.\"

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MissingSecurityElement

      • Description: The SOAP 1.1 request is missing a security element.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: MissingSecurityHeader

      • Description: Your request is missing a required header.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: NoLoggingStatusForKey

      • Description: There is no such thing as a logging status subresource for a key.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchBucket

      • Description: The specified bucket does not exist.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchBucketPolicy

      • Description: The specified bucket does not have a bucket policy.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchKey

      • Description: The specified key does not exist.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchLifecycleConfiguration

      • Description: The lifecycle configuration does not exist.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchUpload

      • Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NoSuchVersion

      • Description: Indicates that the version ID specified in the request does not match an existing version.

      • HTTP Status Code: 404 Not Found

      • SOAP Fault Code Prefix: Client

      • Code: NotImplemented

      • Description: A header you provided implies functionality that is not implemented.

      • HTTP Status Code: 501 Not Implemented

      • SOAP Fault Code Prefix: Server

      • Code: NotSignedUp

      • Description: Your account is not signed up for the Amazon S3 service. You must sign up before you can use Amazon S3. You can sign up at the following URL: Amazon S3

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: OperationAborted

      • Description: A conflicting conditional action is currently in progress against this resource. Try again.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: PermanentRedirect

      • Description: The bucket you are attempting to access must be addressed using the specified endpoint. Send all future requests to this endpoint.

      • HTTP Status Code: 301 Moved Permanently

      • SOAP Fault Code Prefix: Client

      • Code: PreconditionFailed

      • Description: At least one of the preconditions you specified did not hold.

      • HTTP Status Code: 412 Precondition Failed

      • SOAP Fault Code Prefix: Client

      • Code: Redirect

      • Description: Temporary redirect.

      • HTTP Status Code: 307 Moved Temporarily

      • SOAP Fault Code Prefix: Client

      • Code: RestoreAlreadyInProgress

      • Description: Object restore is already in progress.

      • HTTP Status Code: 409 Conflict

      • SOAP Fault Code Prefix: Client

      • Code: RequestIsNotMultiPartContent

      • Description: Bucket POST must be of the enclosure-type multipart/form-data.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: RequestTimeout

      • Description: Your socket connection to the server was not read from or written to within the timeout period.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: RequestTimeTooSkewed

      • Description: The difference between the request time and the server's time is too large.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: RequestTorrentOfBucketError

      • Description: Requesting the torrent file of a bucket is not permitted.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: SignatureDoesNotMatch

      • Description: The request signature we calculated does not match the signature you provided. Check your Amazon Web Services secret access key and signing method. For more information, see REST Authentication and SOAP Authentication for details.

      • HTTP Status Code: 403 Forbidden

      • SOAP Fault Code Prefix: Client

      • Code: ServiceUnavailable

      • Description: Service is unable to handle request.

      • HTTP Status Code: 503 Service Unavailable

      • SOAP Fault Code Prefix: Server

      • Code: SlowDown

      • Description: Reduce your request rate.

      • HTTP Status Code: 503 Slow Down

      • SOAP Fault Code Prefix: Server

      • Code: TemporaryRedirect

      • Description: You are being redirected to the bucket while DNS updates.

      • HTTP Status Code: 307 Moved Temporarily

      • SOAP Fault Code Prefix: Client

      • Code: TokenRefreshRequired

      • Description: The provided token must be refreshed.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: TooManyBuckets

      • Description: You have attempted to create more buckets than allowed.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: UnexpectedContent

      • Description: This request does not support content.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: UnresolvableGrantByEmailAddress

      • Description: The email address you provided does not match any account on record.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

      • Code: UserKeyMustBeSpecified

      • Description: The bucket POST must contain the specified field name. If it is specified, check the order of the fields.

      • HTTP Status Code: 400 Bad Request

      • SOAP Fault Code Prefix: Client

    " }, "Message":{ "shape":"Message", @@ -3514,7 +3514,7 @@ "members":{ "Status":{ "shape":"ExistingObjectReplicationStatus", - "documentation":"

    " + "documentation":"

    Specifies whether Amazon S3 replicates existing source bucket objects.

    " } }, "documentation":"

    Optional configuration to replicate existing source bucket objects. For more information, see Replicating Existing Objects in the Amazon S3 User Guide.

    " @@ -3946,7 +3946,7 @@ }, "Id":{ "shape":"MetricsId", - "documentation":"

    The ID used to identify the metrics configuration.

    ", + "documentation":"

    The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.

    ", "location":"querystring", "locationName":"id" }, @@ -4368,7 +4368,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket that contains the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket that contains the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -4648,7 +4648,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -4672,7 +4672,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for the object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -4741,7 +4741,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -4778,7 +4778,7 @@ }, "Range":{ "shape":"Range", - "documentation":"

    Downloads the specified range bytes of an object. For more information about the HTTP Range header, see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

    Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

    ", + "documentation":"

    Downloads the specified range bytes of an object. For more information about the HTTP Range header, see https://www.rfc-editor.org/rfc/rfc9110.html#name-range.

    Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

    ", "location":"header", "locationName":"Range" }, @@ -4942,7 +4942,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name containing the object for which to get the tagging information.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name containing the object for which to get the tagging information.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -5126,7 +5126,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -5270,7 +5270,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    If the object is stored using server-side encryption either with an Amazon Web Services KMS key or an Amazon S3-managed encryption key, the response includes this header with the value of the server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -5294,7 +5294,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for the object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -5356,7 +5356,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -5393,7 +5393,7 @@ }, "Range":{ "shape":"Range", - "documentation":"

    Because HeadObject returns only the metadata for an object, this parameter has no effect.

    ", + "documentation":"

    HeadObject returns only the metadata for an object. If the Range is satisfiable, only the ContentLength is affected in the response. If the Range is not satisfiable, S3 returns a 416 - Requested Range Not Satisfiable error.

    ", "location":"header", "locationName":"Range" }, @@ -5838,7 +5838,7 @@ "locationName":"Rule" } }, - "documentation":"

    Container for lifecycle rules. You can add as many as 1000 rules.

    " + "documentation":"

    Container for lifecycle rules. You can add as many as 1000 rules.

    For more information see, Managing your storage lifecycle in the Amazon S3 User Guide.

    " }, "LifecycleExpiration":{ "type":"structure", @@ -5856,7 +5856,7 @@ "documentation":"

    Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.

    " } }, - "documentation":"

    Container for the expiration for the lifecycle of the object.

    " + "documentation":"

    Container for the expiration for the lifecycle of the object.

    For more information see, Managing your storage lifecycle in the Amazon S3 User Guide.

    " }, "LifecycleRule":{ "type":"structure", @@ -5896,7 +5896,7 @@ "NoncurrentVersionExpiration":{"shape":"NoncurrentVersionExpiration"}, "AbortIncompleteMultipartUpload":{"shape":"AbortIncompleteMultipartUpload"} }, - "documentation":"

    A lifecycle rule for individual objects in an Amazon S3 bucket.

    " + "documentation":"

    A lifecycle rule for individual objects in an Amazon S3 bucket.

    For more information see, Managing your storage lifecycle in the Amazon S3 User Guide.

    " }, "LifecycleRuleAndOperator":{ "type":"structure", @@ -6205,7 +6205,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket to which the multipart upload was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket to which the multipart upload was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -6417,7 +6417,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket containing the objects.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket containing the objects.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -6478,7 +6478,7 @@ }, "Name":{ "shape":"BucketName", - "documentation":"

    The bucket name.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    " + "documentation":"

    The bucket name.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    " }, "Prefix":{ "shape":"Prefix", @@ -6502,7 +6502,7 @@ }, "KeyCount":{ "shape":"KeyCount", - "documentation":"

    KeyCount is the number of keys returned with this request. KeyCount will always be less than or equals to MaxKeys field. Say you ask for 50 keys, your result will include less than equals 50 keys

    " + "documentation":"

    KeyCount is the number of keys returned with this request. KeyCount will always be less than or equal to the MaxKeys field. Say you ask for 50 keys, your result will include 50 keys or fewer.

    " }, "ContinuationToken":{ "shape":"Token", @@ -6524,7 +6524,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    Bucket name to list.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    Bucket name to list.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -6666,7 +6666,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket to which the parts are being uploaded.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket to which the parts are being uploaded.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -6840,7 +6840,7 @@ "members":{ "Id":{ "shape":"MetricsId", - "documentation":"

    The ID used to identify the metrics configuration.

    " + "documentation":"

    The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.

    " }, "Filter":{ "shape":"MetricsFilter", @@ -7365,7 +7365,7 @@ "members":{ "DisplayName":{ "shape":"DisplayName", - "documentation":"

    Container for the display name of the owner.

    " + "documentation":"

    Container for the display name of the owner. This value is only supported in the following Amazon Web Services Regions:

    • US East (N. Virginia)

    • US West (N. California)

    • US West (Oregon)

    • Asia Pacific (Singapore)

    • Asia Pacific (Sydney)

    • Asia Pacific (Tokyo)

    • Europe (Ireland)

    • South America (São Paulo)

    " }, "ID":{ "shape":"ID", @@ -7749,7 +7749,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3) or customer managed keys (SSE-KMS). For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption in the Amazon S3 User Guide.

    ", + "documentation":"

    Specifies default encryption for a bucket using server-side encryption with different key options. By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). You can optionally configure default encryption for a bucket by using server-side encryption with an Amazon Web Services KMS key (SSE-KMS) or a customer-provided key (SSE-C). For information about the bucket default encryption feature, see Amazon S3 Bucket Default Encryption in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -7974,7 +7974,7 @@ }, "Id":{ "shape":"MetricsId", - "documentation":"

    The ID used to identify the metrics configuration.

    ", + "documentation":"

    The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.

    ", "location":"querystring", "locationName":"id" }, @@ -8444,7 +8444,7 @@ }, "Key":{ "shape":"ObjectKey", - "documentation":"

    Key for which the PUT action was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    Key for which the PUT action was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "location":"uri", "locationName":"Key" }, @@ -8636,7 +8636,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    If you specified server-side encryption either with an Amazon Web Services KMS key or Amazon S3-managed encryption key in your PUT request, the response includes this header. It confirms the encryption algorithm that Amazon S3 used to encrypt the object.

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -8660,13 +8660,13 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If x-amz-server-side-encryption is present and has the value of aws:kms, this header specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for the object.

    ", + "documentation":"

    If x-amz-server-side-encryption is has a valid value of aws:kms, this header specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, "SSEKMSEncryptionContext":{ "shape":"SSEKMSEncryptionContext", - "documentation":"

    If present, specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

    ", + "documentation":"

    If present, specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future GetObject or CopyObject operations on this object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-context" }, @@ -8703,7 +8703,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name to which the PUT action was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name to which the PUT action was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -8716,13 +8716,13 @@ }, "ContentDisposition":{ "shape":"ContentDisposition", - "documentation":"

    Specifies presentational information for the object. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1.

    ", + "documentation":"

    Specifies presentational information for the object. For more information, see https://www.rfc-editor.org/rfc/rfc6266#section-4.

    ", "location":"header", "locationName":"Content-Disposition" }, "ContentEncoding":{ "shape":"ContentEncoding", - "documentation":"

    Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11.

    ", + "documentation":"

    Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding.

    ", "location":"header", "locationName":"Content-Encoding" }, @@ -8734,7 +8734,7 @@ }, "ContentLength":{ "shape":"ContentLength", - "documentation":"

    Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13.

    ", + "documentation":"

    Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length.

    ", "location":"header", "locationName":"Content-Length" }, @@ -8746,7 +8746,7 @@ }, "ContentType":{ "shape":"ContentType", - "documentation":"

    A standard MIME type describing the format of the contents. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17.

    ", + "documentation":"

    A standard MIME type describing the format of the contents. For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type.

    ", "location":"header", "locationName":"Content-Type" }, @@ -8782,7 +8782,7 @@ }, "Expires":{ "shape":"Expires", - "documentation":"

    The date and time at which the object is no longer cacheable. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21.

    ", + "documentation":"

    The date and time at which the object is no longer cacheable. For more information, see https://www.rfc-editor.org/rfc/rfc7234#section-5.3.

    ", "location":"header", "locationName":"Expires" }, @@ -8824,7 +8824,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -8860,13 +8860,13 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If x-amz-server-side-encryption is present and has the value of aws:kms, this header specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetrical customer managed key that was used for the object. If you specify x-amz-server-side-encryption:aws:kms, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key to protect the data. If the KMS key does not exist in the same account issuing the command, you must use the full ARN and not just the ID.

    ", + "documentation":"

    If x-amz-server-side-encryption has a valid value of aws:kms, this header specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object. If you specify x-amz-server-side-encryption:aws:kms, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key to protect the data. If the KMS key does not exist in the same account issuing the command, you must use the full ARN and not just the ID.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, "SSEKMSEncryptionContext":{ "shape":"SSEKMSEncryptionContext", - "documentation":"

    Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

    ", + "documentation":"

    Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future GetObject or CopyObject operations on this object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-context" }, @@ -9009,7 +9009,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name containing the object.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -9283,7 +9283,7 @@ }, "ExistingObjectReplication":{ "shape":"ExistingObjectReplication", - "documentation":"

    " + "documentation":"

    Optional configuration to replicate existing source bucket objects. For more information, see Replicating Existing Objects in the Amazon S3 User Guide.

    " }, "Destination":{ "shape":"Destination", @@ -9451,7 +9451,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name containing the object to restore.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name containing the object to restore.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -9654,7 +9654,7 @@ "members":{ "KeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    Specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key to use for encrypting inventory reports.

    " + "documentation":"

    Specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key to use for encrypting inventory reports.

    " } }, "documentation":"

    Specifies the use of SSE-KMS to encrypt delivered inventory reports.

    ", @@ -9846,7 +9846,7 @@ }, "KMSMasterKeyID":{ "shape":"SSEKMSKeyId", - "documentation":"

    Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if SSEAlgorithm is set to aws:kms.

    You can specify the key ID or the Amazon Resource Name (ARN) of the KMS key. However, if you are using encryption with cross-account or Amazon Web Services service operations you must use a fully qualified KMS key ARN. For more information, see Using encryption for cross-account operations.

    For example:

    • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

    • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

    Amazon S3 only supports symmetric KMS keys and not asymmetric KMS keys. For more information, see Using symmetric and asymmetric keys in the Amazon Web Services Key Management Service Developer Guide.

    " + "documentation":"

    Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if SSEAlgorithm is set to aws:kms.

    You can specify the key ID or the Amazon Resource Name (ARN) of the KMS key. However, if you are using encryption with cross-account or Amazon Web Services service operations you must use a fully qualified KMS key ARN. For more information, see Using encryption for cross-account operations.

    For example:

    • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

    • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

    Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service Developer Guide.

    " } }, "documentation":"

    Describes the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an Amazon Web Services KMS key in your Amazon Web Services account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. For more information, see PUT Bucket encryption in the Amazon S3 API Reference.

    " @@ -10204,7 +10204,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -10222,7 +10222,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for the object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -10252,7 +10252,7 @@ "members":{ "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket name.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The bucket name.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -10371,7 +10371,7 @@ "members":{ "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-server-side-encryption" }, @@ -10419,7 +10419,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key was used for the object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key was used for the object.

    ", "location":"header", "locationName":"x-amz-server-side-encryption-aws-kms-key-id" }, @@ -10452,7 +10452,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket to which the multipart upload was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

    ", + "documentation":"

    The name of the bucket to which the multipart upload was initiated.

    When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

    When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the Amazon S3 User Guide.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" @@ -10797,7 +10797,7 @@ }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", - "documentation":"

    The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, aws:kms).

    ", + "documentation":"

    The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, aws:kms).

    ", "location":"header", "locationName":"x-amz-fwd-header-x-amz-server-side-encryption" }, @@ -10809,7 +10809,7 @@ }, "SSEKMSKeyId":{ "shape":"SSEKMSKeyId", - "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key that was used for stored in Amazon S3 object.

    ", + "documentation":"

    If present, specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.

    ", "location":"header", "locationName":"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id" }, diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/EndpointOverrideEndpointResolutionTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/EndpointOverrideEndpointResolutionTest.java index 22fc9770446a..013917270961 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/EndpointOverrideEndpointResolutionTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/EndpointOverrideEndpointResolutionTest.java @@ -230,14 +230,13 @@ public static Collection testCases() { .setExpectedSigningServiceName("s3") .setExpectedSigningRegion(Region.US_WEST_2)); - //FIXME: The ruleset is currently broken for this test case. The provider is not preserving the path part - // cases.add(new TestCase().setCaseName("access point with http, path, query, and port") - // .setGetObjectBucketName("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint") - // .setEndpointUrl("http://beta.example.com:1234/path?foo=bar") - // .setClientRegion(Region.US_WEST_2) - // .setExpectedEndpoint("http://myendpoint-123456789012.beta.example.com:1234/path/object?foo=bar") - // .setExpectedSigningServiceName("s3") - // .setExpectedSigningRegion(Region.US_WEST_2)); + cases.add(new TestCase().setCaseName("access point with http, path, query, and port") + .setGetObjectBucketName("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint") + .setEndpointUrl("http://beta.example.com:1234/path?foo=bar") + .setClientRegion(Region.US_WEST_2) + .setExpectedEndpoint("http://myendpoint-123456789012.beta.example.com:1234/path/object?foo=bar") + .setExpectedSigningServiceName("s3") + .setExpectedSigningRegion(Region.US_WEST_2)); cases.add(new TestCase().setCaseName("outposts access point") .setGetObjectBucketName("arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint") @@ -313,15 +312,14 @@ public static Collection testCases() { .setExpectedSigningServiceName("s3") .setExpectedSigningRegion(Region.US_WEST_2)); - //FIXME: The ruleset is currently broken for this test case. The provider is not preserving the path part - // cases.add(new TestCase().setCaseName("access point with http, path, query, port, different arn region, and arn region enabled") - // .setGetObjectBucketName("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint") - // .setEndpointUrl("http://accesspoint.vpce-123-abc.s3.us-west-2.vpce.amazonaws.com:1234/path?foo=bar") - // .setS3Configuration(c -> c.useArnRegionEnabled(true)) - // .setClientRegion(Region.EU_WEST_1) - // .setExpectedEndpoint("http://myendpoint-123456789012.accesspoint.vpce-123-abc.s3.us-west-2.vpce.amazonaws.com:1234/path/object?foo=bar") - // .setExpectedSigningServiceName("s3") - // .setExpectedSigningRegion(Region.US_WEST_2)); + cases.add(new TestCase().setCaseName("access point with http, path, query, port, different arn region, and arn region enabled") + .setGetObjectBucketName("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint") + .setEndpointUrl("http://accesspoint.vpce-123-abc.s3.us-west-2.vpce.amazonaws.com:1234/path?foo=bar") + .setS3Configuration(c -> c.useArnRegionEnabled(true)) + .setClientRegion(Region.EU_WEST_1) + .setExpectedEndpoint("http://myendpoint-123456789012.accesspoint.vpce-123-abc.s3.us-west-2.vpce.amazonaws.com:1234/path/object?foo=bar") + .setExpectedSigningServiceName("s3") + .setExpectedSigningRegion(Region.US_WEST_2)); cases.add(new TestCase().setCaseName("outposts access point with dual stack enabled via s3 config") .setGetObjectBucketName("arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint") diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3UtilitiesTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3UtilitiesTest.java index 0dd1650c7bf2..1829ab488665 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3UtilitiesTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/S3UtilitiesTest.java @@ -16,10 +16,11 @@ package software.amazon.awssdk.services.s3; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.net.MalformedURLException; import java.net.URI; -import java.net.URL; +import nl.jqno.equalsverifier.EqualsVerifier; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -216,6 +217,375 @@ public void getUrlWithVersionId() { .isEqualTo("https://foo.s3.us-west-2.amazonaws.com/bar?versionId=%401"); } + @Test + public void parseS3Uri_rootUri_shouldParseCorrectly() { + String uriString = "https://s3.amazonaws.com"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).isEmpty(); + assertThat(s3Uri.key()).isEmpty(); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_rootUriTrailingSlash_shouldParseCorrectly() { + String uriString = "https://s3.amazonaws.com/"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).isEmpty(); + assertThat(s3Uri.key()).isEmpty(); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_pathStyleTrailingSlash_shouldParseCorrectly() { + String uriString = "https://s3.us-east-1.amazonaws.com/myBucket/"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).isEmpty(); + assertThat(s3Uri.region()).contains(Region.US_EAST_1); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_pathStyleGlobalEndpoint_shouldParseCorrectly() { + String uriString = "https://s3.amazonaws.com/myBucket/resources/image1.png"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("resources/image1.png"); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_virtualStyleGlobalEndpoint_shouldParseCorrectly() { + String uriString = "https://myBucket.s3.amazonaws.com/resources/image1.png"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("resources/image1.png"); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isFalse(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_pathStyleWithDot_shouldParseCorrectly() { + String uriString = "https://s3.eu-west-2.amazonaws.com/myBucket/resources/image1.png"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("resources/image1.png"); + assertThat(s3Uri.region()).contains(Region.EU_WEST_2); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_pathStyleWithDash_shouldParseCorrectly() { + String uriString = "https://s3-eu-west-2.amazonaws.com/myBucket/resources/image1.png"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("resources/image1.png"); + assertThat(s3Uri.region()).contains(Region.EU_WEST_2); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_virtualHostedStyleWithDot_shouldParseCorrectly() { + String uriString = "https://myBucket.s3.us-east-2.amazonaws.com/image.png"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("image.png"); + assertThat(s3Uri.region()).contains(Region.US_EAST_2); + assertThat(s3Uri.isPathStyle()).isFalse(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_virtualHostedStyleWithDash_shouldParseCorrectly() { + String uriString = "https://myBucket.s3-us-east-2.amazonaws.com/image.png"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("image.png"); + assertThat(s3Uri.region()).contains(Region.US_EAST_2); + assertThat(s3Uri.isPathStyle()).isFalse(); + assertThat(s3Uri.rawQueryParameters()).isEmpty(); + } + + @Test + public void parseS3Uri_pathStyleWithQuery_shouldParseCorrectly() { + String uriString = "https://s3.us-west-1.amazonaws.com/myBucket/doc.txt?versionId=abc123"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("doc.txt"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + } + + @Test + public void parseS3Uri_pathStyleWithQueryMultipleValues_shouldParseCorrectly() { + String uriString = "https://s3.us-west-1.amazonaws.com/myBucket/doc.txt?versionId=abc123&versionId=def456"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("doc.txt"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + assertThat(s3Uri.firstMatchingRawQueryParameters("versionId")).contains("def456"); + } + + @Test + public void parseS3Uri_pathStyleWithMultipleQueries_shouldParseCorrectly() { + String uriString = "https://s3.us-west-1.amazonaws.com/myBucket/doc.txt?versionId=abc123&partNumber=77"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("doc.txt"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + assertThat(s3Uri.firstMatchingRawQueryParameter("partNumber")).contains("77"); + } + + @Test + public void parseS3Uri_pathStyleWithEncoding_shouldParseCorrectly() { + String uriString = "https://s3.us-west-1.amazonaws.com/my%40Bucket/object%20key?versionId=%61%62%63%31%32%33"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("my@Bucket"); + assertThat(s3Uri.key()).contains("object key"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isTrue(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + } + + @Test + public void parseS3Uri_virtualStyleWithQuery_shouldParseCorrectly() { + String uriString= "https://myBucket.s3.us-west-1.amazonaws.com/doc.txt?versionId=abc123"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("doc.txt"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isFalse(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + } + @Test + public void parseS3Uri_virtualStyleWithQueryMultipleValues_shouldParseCorrectly() { + String uriString = "https://myBucket.s3.us-west-1.amazonaws.com/doc.txt?versionId=abc123&versionId=def456"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("doc.txt"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isFalse(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + assertThat(s3Uri.firstMatchingRawQueryParameters("versionId")).contains("def456"); + } + + @Test + public void parseS3Uri_virtualStyleWithMultipleQueries_shouldParseCorrectly() { + String uriString = "https://myBucket.s3.us-west-1.amazonaws.com/doc.txt?versionId=abc123&partNumber=77"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("doc.txt"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isFalse(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + assertThat(s3Uri.firstMatchingRawQueryParameter("partNumber")).contains("77"); + } + + @Test + public void parseS3Uri_virtualStyleWithEncoding_shouldParseCorrectly() { + String uriString = "https://myBucket.s3.us-west-1.amazonaws.com/object%20key?versionId=%61%62%63%31%32%33"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("object key"); + assertThat(s3Uri.region()).contains(Region.US_WEST_1); + assertThat(s3Uri.isPathStyle()).isFalse(); + assertThat(s3Uri.firstMatchingRawQueryParameter("versionId")).contains("abc123"); + } + + @Test + public void parseS3Uri_cliStyleWithoutKey_shouldParseCorrectly() { + String uriString = "s3://myBucket"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).isEmpty(); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isFalse(); + } + + @Test + public void parseS3Uri_cliStyleWithoutKeyWithTrailingSlash_shouldParseCorrectly() { + String uriString = "s3://myBucket/"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).isEmpty(); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isFalse(); + } + + @Test + public void parseS3Uri_cliStyleWithKey_shouldParseCorrectly() { + String uriString = "s3://myBucket/resources/key"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("myBucket"); + assertThat(s3Uri.key()).contains("resources/key"); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isFalse(); + } + + @Test + public void parseS3Uri_cliStyleWithEncoding_shouldParseCorrectly() { + String uriString = "s3://my%40Bucket/object%20key"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.uri()).isEqualTo(uri); + assertThat(s3Uri.bucket()).contains("my@Bucket"); + assertThat(s3Uri.key()).contains("object key"); + assertThat(s3Uri.region()).isEmpty(); + assertThat(s3Uri.isPathStyle()).isFalse(); + } + + @Test + public void parseS3Uri_accessPointUri_shouldThrowProperErrorMessage() { + String accessPointUriString = "myendpoint-123456789012.s3-accesspoint.us-east-1.amazonaws.com"; + URI accessPointUri = URI.create(accessPointUriString); + + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + defaultUtilities.parseUri(accessPointUri); + }); + assertThat(exception.getMessage()).isEqualTo("AccessPoints URI parsing is not supported: " + + "myendpoint-123456789012.s3-accesspoint.us-east-1.amazonaws.com"); + } + + @Test + public void parseS3Uri_accessPointUriWithFipsDualstack_shouldThrowProperErrorMessage() { + String accessPointUriString = "myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com"; + URI accessPointUri = URI.create(accessPointUriString); + + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + defaultUtilities.parseUri(accessPointUri); + }); + assertThat(exception.getMessage()).isEqualTo("AccessPoints URI parsing is not supported: " + + "myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com"); + } + + @Test + public void parseS3Uri_outpostsUri_shouldThrowProperErrorMessage() { + String outpostsUriString = "myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com"; + URI outpostsUri = URI.create(outpostsUriString); + + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + defaultUtilities.parseUri(outpostsUri); + }); + assertThat(exception.getMessage()).isEqualTo("Outposts URI parsing is not supported: " + + "myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com"); + } + + @Test + public void parseS3Uri_outpostsUriWithChinaPartition_shouldThrowProperErrorMessage() { + String outpostsUriString = "myaccesspoint-123456789012.op-01234567890123456.s3-outposts.cn-north-1.amazonaws.com.cn"; + URI outpostsUri = URI.create(outpostsUriString); + + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + defaultUtilities.parseUri(outpostsUri); + }); + assertThat(exception.getMessage()).isEqualTo("Outposts URI parsing is not supported: " + + "myaccesspoint-123456789012.op-01234567890123456.s3-outposts.cn-north-1.amazonaws.com.cn"); + } + + @Test + public void parseS3Uri_withNonS3Uri_shouldThrowProperErrorMessage() { + String nonS3UriString = "https://www.amazon.com/"; + URI nonS3Uri = URI.create(nonS3UriString); + + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + defaultUtilities.parseUri(nonS3Uri); + }); + assertThat(exception.getMessage()).isEqualTo("Invalid S3 URI: hostname does not appear to be a valid S3 endpoint: " + + "https://www.amazon.com/"); + } + + @Test + public void S3Uri_toString_printsCorrectOutput() { + String uriString = "https://myBucket.s3.us-west-1.amazonaws.com/doc.txt?versionId=abc123&partNumber=77"; + URI uri = URI.create(uriString); + + S3Uri s3Uri = defaultUtilities.parseUri(uri); + assertThat(s3Uri.toString()).isEqualTo("S3Uri(uri=https://myBucket.s3.us-west-1.amazonaws.com/doc.txt?" + + "versionId=abc123&partNumber=77, bucket=myBucket, key=doc.txt, region=us-west-1," + + " isPathStyle=false, queryParams={versionId=[abc123], partNumber=[77]})"); + } + + @Test + public void S3Uri_testEqualsAndHashCodeContract() { + EqualsVerifier.forClass(S3Uri.class).verify(); + } + private static GetUrlRequest requestWithoutSpaces() { return GetUrlRequest.builder() .bucket("foo-bucket") diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtConnectionHealthConfigurationTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtConnectionHealthConfigurationTest.java new file mode 100644 index 000000000000..e5aaab8a6e4e --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtConnectionHealthConfigurationTest.java @@ -0,0 +1,30 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import nl.jqno.equalsverifier.EqualsVerifier; +import org.junit.jupiter.api.Test; + +class S3CrtConnectionHealthConfigurationTest { + + @Test + void equalsHashcode() { + EqualsVerifier.forClass(S3CrtConnectionHealthConfiguration.class) + .withRedefinedSuperclass() + .withNonnullFields("minimumThroughputTimeout") + .verify(); + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtHttpConfigurationTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtHttpConfigurationTest.java new file mode 100644 index 000000000000..174aa22e0eeb --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtHttpConfigurationTest.java @@ -0,0 +1,27 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import nl.jqno.equalsverifier.EqualsVerifier; +import org.junit.jupiter.api.Test; + +class S3CrtHttpConfigurationTest { + @Test + void equalsHashcode() { + EqualsVerifier.forClass(S3CrtHttpConfiguration.class) + .verify(); + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtProxyConfigurationTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtProxyConfigurationTest.java new file mode 100644 index 000000000000..0fb9945690ae --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtProxyConfigurationTest.java @@ -0,0 +1,28 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import nl.jqno.equalsverifier.EqualsVerifier; +import org.junit.jupiter.api.Test; + +class S3CrtProxyConfigurationTest { + @Test + void equalsHashcode() { + EqualsVerifier.forClass(S3CrtProxyConfiguration.class) + .withRedefinedSuperclass() + .verify(); + } +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtRetryConfigurationTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtRetryConfigurationTest.java new file mode 100644 index 000000000000..0fd6b7f9ad95 --- /dev/null +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/crt/S3CrtRetryConfigurationTest.java @@ -0,0 +1,39 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.s3.crt; + +import nl.jqno.equalsverifier.EqualsVerifier; +import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.assertThatNullPointerException; + +class S3CrtRetryConfigurationTest { + + @Test + void equalsHashcode() { + EqualsVerifier.forClass(S3CrtRetryConfiguration.class) + .withRedefinedSuperclass() + .verify(); + } + + @Test + void retryConfigurationWithNoMaxRetriesDefined(){ + assertThatNullPointerException().isThrownBy(() ->S3CrtRetryConfiguration.builder().build()) + .withMessage("numRetries"); + } + + + +} diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelperTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelperTest.java index 4277510673c8..30b779910c47 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelperTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CopyObjectHelperTest.java @@ -58,15 +58,11 @@ class CopyObjectHelperTest { private static final String MULTIPART_ID = "multipartId"; private S3AsyncClient s3AsyncClient; private CopyObjectHelper copyHelper; - private S3NativeClientConfiguration s3NativeClientConfiguration; @BeforeEach public void setUp() { - s3NativeClientConfiguration = S3NativeClientConfiguration.builder() - .partSizeInBytes(1024L) - .build(); s3AsyncClient = Mockito.mock(S3AsyncClient.class); - copyHelper = new CopyObjectHelper(s3AsyncClient, s3NativeClientConfiguration); + copyHelper = new CopyObjectHelper(s3AsyncClient, 1024L); } @Test diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java index 51a6234150ac..5c0da7b22f9f 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/DefaultS3CrtAsyncClientTest.java @@ -15,15 +15,23 @@ package software.amazon.awssdk.services.s3.internal.crt; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import java.util.concurrent.atomic.AtomicReference; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import software.amazon.awssdk.auth.signer.AwsS3V4Signer; import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; +import software.amazon.awssdk.core.interceptor.Context; +import software.amazon.awssdk.core.interceptor.ExecutionAttributes; +import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; +import software.amazon.awssdk.core.interceptor.SdkInternalExecutionAttribute; import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.endpoints.S3ClientContextParams; +import software.amazon.awssdk.utils.AttributeMap; class DefaultS3CrtAsyncClientTest { @@ -40,6 +48,37 @@ void requestSignerOverrideProvided_shouldThrowException() { } } + @Test + void clientContextParamsSetOnBuilder_propagatedToInterceptors() { + AtomicReference clientContexParams = new AtomicReference<>(); + + ExecutionInterceptor paramsCaptor = new ExecutionInterceptor() { + @Override + public void beforeExecution(Context.BeforeExecution context, ExecutionAttributes executionAttributes) { + clientContexParams.set(executionAttributes.getAttribute(SdkInternalExecutionAttribute.CLIENT_CONTEXT_PARAMS)); + throw new RuntimeException("BOOM"); + } + }; + + DefaultS3CrtAsyncClient.DefaultS3CrtClientBuilder builder = + (DefaultS3CrtAsyncClient.DefaultS3CrtClientBuilder) S3CrtAsyncClient.builder(); + + builder.addExecutionInterceptor(paramsCaptor); + + try (S3AsyncClient s3AsyncClient = builder.accelerate(false) + .forcePathStyle(true) + .build()) { + + assertThatThrownBy(s3AsyncClient.listBuckets()::join).hasMessageContaining("BOOM"); + AttributeMap attributeMap = clientContexParams.get(); + + assertThat(attributeMap.get(S3ClientContextParams.ACCELERATE)).isFalse(); + assertThat(attributeMap.get(S3ClientContextParams.FORCE_PATH_STYLE)).isTrue(); + assertThat(attributeMap.get(S3ClientContextParams.USE_ARN_REGION)).isFalse(); + assertThat(attributeMap.get(S3ClientContextParams.DISABLE_MULTI_REGION_ACCESS_POINTS)).isFalse(); + } + } + @ParameterizedTest @ValueSource(longs = {0, -1L}) void invalidConfig_shouldThrowException(long value) { diff --git a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java index 2e666a429304..f1eb68e1693f 100644 --- a/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java +++ b/services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtAsyncHttpClientTest.java @@ -24,22 +24,24 @@ import static software.amazon.awssdk.services.s3.internal.crt.S3InternalSdkHttpExecutionAttribute.OPERATION_NAME; import java.net.URI; +import java.time.Duration; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.stream.Stream; -import org.assertj.core.internal.Integers; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import org.junit.jupiter.params.provider.ValueSource; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; import software.amazon.awssdk.core.interceptor.trait.HttpChecksum; import software.amazon.awssdk.crt.http.HttpRequest; +import software.amazon.awssdk.crt.io.ExponentialBackoffRetryOptions; +import software.amazon.awssdk.crt.io.StandardRetryOptions; import software.amazon.awssdk.crt.s3.ChecksumAlgorithm; import software.amazon.awssdk.crt.s3.S3Client; +import software.amazon.awssdk.crt.s3.S3ClientOptions; import software.amazon.awssdk.crt.s3.S3MetaRequest; import software.amazon.awssdk.crt.s3.S3MetaRequestOptions; import software.amazon.awssdk.http.SdkHttpMethod; @@ -47,7 +49,7 @@ import software.amazon.awssdk.http.async.AsyncExecuteRequest; import software.amazon.awssdk.http.async.SdkAsyncHttpResponseHandler; import software.amazon.awssdk.http.async.SdkHttpContentPublisher; -import software.amazon.awssdk.services.s3.S3AsyncClient; +import software.amazon.awssdk.services.s3.crt.S3CrtHttpConfiguration; public class S3CrtAsyncHttpClientTest { private static final URI DEFAULT_ENDPOINT = URI.create("https://127.0.0.1:443"); @@ -308,6 +310,58 @@ public void closeHttpClient_shouldCloseUnderlyingResources() { s3NativeClientConfiguration.close(); } + @Test + void build_shouldPassThroughParameters() { + S3NativeClientConfiguration configuration = + S3NativeClientConfiguration.builder() + .maxConcurrency(100) + .signingRegion("us-west-2") + .standardRetryOptions( + new StandardRetryOptions() + .withBackoffRetryOptions(new ExponentialBackoffRetryOptions().withMaxRetries(7))) + .httpConfiguration(S3CrtHttpConfiguration.builder() + .connectionTimeout(Duration.ofSeconds(1)) + .connectionHealthConfiguration(c -> c.minimumThroughputInBps(1024L) + .minimumThroughputTimeout(Duration.ofSeconds(2))) + .proxyConfiguration(p -> p.host("127.0.0.1").port(8080)) + .build()) + .build(); + S3CrtAsyncHttpClient client = + (S3CrtAsyncHttpClient) S3CrtAsyncHttpClient.builder().s3ClientConfiguration(configuration).build(); + S3ClientOptions clientOptions = client.s3ClientOptions(); + assertThat(clientOptions.getConnectTimeoutMs()).isEqualTo(1000); + assertThat(clientOptions.getStandardRetryOptions().getBackoffRetryOptions().getMaxRetries()).isEqualTo(7); + assertThat(clientOptions.getMaxConnections()).isEqualTo(100); + assertThat(clientOptions.getMonitoringOptions()).satisfies(options -> { + assertThat(options.getMinThroughputBytesPerSecond()).isEqualTo(1024); + assertThat(options.getAllowableThroughputFailureIntervalSeconds()).isEqualTo(2); + }); + assertThat(clientOptions.getProxyOptions()).satisfies(options -> { + assertThat(options.getHost()).isEqualTo("127.0.0.1"); + assertThat(options.getPort()).isEqualTo(8080); + }); + assertThat(clientOptions.getMonitoringOptions()).satisfies(options -> { + assertThat(options.getAllowableThroughputFailureIntervalSeconds()).isEqualTo(2); + assertThat(options.getMinThroughputBytesPerSecond()).isEqualTo(1024); + }); + assertThat(clientOptions.getMaxConnections()).isEqualTo(100); + } + + @Test + void build_nullHttpConfiguration() { + S3NativeClientConfiguration configuration = + S3NativeClientConfiguration.builder() + .build(); + S3CrtAsyncHttpClient client = + (S3CrtAsyncHttpClient) S3CrtAsyncHttpClient.builder().s3ClientConfiguration(configuration).build(); + S3ClientOptions clientOptions = client.s3ClientOptions(); + assertThat(clientOptions.getConnectTimeoutMs()).isZero(); + assertThat(clientOptions.getMaxConnections()).isZero(); + assertThat(clientOptions.getMonitoringOptions()).isNull(); + assertThat(clientOptions.getProxyOptions()).isNull(); + assertThat(clientOptions.getMonitoringOptions()).isNull(); + } + private AsyncExecuteRequest.Builder getExecuteRequestBuilder() { return getExecuteRequestBuilder(443); } diff --git a/services/s3control/pom.xml b/services/s3control/pom.xml index 9d3ddc1805d8..00356bb82628 100644 --- a/services/s3control/pom.xml +++ b/services/s3control/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT s3control AWS Java SDK :: Services :: Amazon S3 Control diff --git a/services/s3control/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/s3control/src/main/resources/codegen-resources/endpoint-rule-set.json index e889cf6e1338..fb9bc2cbe4ab 100644 --- a/services/s3control/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/s3control/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -304,9 +304,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -332,9 +332,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -350,9 +350,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -821,9 +821,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{accessPointArn#region}" } ] @@ -864,9 +864,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{accessPointArn#region}" } ] @@ -889,9 +889,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{accessPointArn#region}" } ] @@ -1453,9 +1453,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{bucketArn#region}" } ] @@ -1496,9 +1496,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{bucketArn#region}" } ] @@ -1521,9 +1521,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", - "disableDoubleEncoding": true, "signingRegion": "{bucketArn#region}" } ] @@ -1875,9 +1875,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -1893,9 +1893,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -1963,9 +1963,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -2000,9 +2000,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -2062,9 +2062,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -2099,9 +2099,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -2161,9 +2161,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -2198,9 +2198,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -2260,9 +2260,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] @@ -2297,9 +2297,9 @@ "properties": { "authSchemes": [ { + "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", - "disableDoubleEncoding": true, "signingRegion": "{Region}" } ] diff --git a/services/s3control/src/main/resources/codegen-resources/service-2.json b/services/s3control/src/main/resources/codegen-resources/service-2.json index 5074f50077fa..3b3051ee79ac 100644 --- a/services/s3control/src/main/resources/codegen-resources/service-2.json +++ b/services/s3control/src/main/resources/codegen-resources/service-2.json @@ -218,6 +218,21 @@ "RequiresAccountId":{"value":true} } }, + "DeleteBucketReplication":{ + "name":"DeleteBucketReplication", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/bucket/{name}/replication" + }, + "input":{"shape":"DeleteBucketReplicationRequest"}, + "documentation":"

    This operation deletes an Amazon S3 on Outposts bucket's replication configuration. To delete an S3 bucket's replication configuration, see DeleteBucketReplication in the Amazon S3 API Reference.

    Deletes the replication configuration from the specified S3 on Outposts bucket.

    To use this operation, you must have permissions to perform the s3-outposts:PutReplicationConfiguration action. The Outposts bucket owner has this permission by default and can grant it to others. For more information about permissions, see Setting up IAM with S3 on Outposts and Managing access to S3 on Outposts buckets in the Amazon S3 User Guide.

    It can take a while to propagate PUT or DELETE requests for a replication configuration to all S3 on Outposts systems. Therefore, the replication configuration that's returned by a GET request soon after a PUT or DELETE request might return a more recent result than what's on the Outpost. If an Outpost is offline, the delay in updating the replication configuration on that Outpost can be significant.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    For information about S3 replication on Outposts configuration, see Replicating objects for S3 on Outposts in the Amazon S3 User Guide.

    The following operations are related to DeleteBucketReplication:

    ", + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "DeleteBucketTagging":{ "name":"DeleteBucketTagging", "http":{ @@ -247,7 +262,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"} ], - "documentation":"

    Removes the entire tag set from the specified S3 Batch Operations job. To use this operation, you must have permission to perform the s3:DeleteJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

    Related actions include:

    ", + "documentation":"

    Removes the entire tag set from the specified S3 Batch Operations job. To use the DeleteJobTagging operation, you must have permission to perform the s3:DeleteJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

    Related actions include:

    ", "endpoint":{ "hostPrefix":"{AccountId}." }, @@ -521,6 +536,22 @@ "RequiresAccountId":{"value":true} } }, + "GetBucketReplication":{ + "name":"GetBucketReplication", + "http":{ + "method":"GET", + "requestUri":"/v20180820/bucket/{name}/replication" + }, + "input":{"shape":"GetBucketReplicationRequest"}, + "output":{"shape":"GetBucketReplicationResult"}, + "documentation":"

    This operation gets an Amazon S3 on Outposts bucket's replication configuration. To get an S3 bucket's replication configuration, see GetBucketReplication in the Amazon S3 API Reference.

    Returns the replication configuration of an S3 on Outposts bucket. For more information about S3 on Outposts, see Using Amazon S3 on Outposts in the Amazon S3 User Guide. For information about S3 replication on Outposts configuration, see Replicating objects for S3 on Outposts in the Amazon S3 User Guide.

    It can take a while to propagate PUT or DELETE requests for a replication configuration to all S3 on Outposts systems. Therefore, the replication configuration that's returned by a GET request soon after a PUT or DELETE request might return a more recent result than what's on the Outpost. If an Outpost is offline, the delay in updating the replication configuration on that Outpost can be significant.

    This action requires permissions for the s3-outposts:GetReplicationConfiguration action. The Outposts bucket owner has this permission by default and can grant it to others. For more information about permissions, see Setting up IAM with S3 on Outposts and Managing access to S3 on Outposts bucket in the Amazon S3 User Guide.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication, Status, and Priority elements. The response also returns those elements.

    For information about S3 on Outposts replication failure reasons, see Replication failure reasons in the Amazon S3 User Guide.

    The following operations are related to GetBucketReplication:

    ", + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "GetBucketTagging":{ "name":"GetBucketTagging", "http":{ @@ -545,7 +576,7 @@ }, "input":{"shape":"GetBucketVersioningRequest"}, "output":{"shape":"GetBucketVersioningResult"}, - "documentation":"

    This operation returns the versioning state only for S3 on Outposts buckets. To return the versioning state for an S3 bucket, see GetBucketVersioning in the Amazon S3 API Reference.

    Returns the versioning state for an S3 on Outposts bucket. With versioning, you can save multiple distinct copies of your data and recover from unintended user actions and application failures.

    If you've never set versioning on your bucket, it has no versioning state. In that case, the GetBucketVersioning request does not return a versioning state value.

    For more information about versioning, see Versioning in the Amazon S3 User Guide.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    The following operations are related to GetBucketVersioning for S3 on Outposts.

    ", + "documentation":"

    This operation returns the versioning state for S3 on Outposts buckets only. To return the versioning state for an S3 bucket, see GetBucketVersioning in the Amazon S3 API Reference.

    Returns the versioning state for an S3 on Outposts bucket. With S3 Versioning, you can save multiple distinct copies of your objects and recover from unintended user actions and application failures.

    If you've never set versioning on your bucket, it has no versioning state. In that case, the GetBucketVersioning request does not return a versioning state value.

    For more information about versioning, see Versioning in the Amazon S3 User Guide.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    The following operations are related to GetBucketVersioning for S3 on Outposts.

    ", "endpoint":{ "hostPrefix":"{AccountId}." }, @@ -566,7 +597,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"} ], - "documentation":"

    Returns the tags on an S3 Batch Operations job. To use this operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

    Related actions include:

    ", + "documentation":"

    Returns the tags on an S3 Batch Operations job. To use the GetJobTagging operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

    Related actions include:

    ", "endpoint":{ "hostPrefix":"{AccountId}." }, @@ -701,7 +732,7 @@ }, "input":{"shape":"ListAccessPointsRequest"}, "output":{"shape":"ListAccessPointsResult"}, - "documentation":"

    Returns a list of the access points owned by the current account associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    The following actions are related to ListAccessPoints:

    ", + "documentation":"

    Returns a list of the access points that are owned by the current account that's associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    The following actions are related to ListAccessPoints:

    ", "endpoint":{ "hostPrefix":"{AccountId}." }, @@ -888,6 +919,22 @@ "RequiresAccountId":{"value":true} } }, + "PutBucketReplication":{ + "name":"PutBucketReplication", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/bucket/{name}/replication" + }, + "input":{"shape":"PutBucketReplicationRequest"}, + "documentation":"

    This action creates an Amazon S3 on Outposts bucket's replication configuration. To create an S3 bucket's replication configuration, see PutBucketReplication in the Amazon S3 API Reference.

    Creates a replication configuration or replaces an existing one. For information about S3 replication on Outposts configuration, see Replicating objects for S3 on Outposts in the Amazon S3 User Guide.

    It can take a while to propagate PUT or DELETE requests for a replication configuration to all S3 on Outposts systems. Therefore, the replication configuration that's returned by a GET request soon after a PUT or DELETE request might return a more recent result than what's on the Outpost. If an Outpost is offline, the delay in updating the replication configuration on that Outpost can be significant.

    Specify the replication configuration in the request body. In the replication configuration, you provide the following information:

    • The name of the destination bucket or buckets where you want S3 on Outposts to replicate objects

    • The Identity and Access Management (IAM) role that S3 on Outposts can assume to replicate objects on your behalf

    • Other relevant information, such as replication rules

    A replication configuration must include at least one rule and can contain a maximum of 100. Each rule identifies a subset of objects to replicate by filtering the objects in the source Outposts bucket. To choose additional subsets of objects to replicate, add a rule for each subset.

    To specify a subset of the objects in the source Outposts bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority.

    Using PutBucketReplication on Outposts requires that both the source and destination buckets must have versioning enabled. For information about enabling versioning on a bucket, see Managing S3 Versioning for your S3 on Outposts bucket.

    For information about S3 on Outposts replication failure reasons, see Replication failure reasons in the Amazon S3 User Guide.

    Handling Replication of Encrypted Objects

    Outposts buckets are encrypted at all times. All the objects in the source Outposts bucket are encrypted and can be replicated. Also, all the replicas in the destination Outposts bucket are encrypted with the same encryption key as the objects in the source Outposts bucket.

    Permissions

    To create a PutBucketReplication request, you must have s3-outposts:PutReplicationConfiguration permissions for the bucket. The Outposts bucket owner has this permission by default and can grant it to others. For more information about permissions, see Setting up IAM with S3 on Outposts and Managing access to S3 on Outposts buckets.

    To perform this operation, the user or role must also have the iam:CreateRole and iam:PassRole permissions. For more information, see Granting a user permissions to pass a role to an Amazon Web Services service.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    The following operations are related to PutBucketReplication:

    ", + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "PutBucketTagging":{ "name":"PutBucketTagging", "http":{ @@ -911,7 +958,7 @@ "requestUri":"/v20180820/bucket/{name}/versioning" }, "input":{"shape":"PutBucketVersioningRequest"}, - "documentation":"

    This operation sets the versioning state only for S3 on Outposts buckets. To set the versioning state for an S3 bucket, see PutBucketVersioning in the Amazon S3 API Reference.

    Sets the versioning state for an S3 on Outposts bucket. With versioning, you can save multiple distinct copies of your data and recover from unintended user actions and application failures.

    You can set the versioning state to one of the following:

    • Enabled - Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

    • Suspended - Suspends versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

    If you've never set versioning on your bucket, it has no versioning state. In that case, a GetBucketVersioning request does not return a versioning state value.

    When you enable S3 Versioning, for each object in your bucket, you have a current version and zero or more noncurrent versions. You can configure your bucket S3 Lifecycle rules to expire noncurrent versions after a specified time period. For more information, see Creating and managing a lifecycle configuration for your S3 on Outposts bucket in the Amazon S3 User Guide.

    If you have an object expiration lifecycle policy in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle policy will manage the deletes of the noncurrent object versions in the version-enabled bucket. For more information, see Versioning in the Amazon S3 User Guide.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    The following operations are related to PutBucketVersioning for S3 on Outposts.

    ", + "documentation":"

    This operation sets the versioning state for S3 on Outposts buckets only. To set the versioning state for an S3 bucket, see PutBucketVersioning in the Amazon S3 API Reference.

    Sets the versioning state for an S3 on Outposts bucket. With S3 Versioning, you can save multiple distinct copies of your objects and recover from unintended user actions and application failures.

    You can set the versioning state to one of the following:

    • Enabled - Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

    • Suspended - Suspends versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

    If you've never set versioning on your bucket, it has no versioning state. In that case, a GetBucketVersioning request does not return a versioning state value.

    When you enable S3 Versioning, for each object in your bucket, you have a current version and zero or more noncurrent versions. You can configure your bucket S3 Lifecycle rules to expire noncurrent versions after a specified time period. For more information, see Creating and managing a lifecycle configuration for your S3 on Outposts bucket in the Amazon S3 User Guide.

    If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. For more information, see Versioning in the Amazon S3 User Guide.

    All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

    The following operations are related to PutBucketVersioning for S3 on Outposts.

    ", "endpoint":{ "hostPrefix":"{AccountId}." }, @@ -938,7 +985,7 @@ {"shape":"NotFoundException"}, {"shape":"TooManyTagsException"} ], - "documentation":"

    Sets the supplied tag-set on an S3 Batch Operations job.

    A tag is a key-value pair. You can associate S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using GetJobTagging, modify that tag set, and use this action to replace the tag set with the one you modified. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

    • If you send this request with an empty tag set, Amazon S3 deletes the existing tag set on the Batch Operations job. If you use this method, you are charged for a Tier 1 Request (PUT). For more information, see Amazon S3 pricing.

    • For deleting existing tags for your Batch Operations job, a DeleteJobTagging request is preferred because it achieves the same result without incurring charges.

    • A few things to consider about using tags:

      • Amazon S3 limits the maximum number of tags to 50 tags per job.

      • You can associate up to 50 tags with a job as long as they have unique tag keys.

      • A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length.

      • The key and values are case sensitive.

      • For tagging-related restrictions related to characters and encodings, see User-Defined Tag Restrictions in the Billing and Cost Management User Guide.

    To use this action, you must have permission to perform the s3:PutJobTagging action.

    Related actions include:

    ", + "documentation":"

    Sets the supplied tag-set on an S3 Batch Operations job.

    A tag is a key-value pair. You can associate S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using GetJobTagging, modify that tag set, and use this action to replace the tag set with the one you modified. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

    • If you send this request with an empty tag set, Amazon S3 deletes the existing tag set on the Batch Operations job. If you use this method, you are charged for a Tier 1 Request (PUT). For more information, see Amazon S3 pricing.

    • For deleting existing tags for your Batch Operations job, a DeleteJobTagging request is preferred because it achieves the same result without incurring charges.

    • A few things to consider about using tags:

      • Amazon S3 limits the maximum number of tags to 50 tags per job.

      • You can associate up to 50 tags with a job as long as they have unique tag keys.

      • A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length.

      • The key and values are case sensitive.

      • For tagging-related restrictions related to characters and encodings, see User-Defined Tag Restrictions in the Billing and Cost Management User Guide.

    To use the PutJobTagging operation, you must have permission to perform the s3:PutJobTagging action.

    Related actions include:

    ", "endpoint":{ "hostPrefix":"{AccountId}." }, @@ -1099,6 +1146,17 @@ }, "documentation":"

    The container for abort incomplete multipart upload

    " }, + "AccessControlTranslation":{ + "type":"structure", + "required":["Owner"], + "members":{ + "Owner":{ + "shape":"OwnerOverride", + "documentation":"

    Specifies the replica ownership.

    " + } + }, + "documentation":"

    A container for information about access control for replicas.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, "AccessPoint":{ "type":"structure", "required":[ @@ -1147,7 +1205,7 @@ }, "AccessPointName":{ "type":"string", - "max":63, + "max":255, "min":3 }, "AccountId":{ @@ -1371,6 +1429,7 @@ "authenticated-read" ] }, + "BucketIdentifierString":{"type":"string"}, "BucketLevel":{ "type":"structure", "members":{ @@ -1486,6 +1545,10 @@ "ObjectLambdaAccessPointArn":{ "shape":"ObjectLambdaAccessPointArn", "documentation":"

    Specifies the ARN for the Object Lambda Access Point.

    " + }, + "Alias":{ + "shape":"ObjectLambdaAccessPointAlias", + "documentation":"

    The alias of the Object Lambda Access Point.

    " } } }, @@ -1513,7 +1576,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket that you want to associate this access point with.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    The name of the bucket that you want to associate this access point with.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"} }, "VpcConfiguration":{ @@ -1633,7 +1696,7 @@ }, "BucketArn":{ "shape":"S3RegionalBucketArn", - "documentation":"

    The Amazon Resource Name (ARN) of the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    " } } }, @@ -1833,7 +1896,7 @@ }, "Name":{ "shape":"AccessPointName", - "documentation":"

    The name of the access point whose policy you want to delete.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", + "documentation":"

    The name of the access point whose policy you want to delete.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" @@ -1857,7 +1920,7 @@ }, "Name":{ "shape":"AccessPointName", - "documentation":"

    The name of the access point you want to delete.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", + "documentation":"

    The name of the access point you want to delete.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" @@ -1881,7 +1944,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -1905,7 +1968,31 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "contextParam":{"name":"Bucket"}, + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteBucketReplicationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

    The Amazon Web Services account ID of the Outposts bucket to delete the replication configuration for.

    ", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "documentation":"

    Specifies the S3 on Outposts bucket to delete the replication configuration for.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -1929,7 +2016,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies the bucket being deleted.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    Specifies the bucket being deleted.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -1953,7 +2040,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The bucket ARN that has the tag set to be removed.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    The bucket ARN that has the tag set to be removed.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -1988,6 +2075,24 @@ "members":{ } }, + "DeleteMarkerReplication":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"DeleteMarkerReplicationStatus", + "documentation":"

    Indicates whether to replicate delete markers.

    " + } + }, + "documentation":"

    Specifies whether S3 on Outposts replicates delete markers. If you specify a Filter element in your replication configuration, you must also include a DeleteMarkerReplication element. If your Filter includes a Tag element, the DeleteMarkerReplication element's Status child element must be set to Disabled, because S3 on Outposts does not support replicating delete markers for tag-based rules.

    For more information about delete marker replication, see How delete operations affect replication in the Amazon S3 User Guide.

    " + }, + "DeleteMarkerReplicationStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "DeleteMultiRegionAccessPointInput":{ "type":"structure", "required":["Name"], @@ -2164,6 +2269,41 @@ } } }, + "Destination":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Account":{ + "shape":"AccountId", + "documentation":"

    The destination bucket owner's account ID.

    " + }, + "Bucket":{ + "shape":"BucketIdentifierString", + "documentation":"

    The Amazon Resource Name (ARN) of the access point for the destination bucket where you want S3 on Outposts to store the replication results.

    " + }, + "ReplicationTime":{ + "shape":"ReplicationTime", + "documentation":"

    A container that specifies S3 Replication Time Control (S3 RTC) settings, including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a Metrics block.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "AccessControlTranslation":{ + "shape":"AccessControlTranslation", + "documentation":"

    Specify this property only in a cross-account scenario (where the source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this property is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "EncryptionConfiguration":{ + "shape":"EncryptionConfiguration", + "documentation":"

    A container that provides information about encryption. If SourceSelectionCriteria is specified, you must specify this element.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "Metrics":{ + "shape":"Metrics", + "documentation":"

    A container that specifies replication metrics-related settings.

    " + }, + "StorageClass":{ + "shape":"ReplicationStorageClass", + "documentation":"

    The storage class to use when replicating objects. All objects stored on S3 on Outposts are stored in the OUTPOSTS storage class. S3 on Outposts uses the OUTPOSTS storage class to create the object replicas.

    Values other than OUTPOSTS are not supported by Amazon S3 on Outposts.

    " + } + }, + "documentation":"

    Specifies information about the replication destination bucket and its settings for an S3 on Outposts replication configuration.

    " + }, "DetailedStatusCodesMetrics":{ "type":"structure", "members":{ @@ -2174,6 +2314,17 @@ }, "documentation":"

    The container element for Amazon S3 Storage Lens detailed status code metrics. Detailed status code metrics generate metrics for HTTP status codes, such as 200 OK, 403 Forbidden, 503 Service Unavailable and others.

    For more information about S3 Storage Lens, see Assessing your storage activity and usage with S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

    " }, + "EncryptionConfiguration":{ + "type":"structure", + "members":{ + "ReplicaKmsKeyID":{ + "shape":"ReplicaKmsKeyID", + "documentation":"

    Specifies the ID of the customer managed KMS key that's stored in Key Management Service (KMS) for the destination bucket. This ID is either the Amazon Resource Name (ARN) for the KMS key or the alias ARN for the KMS key. Amazon S3 uses this KMS key to encrypt replica objects. Amazon S3 supports only symmetric encryption KMS keys. For more information, see Symmetric encryption KMS keys in the Amazon Web Services Key Management Service Developer Guide.

    ", + "box":true + } + }, + "documentation":"

    Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, "Endpoints":{ "type":"map", "key":{"shape":"NonEmptyMaxLength64String"}, @@ -2208,6 +2359,24 @@ }, "documentation":"

    A container for what Amazon S3 Storage Lens will exclude.

    " }, + "ExistingObjectReplication":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"ExistingObjectReplicationStatus", + "documentation":"

    Specifies whether Amazon S3 replicates existing source bucket objects.

    " + } + }, + "documentation":"

    An optional configuration to replicate existing source bucket objects.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "ExistingObjectReplicationStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "ExpirationStatus":{ "type":"string", "enum":[ @@ -2318,6 +2487,10 @@ "CreationDate":{ "shape":"CreationDate", "documentation":"

    The date and time when the specified Object Lambda Access Point was created.

    " + }, + "Alias":{ + "shape":"ObjectLambdaAccessPointAlias", + "documentation":"

    The alias of the Object Lambda Access Point.

    " } } }, @@ -2370,7 +2543,7 @@ }, "Name":{ "shape":"AccessPointName", - "documentation":"

    The name of the access point whose policy you want to retrieve.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", + "documentation":"

    The name of the access point whose policy you want to retrieve.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" @@ -2465,7 +2638,7 @@ }, "Name":{ "shape":"AccessPointName", - "documentation":"

    The name of the access point whose configuration information you want to retrieve.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", + "documentation":"

    The name of the access point whose configuration information you want to retrieve.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" @@ -2531,7 +2704,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The Amazon Resource Name (ARN) of the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    The Amazon Resource Name (ARN) of the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -2564,7 +2737,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -2580,6 +2753,39 @@ } } }, + "GetBucketReplicationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

    The Amazon Web Services account ID of the Outposts bucket.

    ", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "documentation":"

    Specifies the bucket to get the replication information for.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "contextParam":{"name":"Bucket"}, + "location":"uri", + "locationName":"name" + } + } + }, + "GetBucketReplicationResult":{ + "type":"structure", + "members":{ + "ReplicationConfiguration":{ + "shape":"ReplicationConfiguration", + "documentation":"

    A container for one or more replication rules. A replication configuration must have at least one rule and you can add up to 100 rules. The maximum size of a replication configuration is 128 KB.

    " + } + } + }, "GetBucketRequest":{ "type":"structure", "required":[ @@ -2597,7 +2803,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -2638,7 +2844,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -3263,7 +3469,7 @@ "members":{ "ObjectArn":{ "shape":"S3KeyArnString", - "documentation":"

    The Amazon Resource Name (ARN) for a manifest object.

    Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see XML related object key constraints.

    " + "documentation":"

    The Amazon Resource Name (ARN) for a manifest object.

    When you're using XML requests, you must replace special characters (such as carriage returns) in object keys with their equivalent XML entity codes. For more information, see XML-related object key constraints in the Amazon S3 User Guide.

    " }, "ObjectVersionId":{ "shape":"S3ObjectVersionId", @@ -3554,7 +3760,7 @@ }, "AbortIncompleteMultipartUpload":{ "shape":"AbortIncompleteMultipartUpload", - "documentation":"

    Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 waits before permanently removing all parts of the upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy in the Amazon S3 User Guide.

    " + "documentation":"

    Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 waits before permanently removing all parts of the upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration in the Amazon S3 User Guide.

    " } }, "documentation":"

    The container for the Outposts bucket lifecycle rule.

    " @@ -3588,7 +3794,7 @@ "members":{ "Prefix":{ "shape":"Prefix", - "documentation":"

    Prefix identifying one or more objects to which the rule applies.

    Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see XML related object key constraints.

    " + "documentation":"

    Prefix identifying one or more objects to which the rule applies.

    When you're using XML requests, you must replace special characters (such as carriage returns) in object keys with their equivalent XML entity codes. For more information, see XML-related object key constraints in the Amazon S3 User Guide.

    " }, "Tag":{"shape":"S3Tag"}, "And":{ @@ -3668,7 +3874,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The name of the bucket whose associated access points you want to list.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    The name of the bucket whose associated access points you want to list.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"querystring", "locationName":"bucket" @@ -3921,11 +4127,34 @@ "max":1000, "min":0 }, + "Metrics":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"MetricsStatus", + "documentation":"

    Specifies whether replication metrics are enabled.

    " + }, + "EventThreshold":{ + "shape":"ReplicationTimeValue", + "documentation":"

    A container that specifies the time threshold for emitting the s3:Replication:OperationMissedThreshold event.

    This is not supported by Amazon S3 on Outposts buckets.

    " + } + }, + "documentation":"

    A container that specifies replication metrics-related settings.

    " + }, + "MetricsStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "MinStorageBytesPercentage":{ "type":"double", "max":100, "min":0.1 }, + "Minutes":{"type":"integer"}, "MultiRegionAccessPointAlias":{ "type":"string", "max":63, @@ -4029,7 +4258,7 @@ }, "TrafficDialPercentage":{ "shape":"TrafficDialPercentage", - "documentation":"

    The traffic state for the specified bucket or Amazon Web Services Region.

    A value of 0 indicates a passive state, which means that no new traffic will be routed to the Region.

    A value of 100 indicates an active state, which means that traffic will be routed to the specified Region.

    When the routing configuration for a Region is changed from active to passive, any in-progress operations (uploads, copies, deletes, and so on) to the formerly active Region will continue to run to until a final success or failure status is reached.

    If all Regions in the routing configuration are designated as passive, you'll receive an InvalidRequest error.

    " + "documentation":"

    The traffic state for the specified bucket or Amazon Web Services Region.

    A value of 0 indicates a passive state, which means that no new traffic will be routed to the Region.

    A value of 100 indicates an active state, which means that traffic will be routed to the specified Region.

    When the routing configuration for a Region is changed from active to passive, any in-progress operations (uploads, copies, deletes, and so on) to the formerly active Region will continue to run to until a final success or failure status is reached.

    If all Regions in the routing configuration are designated as passive, you'll receive an InvalidRequest error.

    " } }, "documentation":"

    A structure for a Multi-Region Access Point that indicates where Amazon S3 traffic can be routed. Routes can be either active or passive. Active routes can process Amazon S3 requests through the Multi-Region Access Point, but passive routes are not eligible to process Amazon S3 requests.

    Each route contains the Amazon S3 bucket name and the Amazon Web Services Region that the bucket is located in. The route also includes the TrafficDialPercentage value, which shows whether the bucket and Region are active (indicated by a value of 100) or passive (indicated by a value of 0).

    " @@ -4149,10 +4378,43 @@ "ObjectLambdaAccessPointArn":{ "shape":"ObjectLambdaAccessPointArn", "documentation":"

    Specifies the ARN for the Object Lambda Access Point.

    " + }, + "Alias":{ + "shape":"ObjectLambdaAccessPointAlias", + "documentation":"

    The alias of the Object Lambda Access Point.

    " } }, "documentation":"

    An access point with an attached Lambda function used to access transformed data from an Amazon S3 bucket.

    " }, + "ObjectLambdaAccessPointAlias":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"ObjectLambdaAccessPointAliasValue", + "documentation":"

    The alias value of the Object Lambda Access Point.

    " + }, + "Status":{ + "shape":"ObjectLambdaAccessPointAliasStatus", + "documentation":"

    The status of the Object Lambda Access Point alias. If the status is PROVISIONING, the Object Lambda Access Point is provisioning the alias and the alias is not ready for use yet. If the status is READY, the Object Lambda Access Point alias is successfully provisioned and ready for use.

    " + } + }, + "documentation":"

    The alias of an Object Lambda Access Point. For more information, see How to use a bucket-style alias for your S3 bucket Object Lambda Access Point.

    " + }, + "ObjectLambdaAccessPointAliasStatus":{ + "type":"string", + "enum":[ + "PROVISIONING", + "READY" + ], + "max":16, + "min":2 + }, + "ObjectLambdaAccessPointAliasValue":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^[0-9a-z\\\\-]{3,63}" + }, "ObjectLambdaAccessPointArn":{ "type":"string", "max":2048, @@ -4294,6 +4556,10 @@ "type":"string", "enum":["V_1"] }, + "OwnerOverride":{ + "type":"string", + "enum":["Destination"] + }, "Policy":{"type":"string"}, "PolicyStatus":{ "type":"structure", @@ -4329,6 +4595,7 @@ }, "documentation":"

    A container for the prefix-level storage metrics for S3 Storage Lens.

    " }, + "Priority":{"type":"integer"}, "ProposedMultiRegionAccessPointPolicy":{ "type":"structure", "members":{ @@ -4440,7 +4707,7 @@ }, "Name":{ "shape":"AccessPointName", - "documentation":"

    The name of the access point that you want to associate with the specified policy.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", + "documentation":"

    The name of the access point that you want to associate with the specified policy.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

    ", "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" @@ -4500,7 +4767,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    Specifies the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -4517,6 +4784,38 @@ } } }, + "PutBucketReplicationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket", + "ReplicationConfiguration" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

    The Amazon Web Services account ID of the Outposts bucket.

    ", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "documentation":"

    Specifies the S3 on Outposts bucket to set the configuration for.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "contextParam":{"name":"Bucket"}, + "location":"uri", + "locationName":"name" + }, + "ReplicationConfiguration":{ + "shape":"ReplicationConfiguration", + "documentation":"

    ", + "locationName":"ReplicationConfiguration", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + } + }, + "payload":"ReplicationConfiguration" + }, "PutBucketTaggingRequest":{ "type":"structure", "required":[ @@ -4535,7 +4834,7 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

    The Amazon Resource Name (ARN) of the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", + "documentation":"

    The Amazon Resource Name (ARN) of the bucket.

    For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

    For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through Outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

    ", "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" @@ -4770,6 +5069,10 @@ "Bucket":{ "shape":"BucketName", "documentation":"

    The name of the associated bucket for the Region.

    " + }, + "BucketAccountId":{ + "shape":"AccountId", + "documentation":"

    The Amazon Web Services account ID that owns the Amazon S3 bucket that's associated with this Multi-Region Access Point.

    " } }, "documentation":"

    A Region that supports a Multi-Region Access Point as well as the associated bucket for the Region.

    " @@ -4796,6 +5099,10 @@ "Region":{ "shape":"RegionName", "documentation":"

    The name of the Region.

    " + }, + "BucketAccountId":{ + "shape":"AccountId", + "documentation":"

    The Amazon Web Services account ID that owns the Amazon S3 bucket that's associated with this Multi-Region Access Point.

    " } }, "documentation":"

    A combination of a bucket and Region that's part of a Multi-Region Access Point.

    " @@ -4852,6 +5159,140 @@ "locationName":"Region" } }, + "ReplicaKmsKeyID":{"type":"string"}, + "ReplicaModifications":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"ReplicaModificationsStatus", + "documentation":"

    Specifies whether S3 on Outposts replicates modifications to object metadata on replicas.

    " + } + }, + "documentation":"

    A filter that you can use to specify whether replica modification sync is enabled. S3 on Outposts replica modification sync can help you keep object metadata synchronized between replicas and source objects. By default, S3 on Outposts replicates metadata from the source objects to the replicas only. When replica modification sync is enabled, S3 on Outposts replicates metadata changes made to the replica copies back to the source object, making the replication bidirectional.

    To replicate object metadata modifications on replicas, you can specify this element and set the Status of this element to Enabled.

    You must enable replica modification sync on the source and destination buckets to replicate replica metadata changes between the source and the replicas.

    " + }, + "ReplicaModificationsStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "ReplicationConfiguration":{ + "type":"structure", + "required":[ + "Role", + "Rules" + ], + "members":{ + "Role":{ + "shape":"Role", + "documentation":"

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that S3 on Outposts assumes when replicating objects. For information about S3 replication on Outposts configuration, see Setting up replication in the Amazon S3 User Guide.

    " + }, + "Rules":{ + "shape":"ReplicationRules", + "documentation":"

    A container for one or more replication rules. A replication configuration must have at least one rule and can contain an array of 100 rules at the most.

    " + } + }, + "documentation":"

    A container for one or more replication rules. A replication configuration must have at least one rule and you can add up to 100 rules. The maximum size of a replication configuration is 128 KB.

    " + }, + "ReplicationRule":{ + "type":"structure", + "required":[ + "Status", + "Destination", + "Bucket" + ], + "members":{ + "ID":{ + "shape":"ID", + "documentation":"

    A unique identifier for the rule. The maximum value is 255 characters.

    " + }, + "Priority":{ + "shape":"Priority", + "documentation":"

    The priority indicates which rule has precedence whenever two or more replication rules conflict. S3 on Outposts attempts to replicate objects according to all replication rules. However, if there are two or more rules with the same destination Outposts bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority.

    For more information, see Creating replication rules on Outposts in the Amazon S3 User Guide.

    ", + "box":true + }, + "Prefix":{ + "shape":"Prefix", + "documentation":"

    An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in an Outposts bucket, specify an empty string.

    When you're using XML requests, you must replace special characters (such as carriage returns) in object keys with their equivalent XML entity codes. For more information, see XML-related object key constraints in the Amazon S3 User Guide.

    ", + "deprecated":true, + "deprecatedMessage":"Prefix has been deprecated" + }, + "Filter":{ + "shape":"ReplicationRuleFilter", + "documentation":"

    A filter that identifies the subset of objects to which the replication rule applies. A Filter element must specify exactly one Prefix, Tag, or And child element.

    " + }, + "Status":{ + "shape":"ReplicationRuleStatus", + "documentation":"

    Specifies whether the rule is enabled.

    " + }, + "SourceSelectionCriteria":{ + "shape":"SourceSelectionCriteria", + "documentation":"

    A container that describes additional filters for identifying the source Outposts objects that you want to replicate. You can choose to enable or disable the replication of these objects.

    " + }, + "ExistingObjectReplication":{ + "shape":"ExistingObjectReplication", + "documentation":"

    An optional configuration to replicate existing source bucket objects.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "Destination":{ + "shape":"Destination", + "documentation":"

    A container for information about the replication destination and its configurations.

    " + }, + "DeleteMarkerReplication":{ + "shape":"DeleteMarkerReplication", + "documentation":"

    Specifies whether S3 on Outposts replicates delete markers. If you specify a Filter element in your replication configuration, you must also include a DeleteMarkerReplication element. If your Filter includes a Tag element, the DeleteMarkerReplication element's Status child element must be set to Disabled, because S3 on Outposts doesn't support replicating delete markers for tag-based rules.

    For more information about delete marker replication, see How delete operations affect replication in the Amazon S3 User Guide.

    " + }, + "Bucket":{ + "shape":"BucketIdentifierString", + "documentation":"

    The Amazon Resource Name (ARN) of the access point for the source Outposts bucket that you want S3 on Outposts to replicate the objects from.

    " + } + }, + "documentation":"

    Specifies which S3 on Outposts objects to replicate and where to store the replicas.

    " + }, + "ReplicationRuleAndOperator":{ + "type":"structure", + "members":{ + "Prefix":{ + "shape":"Prefix", + "documentation":"

    An object key name prefix that identifies the subset of objects that the rule applies to.

    " + }, + "Tags":{ + "shape":"S3TagSet", + "documentation":"

    An array of tags that contain key and value pairs.

    " + } + }, + "documentation":"

    A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter.

    For example:

    • If you specify both a Prefix and a Tag filter, wrap these filters in an And element.

    • If you specify a filter based on multiple tags, wrap the Tag elements in an And element.

    " + }, + "ReplicationRuleFilter":{ + "type":"structure", + "members":{ + "Prefix":{ + "shape":"Prefix", + "documentation":"

    An object key name prefix that identifies the subset of objects that the rule applies to.

    When you're using XML requests, you must replace special characters (such as carriage returns) in object keys with their equivalent XML entity codes. For more information, see XML-related object key constraints in the Amazon S3 User Guide.

    " + }, + "Tag":{"shape":"S3Tag"}, + "And":{ + "shape":"ReplicationRuleAndOperator", + "documentation":"

    A container for specifying rule filters. The filters determine the subset of objects that the rule applies to. This element is required only if you specify more than one filter. For example:

    • If you specify both a Prefix and a Tag filter, wrap these filters in an And element.

    • If you specify a filter based on multiple tags, wrap the Tag elements in an And element.

    " + } + }, + "documentation":"

    A filter that identifies the subset of objects to which the replication rule applies. A Filter element must specify exactly one Prefix, Tag, or And child element.

    " + }, + "ReplicationRuleStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "ReplicationRules":{ + "type":"list", + "member":{ + "shape":"ReplicationRule", + "locationName":"Rule" + } + }, "ReplicationStatus":{ "type":"string", "enum":[ @@ -4865,6 +5306,56 @@ "type":"list", "member":{"shape":"ReplicationStatus"} }, + "ReplicationStorageClass":{ + "type":"string", + "enum":[ + "STANDARD", + "REDUCED_REDUNDANCY", + "STANDARD_IA", + "ONEZONE_IA", + "INTELLIGENT_TIERING", + "GLACIER", + "DEEP_ARCHIVE", + "OUTPOSTS", + "GLACIER_IR" + ] + }, + "ReplicationTime":{ + "type":"structure", + "required":[ + "Status", + "Time" + ], + "members":{ + "Status":{ + "shape":"ReplicationTimeStatus", + "documentation":"

    Specifies whether S3 Replication Time Control (S3 RTC) is enabled.

    " + }, + "Time":{ + "shape":"ReplicationTimeValue", + "documentation":"

    A container that specifies the time by which replication should be complete for all objects and operations on objects.

    " + } + }, + "documentation":"

    A container that specifies S3 Replication Time Control (S3 RTC) related information, including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "ReplicationTimeStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "ReplicationTimeValue":{ + "type":"structure", + "members":{ + "Minutes":{ + "shape":"Minutes", + "documentation":"

    Contains an integer that specifies the time period in minutes.

    Valid value: 15

    ", + "box":true + } + }, + "documentation":"

    A container that specifies the time value for S3 Replication Time Control (S3 RTC). This value is also used for the replication metrics EventThreshold element.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, "ReportPrefixString":{ "type":"string", "max":512, @@ -4877,6 +5368,7 @@ "Ready" ] }, + "Role":{"type":"string"}, "RouteList":{ "type":"list", "member":{ @@ -4998,7 +5490,7 @@ "members":{ "TargetResource":{ "shape":"S3BucketArnString", - "documentation":"

    Specifies the destination bucket ARN for the batch copy operation. For example, to copy objects to a bucket named destinationBucket, set the TargetResource property to arn:aws:s3:::destinationBucket.

    " + "documentation":"

    Specifies the destination bucket Amazon Resource Name (ARN) for the batch copy operation. For example, to copy objects to a bucket named destinationBucket, set the TargetResource property to arn:aws:s3:::destinationBucket.

    " }, "CannedAccessControlList":{ "shape":"S3CannedAccessControlList", @@ -5048,7 +5540,7 @@ }, "TargetKeyPrefix":{ "shape":"NonEmptyMaxLength1024String", - "documentation":"

    Specifies the folder prefix into which you would like the objects to be copied. For example, to copy objects into a folder named Folder1 in the destination bucket, set the TargetKeyPrefix to Folder1.

    " + "documentation":"

    Specifies the folder prefix that you want the objects to be copied into. For example, to copy objects into a folder named Folder1 in the destination bucket, set the TargetKeyPrefix property to Folder1.

    " }, "ObjectLockLegalHoldStatus":{ "shape":"S3ObjectLockLegalHoldStatus", @@ -5068,16 +5560,16 @@ }, "ChecksumAlgorithm":{ "shape":"S3ChecksumAlgorithm", - "documentation":"

    Indicates the algorithm you want Amazon S3 to use to create the checksum. For more information see Checking object integrity in the Amazon S3 User Guide.

    " + "documentation":"

    Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see Checking object integrity in the Amazon S3 User Guide.

    " } }, - "documentation":"

    Contains the configuration parameters for a PUT Copy object operation. S3 Batch Operations passes every object to the underlying PUT Copy object API. For more information about the parameters for this operation, see PUT Object - Copy.

    " + "documentation":"

    Contains the configuration parameters for a PUT Copy object operation. S3 Batch Operations passes every object to the underlying CopyObject API operation. For more information about the parameters for this operation, see CopyObject.

    " }, "S3DeleteObjectTaggingOperation":{ "type":"structure", "members":{ }, - "documentation":"

    Contains no configuration parameters because the DELETE Object tagging API only accepts the bucket name and key name as parameters, which are defined in the job's manifest.

    " + "documentation":"

    Contains no configuration parameters because the DELETE Object tagging (DeleteObjectTagging) API operation accepts only the bucket name and key name as parameters, which are defined in the job's manifest.

    " }, "S3ExpirationInDays":{ "type":"integer", @@ -5159,7 +5651,7 @@ "documentation":"

    S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the EXPEDITED retrieval tier.

    " } }, - "documentation":"

    Contains the configuration parameters for an S3 Initiate Restore Object job. S3 Batch Operations passes every object to the underlying POST Object restore API. For more information about the parameters for this operation, see RestoreObject.

    " + "documentation":"

    Contains the configuration parameters for a POST Object restore job. S3 Batch Operations passes every object to the underlying RestoreObject API operation. For more information about the parameters for this operation, see RestoreObject.

    " }, "S3JobManifestGenerator":{ "type":"structure", @@ -5386,7 +5878,7 @@ "documentation":"

    " } }, - "documentation":"

    Contains the configuration parameters for a Set Object ACL operation. S3 Batch Operations passes every object to the underlying PutObjectAcl API. For more information about the parameters for this operation, see PutObjectAcl .

    " + "documentation":"

    Contains the configuration parameters for a PUT Object ACL operation. S3 Batch Operations passes every object to the underlying PutObjectAcl API operation. For more information about the parameters for this operation, see PutObjectAcl.

    " }, "S3SetObjectLegalHoldOperation":{ "type":"structure", @@ -5397,7 +5889,7 @@ "documentation":"

    Contains the Object Lock legal hold status to be applied to all objects in the Batch Operations job.

    " } }, - "documentation":"

    Contains the configuration for an S3 Object Lock legal hold operation that an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold API. For more information, see Using S3 Object Lock legal hold with S3 Batch Operations in the Amazon S3 User Guide.

    " + "documentation":"

    Contains the configuration for an S3 Object Lock legal hold operation that an S3 Batch Operations job passes to every object to the underlying PutObjectLegalHold API operation. For more information, see Using S3 Object Lock legal hold with S3 Batch Operations in the Amazon S3 User Guide.

    " }, "S3SetObjectRetentionOperation":{ "type":"structure", @@ -5413,7 +5905,7 @@ "documentation":"

    Contains the Object Lock retention mode to be applied to all objects in the Batch Operations job. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User Guide.

    " } }, - "documentation":"

    Contains the configuration parameters for the Object Lock retention action for an S3 Batch Operations job. Batch Operations passes every object to the underlying PutObjectRetention API. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User Guide.

    " + "documentation":"

    Contains the configuration parameters for the Object Lock retention action for an S3 Batch Operations job. Batch Operations passes every object to the underlying PutObjectRetention API operation. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User Guide.

    " }, "S3SetObjectTaggingOperation":{ "type":"structure", @@ -5423,7 +5915,7 @@ "documentation":"

    " } }, - "documentation":"

    Contains the configuration parameters for a Set Object Tagging operation. S3 Batch Operations passes every object to the underlying PUT Object tagging API. For more information about the parameters for this operation, see PUT Object tagging.

    " + "documentation":"

    Contains the configuration parameters for a PUT Object Tagging operation. S3 Batch Operations passes every object to the underlying PutObjectTagging API operation. For more information about the parameters for this operation, see PutObjectTagging.

    " }, "S3StorageClass":{ "type":"string", @@ -5523,6 +6015,38 @@ "documentation":"

    " }, "Setting":{"type":"boolean"}, + "SourceSelectionCriteria":{ + "type":"structure", + "members":{ + "SseKmsEncryptedObjects":{ + "shape":"SseKmsEncryptedObjects", + "documentation":"

    A filter that you can use to select Amazon S3 objects that are encrypted with server-side encryption by using Key Management Service (KMS) keys. If you include SourceSelectionCriteria in the replication configuration, this element is required.

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "ReplicaModifications":{ + "shape":"ReplicaModifications", + "documentation":"

    A filter that you can use to specify whether replica modification sync is enabled. S3 on Outposts replica modification sync can help you keep object metadata synchronized between replicas and source objects. By default, S3 on Outposts replicates metadata from the source objects to the replicas only. When replica modification sync is enabled, S3 on Outposts replicates metadata changes made to the replica copies back to the source object, making the replication bidirectional.

    To replicate object metadata modifications on replicas, you can specify this element and set the Status of this element to Enabled.

    You must enable replica modification sync on the source and destination buckets to replicate replica metadata changes between the source and the replicas.

    " + } + }, + "documentation":"

    A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects.

    " + }, + "SseKmsEncryptedObjects":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"SseKmsEncryptedObjectsStatus", + "documentation":"

    Specifies whether Amazon S3 replicates objects that are created with server-side encryption by using an KMS key stored in Key Management Service.

    " + } + }, + "documentation":"

    A container for filter information that you can use to select S3 objects that are encrypted with Key Management Service (KMS).

    This is not supported by Amazon S3 on Outposts buckets.

    " + }, + "SseKmsEncryptedObjectsStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "StorageLensArn":{ "type":"string", "max":1024, diff --git a/services/s3outposts/pom.xml b/services/s3outposts/pom.xml index 4f8debce1716..cee1fb0d41dc 100644 --- a/services/s3outposts/pom.xml +++ b/services/s3outposts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT s3outposts AWS Java SDK :: Services :: S3 Outposts diff --git a/services/s3outposts/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/s3outposts/src/main/resources/codegen-resources/endpoint-rule-set.json index 2af9fd6b151f..755a138c8860 100644 --- a/services/s3outposts/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/s3outposts/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://s3-outposts.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://s3-outposts.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://s3-outposts.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/s3outposts/src/main/resources/codegen-resources/endpoint-tests.json b/services/s3outposts/src/main/resources/codegen-resources/endpoint-tests.json index 9e00d27b1db0..2d8077a877ff 100644 --- a/services/s3outposts/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/s3outposts/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,770 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.ap-northeast-1.amazonaws.com" + "url": "https://s3-outposts.af-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "af-south-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-northeast-1.api.aws" + "url": "https://s3-outposts.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" } }, { @@ -775,536 +34,412 @@ } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true + "Region": "ap-northeast-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.me-south-1.amazonaws.com" + "url": "https://s3-outposts.ap-northeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false + "Region": "ap-northeast-2" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.me-south-1.amazonaws.com" + "url": "https://s3-outposts.ap-northeast-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "ap-northeast-3" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.sa-east-1.amazonaws.com" + "url": "https://s3-outposts.ap-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "Region": "ap-south-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.sa-east-1.amazonaws.com" + "url": "https://s3-outposts.ap-southeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.ap-east-1.amazonaws.com" + "url": "https://s3-outposts.ap-southeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "ap-southeast-2" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-east-1.amazonaws.com" + "url": "https://s3-outposts.ca-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "ca-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.us-gov-west-1.api.aws" + "url": "https://s3-outposts.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + "url": "https://s3-outposts.eu-north-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true + "Region": "eu-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-gov-west-1.api.aws" + "url": "https://s3-outposts.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-gov-west-1.amazonaws.com" + "url": "https://s3-outposts.eu-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false + "Region": "eu-west-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.ap-southeast-1.api.aws" + "url": "https://s3-outposts.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.ap-southeast-1.amazonaws.com" + "url": "https://s3-outposts.eu-west-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "eu-west-3" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-southeast-1.api.aws" + "url": "https://s3-outposts.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-southeast-1.amazonaws.com" + "url": "https://s3-outposts.sa-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.ap-southeast-2.api.aws" + "url": "https://s3-outposts.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.ap-southeast-2.amazonaws.com" + "url": "https://s3-outposts.us-east-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-southeast-2.api.aws" + "url": "https://s3-outposts.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-southeast-2.amazonaws.com" + "url": "https://s3-outposts.us-west-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true + "Region": "us-west-2" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://s3-outposts-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-iso-east-1.c2s.ic.gov" + "url": "https://s3-outposts-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.ap-southeast-3.api.aws" + "url": "https://s3-outposts.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://s3-outposts-fips.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-southeast-3.api.aws" + "url": "https://s3-outposts-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.ap-southeast-3.amazonaws.com" + "url": "https://s3-outposts-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-3", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.us-east-1.api.aws" + "url": "https://s3-outposts.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.us-east-1.amazonaws.com" + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-east-1.api.aws" + "url": "https://s3-outposts-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-east-1.amazonaws.com" + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.us-east-2.api.aws" + "url": "https://s3-outposts.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-east-2.api.aws" + "url": "https://s3-outposts-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-east-2.amazonaws.com" + "url": "https://s3-outposts.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { @@ -1315,46 +450,48 @@ } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": true + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://s3-outposts.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://s3-outposts.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1364,9 +501,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1376,9 +513,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/s3outposts/src/main/resources/codegen-resources/paginators-1.json b/services/s3outposts/src/main/resources/codegen-resources/paginators-1.json index 485663e0d501..f399fa89244f 100644 --- a/services/s3outposts/src/main/resources/codegen-resources/paginators-1.json +++ b/services/s3outposts/src/main/resources/codegen-resources/paginators-1.json @@ -6,6 +6,12 @@ "output_token": "NextToken", "result_key": "Endpoints" }, + "ListOutpostsWithS3": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Outposts" + }, "ListSharedEndpoints": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/services/s3outposts/src/main/resources/codegen-resources/service-2.json b/services/s3outposts/src/main/resources/codegen-resources/service-2.json index c62245c9aafa..c32998260dd6 100644 --- a/services/s3outposts/src/main/resources/codegen-resources/service-2.json +++ b/services/s3outposts/src/main/resources/codegen-resources/service-2.json @@ -26,7 +26,9 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ConflictException"} + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"OutpostOfflineException"} ], "documentation":"

    Creates an endpoint and associates it with the specified Outpost.

    It can take up to 5 minutes for this action to finish.

    Related actions include:

    " }, @@ -41,7 +43,9 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"OutpostOfflineException"} ], "documentation":"

    Deletes an endpoint.

    It can take up to 5 minutes for this action to finish.

    Related actions include:

    " }, @@ -57,10 +61,27 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ], "documentation":"

    Lists endpoints associated with the specified Outpost.

    Related actions include:

    " }, + "ListOutpostsWithS3":{ + "name":"ListOutpostsWithS3", + "http":{ + "method":"GET", + "requestUri":"/S3Outposts/ListOutpostsWithS3" + }, + "input":{"shape":"ListOutpostsWithS3Request"}, + "output":{"shape":"ListOutpostsWithS3Result"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

    Lists the Outposts with S3 on Outposts capacity for your Amazon Web Services account. Includes S3 on Outposts that you have access to as the Outposts owner, or as a shared user from Resource Access Manager (RAM).

    " + }, "ListSharedEndpoints":{ "name":"ListSharedEndpoints", "http":{ @@ -73,7 +94,8 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ], "documentation":"

    Lists all endpoints associated with an Outpost that has been shared by Amazon Web Services Resource Access Manager (RAM).

    Related actions include:

    " } @@ -88,6 +110,11 @@ "error":{"httpStatusCode":403}, "exception":true }, + "AwsAccountId":{ + "type":"string", + "pattern":"^\\d{12}$" + }, + "CapacityInBytes":{"type":"long"}, "CidrBlock":{"type":"string"}, "ConflictException":{ "type":"structure", @@ -209,6 +236,10 @@ "CustomerOwnedIpv4Pool":{ "shape":"CustomerOwnedIpv4Pool", "documentation":"

    The ID of the customer-owned IPv4 address pool used for the endpoint.

    " + }, + "FailedReason":{ + "shape":"FailedReason", + "documentation":"

    The failure reason, if any, for a create or delete endpoint operation.

    " } }, "documentation":"

    Amazon S3 on Outposts Access Points simplify managing data access at scale for shared datasets in S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC). For more information, see Accessing S3 on Outposts using VPC-only access points in the Amazon Simple Storage Service User Guide.

    " @@ -233,14 +264,31 @@ "enum":[ "Pending", "Available", - "Deleting" + "Deleting", + "Create_Failed", + "Delete_Failed" ] }, "Endpoints":{ "type":"list", "member":{"shape":"Endpoint"} }, + "ErrorCode":{"type":"string"}, "ErrorMessage":{"type":"string"}, + "FailedReason":{ + "type":"structure", + "members":{ + "ErrorCode":{ + "shape":"ErrorCode", + "documentation":"

    The failure code, if any, for a create or delete endpoint operation.

    " + }, + "Message":{ + "shape":"Message", + "documentation":"

    Additional error details describing the endpoint failure and recommended action.

    " + } + }, + "documentation":"

    The failure reason, if any, for a create or delete endpoint operation.

    " + }, "InternalServerException":{ "type":"structure", "members":{ @@ -281,6 +329,36 @@ } } }, + "ListOutpostsWithS3Request":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

    When you can get additional results from the ListOutpostsWithS3 call, a NextToken parameter is returned in the output. You can then pass in a subsequent command to the NextToken parameter to continue listing additional Outposts.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of Outposts to return. The limit is 100.

    ", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListOutpostsWithS3Result":{ + "type":"structure", + "members":{ + "Outposts":{ + "shape":"Outposts", + "documentation":"

    Returns the list of Outposts that have the following characteristics:

    • outposts that have S3 provisioned

    • outposts that are Active (not pending any provisioning nor decommissioned)

    • outposts to which the the calling Amazon Web Services account has access

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    Returns a token that you can use to call ListOutpostsWithS3 again and receive additional results, if there are any.

    " + } + } + }, "ListSharedEndpointsRequest":{ "type":"structure", "required":["OutpostId"], @@ -323,6 +401,7 @@ "max":100, "min":0 }, + "Message":{"type":"string"}, "NetworkInterface":{ "type":"structure", "members":{ @@ -344,10 +423,49 @@ "min":1, "pattern":"^[A-Za-z0-9\\+\\:\\/\\=\\?\\#-_]+$" }, + "Outpost":{ + "type":"structure", + "members":{ + "OutpostArn":{ + "shape":"OutpostArn", + "documentation":"

    Specifies the unique Amazon Resource Name (ARN) for the outpost.

    " + }, + "OutpostId":{ + "shape":"OutpostId", + "documentation":"

    Specifies the unique identifier for the outpost.

    " + }, + "OwnerId":{ + "shape":"AwsAccountId", + "documentation":"

    Returns the Amazon Web Services account ID of the outpost owner. Useful for comparing owned versus shared outposts.

    " + }, + "CapacityInBytes":{ + "shape":"CapacityInBytes", + "documentation":"

    The Amazon S3 capacity of the outpost in bytes.

    " + } + }, + "documentation":"

    Contains the details for the Outpost object.

    " + }, + "OutpostArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):outposts:[a-z\\-0-9]*:[0-9]{12}:outpost/(op-[a-f0-9]{17}|ec2)$" + }, "OutpostId":{ "type":"string", "pattern":"^(op-[a-f0-9]{17}|\\d{12}|ec2)$" }, + "OutpostOfflineException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

    The service link connection to your Outposts home Region is down. Check your connection and try again.

    ", + "error":{"httpStatusCode":400}, + "exception":true + }, + "Outposts":{ + "type":"list", + "member":{"shape":"Outpost"} + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -365,6 +483,15 @@ "type":"string", "pattern":"^subnet-([0-9a-f]{8}|[0-9a-f]{17})$" }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

    The request was denied due to request throttling.

    ", + "error":{"httpStatusCode":429}, + "exception":true + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/services/sagemaker/pom.xml b/services/sagemaker/pom.xml index ae7f94cc01ab..57599a636444 100644 --- a/services/sagemaker/pom.xml +++ b/services/sagemaker/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 sagemaker diff --git a/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json index 8ae952f9c1cc..9d96d35d2d63 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sagemaker/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,204 +111,265 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://api.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://api-fips.sagemaker.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://api-fips.sagemaker.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://api-fips.sagemaker.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://api-fips.sagemaker.{Region}.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://api.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [], "type": "tree", @@ -336,7 +377,7 @@ { "conditions": [], "endpoint": { - "url": "https://api.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://api.sagemaker.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -345,28 +386,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://api.sagemaker.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json b/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json index 664c13c206ff..7c3aaa385663 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sagemaker/src/main/resources/codegen-resources/endpoint-tests.json @@ -9,8 +9,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" + "Region": "af-south-1", + "UseDualStack": false } }, { @@ -22,8 +22,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" + "Region": "ap-east-1", + "UseDualStack": false } }, { @@ -35,8 +35,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" + "Region": "ap-northeast-1", + "UseDualStack": false } }, { @@ -48,8 +48,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" + "Region": "ap-northeast-2", + "UseDualStack": false } }, { @@ -61,8 +61,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" + "Region": "ap-northeast-3", + "UseDualStack": false } }, { @@ -74,8 +74,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-south-1" + "Region": "ap-south-1", + "UseDualStack": false } }, { @@ -87,8 +87,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" + "Region": "ap-southeast-1", + "UseDualStack": false } }, { @@ -100,8 +100,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" + "Region": "ap-southeast-2", + "UseDualStack": false } }, { @@ -113,8 +113,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" + "Region": "ca-central-1", + "UseDualStack": false } }, { @@ -126,8 +126,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" + "Region": "eu-central-1", + "UseDualStack": false } }, { @@ -139,8 +139,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" + "Region": "eu-north-1", + "UseDualStack": false } }, { @@ -152,8 +152,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-south-1" + "Region": "eu-south-1", + "UseDualStack": false } }, { @@ -165,8 +165,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" + "Region": "eu-west-1", + "UseDualStack": false } }, { @@ -178,8 +178,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" + "Region": "eu-west-2", + "UseDualStack": false } }, { @@ -191,8 +191,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" + "Region": "eu-west-3", + "UseDualStack": false } }, { @@ -204,8 +204,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" + "Region": "me-south-1", + "UseDualStack": false } }, { @@ -217,8 +217,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" + "Region": "sa-east-1", + "UseDualStack": false } }, { @@ -230,8 +230,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -243,8 +243,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -256,8 +256,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-east-2", + "UseDualStack": false } }, { @@ -269,8 +269,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" + "Region": "us-east-2", + "UseDualStack": false } }, { @@ -282,8 +282,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" + "Region": "us-west-1", + "UseDualStack": false } }, { @@ -295,8 +295,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" + "Region": "us-west-1", + "UseDualStack": false } }, { @@ -308,8 +308,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" + "Region": "us-west-2", + "UseDualStack": false } }, { @@ -321,8 +321,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" + "Region": "us-west-2", + "UseDualStack": false } }, { @@ -334,8 +334,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -347,8 +347,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -360,8 +360,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -373,8 +373,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-northwest-1" + "Region": "cn-northwest-1", + "UseDualStack": false } }, { @@ -386,8 +386,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -399,8 +399,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -412,8 +412,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -425,8 +425,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { @@ -438,8 +438,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { @@ -451,8 +451,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -464,8 +464,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -477,8 +477,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -490,8 +490,8 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -503,8 +503,19 @@ }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -516,8 +527,30 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -529,8 +562,19 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -542,12 +586,26 @@ }, "params": { "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -556,7 +614,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -567,8 +624,8 @@ }, "params": { "UseFIPS": true, - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -579,10 +636,16 @@ }, "params": { "UseFIPS": false, - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/sagemaker/src/main/resources/codegen-resources/service-2.json b/services/sagemaker/src/main/resources/codegen-resources/service-2.json index 8b08c3ce5bfc..d2dc6a44aaed 100644 --- a/services/sagemaker/src/main/resources/codegen-resources/service-2.json +++ b/services/sagemaker/src/main/resources/codegen-resources/service-2.json @@ -137,7 +137,21 @@ {"shape":"ResourceInUse"}, {"shape":"ResourceLimitExceeded"} ], - "documentation":"

    Creates an Autopilot job.

    Find the best-performing model after you run an Autopilot job by calling .

    For information about how to use Autopilot, see Automate Model Development with Amazon SageMaker Autopilot.

    " + "documentation":"

    Creates an Autopilot job.

    Find the best-performing model after you run an Autopilot job by calling DescribeAutoMLJob.

    For information about how to use Autopilot, see Automate Model Development with Amazon SageMaker Autopilot.

    " + }, + "CreateAutoMLJobV2":{ + "name":"CreateAutoMLJobV2", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAutoMLJobV2Request"}, + "output":{"shape":"CreateAutoMLJobV2Response"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"} + ], + "documentation":"

    Creates an Amazon SageMaker AutoML job that uses non-tabular data such as images or text for Computer Vision or Natural Language Processing problems.

    Find the resulting model after you run an AutoML job V2 by calling DescribeAutoMLJobV2.

    To create an AutoMLJob using tabular data, see CreateAutoMLJob.

    This API action is callable through SageMaker Canvas only. Calling it directly from the CLI or an SDK results in an error.

    " }, "CreateCodeRepository":{ "name":"CreateCodeRepository", @@ -215,7 +229,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceInUse"} ], - "documentation":"

    Creates a Domain used by Amazon SageMaker Studio. A domain consists of an associated Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region. Users within a domain can share notebook files and other artifacts with each other.

    EFS storage

    When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.

    SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption.

    VPC configuration

    All SageMaker Studio traffic between the domain and the EFS volume is through the specified VPC and subnets. For other Studio traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to Studio. The following options are available:

    • PublicInternetOnly - Non-EFS traffic goes through a VPC managed by Amazon SageMaker, which allows internet access. This is the default value.

    • VpcOnly - All Studio traffic is through the specified VPC and subnets. Internet access is disabled by default. To allow internet access, you must specify a NAT gateway.

      When internet access is disabled, you won't be able to run a Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker API and runtime or a NAT gateway and your security groups allow outbound connections.

    NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a SageMaker Studio app successfully.

    For more information, see Connect SageMaker Studio Notebooks to Resources in a VPC.

    " + "documentation":"

    Creates a Domain used by Amazon SageMaker Studio. A domain consists of an associated Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.

    EFS storage

    When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.

    SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption.

    VPC configuration

    All SageMaker Studio traffic between the domain and the EFS volume is through the specified VPC and subnets. For other Studio traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to Studio. The following options are available:

    • PublicInternetOnly - Non-EFS traffic goes through a VPC managed by Amazon SageMaker, which allows internet access. This is the default value.

    • VpcOnly - All Studio traffic is through the specified VPC and subnets. Internet access is disabled by default. To allow internet access, you must specify a NAT gateway.

      When internet access is disabled, you won't be able to run a Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker API and runtime or a NAT gateway and your security groups allow outbound connections.

    NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a SageMaker Studio app successfully.

    For more information, see Connect SageMaker Studio Notebooks to Resources in a VPC.

    " }, "CreateEdgeDeploymentPlan":{ "name":"CreateEdgeDeploymentPlan", @@ -265,7 +279,7 @@ "errors":[ {"shape":"ResourceLimitExceeded"} ], - "documentation":"

    Creates an endpoint using the endpoint configuration specified in the request. SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API.

    Use this API to deploy models using SageMaker hosting services.

    For an example that calls this method when deploying a model to SageMaker hosting services, see the Create Endpoint example notebook.

    You must not delete an EndpointConfig that is in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

    The endpoint name must be unique within an Amazon Web Services Region in your Amazon Web Services account.

    When it receives the request, SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.

    When you call CreateEndpoint, a load call is made to DynamoDB to verify that your endpoint configuration exists. When you read data from a DynamoDB table supporting Eventually Consistent Reads , the response might not reflect the results of a recently completed write operation. The response might include some stale data. If the dependent entities are not yet in DynamoDB, this causes a validation error. If you repeat your read request after a short time, the response should return the latest data. So retry logic is recommended to handle these possible issues. We also recommend that customers call DescribeEndpointConfig before calling CreateEndpoint to minimize the potential impact of a DynamoDB eventually consistent read.

    When SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API.

    If any of the models hosted at this endpoint get model data from an Amazon S3 location, SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you provided. Amazon Web Services STS is activated in your IAM user account by default. If you previously deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For more information, see Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region in the Amazon Web Services Identity and Access Management User Guide.

    To add the IAM role policies for using this API operation, go to the IAM console, and choose Roles in the left navigation pane. Search the IAM role that you want to grant access to use the CreateEndpoint and CreateEndpointConfig API operations, add the following policies to the role.

    • Option 1: For a full SageMaker access, search and attach the AmazonSageMakerFullAccess policy.

    • Option 2: For granting a limited access to an IAM role, paste the following Action elements manually into the JSON file of the IAM role:

      \"Action\": [\"sagemaker:CreateEndpoint\", \"sagemaker:CreateEndpointConfig\"]

      \"Resource\": [

      \"arn:aws:sagemaker:region:account-id:endpoint/endpointName\"

      \"arn:aws:sagemaker:region:account-id:endpoint-config/endpointConfigName\"

      ]

      For more information, see SageMaker API Permissions: Actions, Permissions, and Resources Reference.

    " + "documentation":"

    Creates an endpoint using the endpoint configuration specified in the request. SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API.

    Use this API to deploy models using SageMaker hosting services.

    For an example that calls this method when deploying a model to SageMaker hosting services, see the Create Endpoint example notebook.

    You must not delete an EndpointConfig that is in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

    The endpoint name must be unique within an Amazon Web Services Region in your Amazon Web Services account.

    When it receives the request, SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.

    When you call CreateEndpoint, a load call is made to DynamoDB to verify that your endpoint configuration exists. When you read data from a DynamoDB table supporting Eventually Consistent Reads , the response might not reflect the results of a recently completed write operation. The response might include some stale data. If the dependent entities are not yet in DynamoDB, this causes a validation error. If you repeat your read request after a short time, the response should return the latest data. So retry logic is recommended to handle these possible issues. We also recommend that customers call DescribeEndpointConfig before calling CreateEndpoint to minimize the potential impact of a DynamoDB eventually consistent read.

    When SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API.

    If any of the models hosted at this endpoint get model data from an Amazon S3 location, SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you provided. Amazon Web Services STS is activated in your Amazon Web Services account by default. If you previously deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For more information, see Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region in the Amazon Web Services Identity and Access Management User Guide.

    To add the IAM role policies for using this API operation, go to the IAM console, and choose Roles in the left navigation pane. Search the IAM role that you want to grant access to use the CreateEndpoint and CreateEndpointConfig API operations, add the following policies to the role.

    • Option 1: For a full SageMaker access, search and attach the AmazonSageMakerFullAccess policy.

    • Option 2: For granting a limited access to an IAM role, paste the following Action elements manually into the JSON file of the IAM role:

      \"Action\": [\"sagemaker:CreateEndpoint\", \"sagemaker:CreateEndpointConfig\"]

      \"Resource\": [

      \"arn:aws:sagemaker:region:account-id:endpoint/endpointName\"

      \"arn:aws:sagemaker:region:account-id:endpoint-config/endpointConfigName\"

      ]

      For more information, see SageMaker API Permissions: Actions, Permissions, and Resources Reference.

    " }, "CreateEndpointConfig":{ "name":"CreateEndpointConfig", @@ -333,7 +347,7 @@ {"shape":"ResourceInUse"}, {"shape":"ResourceLimitExceeded"} ], - "documentation":"

    Create a hub.

    " + "documentation":"

    Create a hub.

    Hub APIs are only callable through SageMaker Studio.

    " }, "CreateHumanTaskUi":{ "name":"CreateHumanTaskUi", @@ -557,7 +571,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceInUse"} ], - "documentation":"

    Creates a schedule that regularly starts Amazon SageMaker Processing Jobs to monitor the data captured for an Amazon SageMaker Endoint.

    " + "documentation":"

    Creates a schedule that regularly starts Amazon SageMaker Processing Jobs to monitor the data captured for an Amazon SageMaker Endpoint.

    " }, "CreateNotebookInstance":{ "name":"CreateNotebookInstance", @@ -996,7 +1010,7 @@ {"shape":"ResourceInUse"}, {"shape":"ResourceNotFound"} ], - "documentation":"

    Delete a hub.

    " + "documentation":"

    Delete a hub.

    Hub APIs are only callable through SageMaker Studio.

    " }, "DeleteHubContent":{ "name":"DeleteHubContent", @@ -1009,7 +1023,7 @@ {"shape":"ResourceInUse"}, {"shape":"ResourceNotFound"} ], - "documentation":"

    Delete the contents of a hub.

    " + "documentation":"

    Delete the contents of a hub.

    Hub APIs are only callable through SageMaker Studio.

    " }, "DeleteHumanTaskUi":{ "name":"DeleteHumanTaskUi", @@ -1394,6 +1408,19 @@ ], "documentation":"

    Returns information about an Amazon SageMaker AutoML job.

    " }, + "DescribeAutoMLJobV2":{ + "name":"DescribeAutoMLJobV2", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAutoMLJobV2Request"}, + "output":{"shape":"DescribeAutoMLJobV2Response"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

    Returns information about an Amazon SageMaker AutoML V2 job.

    This API action is callable through SageMaker Canvas only. Calling it directly from the CLI or an SDK results in an error.

    " + }, "DescribeCodeRepository":{ "name":"DescribeCodeRepository", "http":{ @@ -1591,7 +1618,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    Describe a hub.

    " + "documentation":"

    Describe a hub.

    Hub APIs are only callable through SageMaker Studio.

    " }, "DescribeHubContent":{ "name":"DescribeHubContent", @@ -1604,7 +1631,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    Describe the content of a hub.

    " + "documentation":"

    Describe the content of a hub.

    Hub APIs are only callable through SageMaker Studio.

    " }, "DescribeHumanTaskUi":{ "name":"DescribeHumanTaskUi", @@ -2105,7 +2132,7 @@ }, "input":{"shape":"GetSearchSuggestionsRequest"}, "output":{"shape":"GetSearchSuggestionsResponse"}, - "documentation":"

    An auto-complete API for the search functionality in the Amazon SageMaker console. It returns suggestions of possible matches for the property name to use in Search queries. Provides suggestions for HyperParameters, Tags, and Metrics.

    " + "documentation":"

    An auto-complete API for the search functionality in the SageMaker console. It returns suggestions of possible matches for the property name to use in Search queries. Provides suggestions for HyperParameters, Tags, and Metrics.

    " }, "ImportHubContent":{ "name":"ImportHubContent", @@ -2120,7 +2147,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceNotFound"} ], - "documentation":"

    Import hub content.

    " + "documentation":"

    Import hub content.

    Hub APIs are only callable through SageMaker Studio.

    " }, "ListActions":{ "name":"ListActions", @@ -2381,7 +2408,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    List hub content versions.

    " + "documentation":"

    List hub content versions.

    Hub APIs are only callable through SageMaker Studio.

    " }, "ListHubContents":{ "name":"ListHubContents", @@ -2394,7 +2421,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    List the contents of a hub.

    " + "documentation":"

    List the contents of a hub.

    Hub APIs are only callable through SageMaker Studio.

    " }, "ListHubs":{ "name":"ListHubs", @@ -2404,7 +2431,7 @@ }, "input":{"shape":"ListHubsRequest"}, "output":{"shape":"ListHubsResponse"}, - "documentation":"

    List all existing hubs.

    " + "documentation":"

    List all existing hubs.

    Hub APIs are only callable through SageMaker Studio.

    " }, "ListHumanTaskUis":{ "name":"ListHumanTaskUis", @@ -2966,7 +2993,7 @@ }, "input":{"shape":"SearchRequest"}, "output":{"shape":"SearchResponse"}, - "documentation":"

    Finds Amazon SageMaker resources that match a search query. Matching resources are returned as a list of SearchRecord objects in the response. You can sort the search results by any resource property in a ascending or descending order.

    You can query against the following value types: numeric, text, Boolean, and timestamp.

    " + "documentation":"

    Finds SageMaker resources that match a search query. Matching resources are returned as a list of SearchRecord objects in the response. You can sort the search results by any resource property in a ascending or descending order.

    You can query against the following value types: numeric, text, Boolean, and timestamp.

    The Search API may provide access to otherwise restricted data. See Amazon SageMaker API Permissions: Actions, Permissions, and Resources Reference for more information.

    " }, "SendPipelineExecutionStepFailure":{ "name":"SendPipelineExecutionStepFailure", @@ -3067,7 +3094,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    A method for forcing the termination of a running job.

    " + "documentation":"

    A method for forcing a running job to shut down.

    " }, "StopCompilationJob":{ "name":"StopCompilationJob", @@ -3396,7 +3423,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

    Update a hub.

    " + "documentation":"

    Update a hub.

    Hub APIs are only callable through SageMaker Studio.

    " }, "UpdateImage":{ "name":"UpdateImage", @@ -3637,7 +3664,7 @@ "errors":[ {"shape":"ConflictException"} ], - "documentation":"

    Use this operation to update your workforce. You can use this operation to require that workers use specific IP addresses to work on tasks and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.

    The worker portal is now supported in VPC and public internet.

    Use SourceIpConfig to restrict worker access to tasks to a specific range of IP addresses. You specify allowed IP addresses by creating a list of up to ten CIDRs. By default, a workforce isn't restricted to specific IP addresses. If you specify a range of IP addresses, workers who attempt to access tasks using any IP address outside the specified range are denied and get a Not Found error message on the worker portal.

    To restrict access to all the workers in public internet, add the SourceIpConfig CIDR value as \"0.0.0.0/0\".

    Amazon SageMaker does not support Source Ip restriction for worker portals in VPC.

    Use OidcConfig to update the configuration of a workforce created using your own OIDC IdP.

    You can only update your OIDC IdP configuration when there are no work teams associated with your workforce. You can delete work teams using the operation.

    After restricting access to a range of IP addresses or updating your OIDC IdP configuration with this operation, you can view details about your update workforce using the operation.

    This operation only applies to private workforces.

    " + "documentation":"

    Use this operation to update your workforce. You can use this operation to require that workers use specific IP addresses to work on tasks and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.

    The worker portal is now supported in VPC and public internet.

    Use SourceIpConfig to restrict worker access to tasks to a specific range of IP addresses. You specify allowed IP addresses by creating a list of up to ten CIDRs. By default, a workforce isn't restricted to specific IP addresses. If you specify a range of IP addresses, workers who attempt to access tasks using any IP address outside the specified range are denied and get a Not Found error message on the worker portal.

    To restrict access to all the workers in public internet, add the SourceIpConfig CIDR value as \"10.0.0.0/16\".

    Amazon SageMaker does not support Source Ip restriction for worker portals in VPC.

    Use OidcConfig to update the configuration of a workforce created using your own OIDC IdP.

    You can only update your OIDC IdP configuration when there are no work teams associated with your workforce. You can delete work teams using the operation.

    After restricting access to a range of IP addresses or updating your OIDC IdP configuration with this operation, you can view details about your update workforce using the operation.

    This operation only applies to private workforces.

    " }, "UpdateWorkteam":{ "name":"UpdateWorkteam", @@ -4232,7 +4259,8 @@ "ml.g5.16xlarge", "ml.g5.12xlarge", "ml.g5.24xlarge", - "ml.g5.48xlarge" + "ml.g5.48xlarge", + "ml.geospatial.interactive" ] }, "AppList":{ @@ -4531,13 +4559,16 @@ "ErrorTopic":{ "shape":"SnsTopicArn", "documentation":"

    Amazon SNS topic to post a notification to when inference fails. If no topic is provided, no notification is sent on failure.

    " + }, + "IncludeInferenceResponseIn":{ + "shape":"AsyncNotificationTopicTypeList", + "documentation":"

    The Amazon SNS topics where you want the inference response to be included.

    " } }, "documentation":"

    Specifies the configuration for notifications of inference results for asynchronous inference.

    " }, "AsyncInferenceOutputConfig":{ "type":"structure", - "required":["S3OutputPath"], "members":{ "KmsKeyId":{ "shape":"KmsKeyId", @@ -4550,10 +4581,27 @@ "NotificationConfig":{ "shape":"AsyncInferenceNotificationConfig", "documentation":"

    Specifies the configuration for notifications of inference results for asynchronous inference.

    " + }, + "S3FailurePath":{ + "shape":"DestinationS3Uri", + "documentation":"

    The Amazon S3 location to upload failure inference responses to.

    " } }, "documentation":"

    Specifies the configuration for asynchronous inference invocation outputs.

    " }, + "AsyncNotificationTopicTypeList":{ + "type":"list", + "member":{"shape":"AsyncNotificationTopicTypes"}, + "max":2, + "min":0 + }, + "AsyncNotificationTopicTypes":{ + "type":"string", + "enum":[ + "SUCCESS_NOTIFICATION_TOPIC", + "ERROR_NOTIFICATION_TOPIC" + ] + }, "AthenaCatalog":{ "type":"string", "documentation":"

    The name of the data catalog used in Athena query execution.

    ", @@ -4648,6 +4696,41 @@ ] }, "AutoGenerateEndpointName":{"type":"boolean"}, + "AutoMLAlgorithm":{ + "type":"string", + "enum":[ + "xgboost", + "linear-learner", + "mlp", + "lightgbm", + "catboost", + "randomforest", + "extra-trees", + "nn-torch", + "fastai" + ] + }, + "AutoMLAlgorithmConfig":{ + "type":"structure", + "required":["AutoMLAlgorithms"], + "members":{ + "AutoMLAlgorithms":{ + "shape":"AutoMLAlgorithms", + "documentation":"

    The selection of algorithms run on a dataset to train the model candidates of an Autopilot job.

    Selected algorithms must belong to the list corresponding to the training mode set in AutoMLJobConfig.Mode (ENSEMBLING or HYPERPARAMETER_TUNING). Choose a minimum of 1 algorithm.

    • In ENSEMBLING mode:

      • \"catboost\"

      • \"extra-trees\"

      • \"fastai\"

      • \"lightgbm\"

      • \"linear-learner\"

      • \"nn-torch\"

      • \"randomforest\"

      • \"xgboost\"

    • In HYPERPARAMETER_TUNING mode:

      • \"linear-learner\"

      • \"mlp\"

      • \"xgboost\"

    " + } + }, + "documentation":"

    The collection of algorithms run on a dataset for training the model candidates of an Autopilot job.

    " + }, + "AutoMLAlgorithms":{ + "type":"list", + "member":{"shape":"AutoMLAlgorithm"}, + "max":11 + }, + "AutoMLAlgorithmsConfig":{ + "type":"list", + "member":{"shape":"AutoMLAlgorithmConfig"}, + "max":1 + }, "AutoMLCandidate":{ "type":"structure", "required":[ @@ -4678,7 +4761,7 @@ }, "InferenceContainers":{ "shape":"AutoMLContainerDefinitions", - "documentation":"

    Information about the inference container definitions.

    " + "documentation":"

    Information about the recommended inference container definitions.

    " }, "CreationTime":{ "shape":"Timestamp", @@ -4699,6 +4782,10 @@ "CandidateProperties":{ "shape":"CandidateProperties", "documentation":"

    The properties of an AutoML candidate job.

    " + }, + "InferenceContainerDefinitions":{ + "shape":"AutoMLInferenceContainerDefinitions", + "documentation":"

    The mapping of all supported processing unit (CPU, GPU, etc...) to inference container definitions for the candidate. This field is populated for the V2 API only (for example, for jobs created by calling CreateAutoMLJobV2).

    " } }, "documentation":"

    Information about a candidate produced by an AutoML training job, including its status, steps, and other properties.

    " @@ -4708,10 +4795,14 @@ "members":{ "FeatureSpecificationS3Uri":{ "shape":"S3Uri", - "documentation":"

    A URL to the Amazon S3 data source containing selected features from the input data source to run an Autopilot job. You can input FeatureAttributeNames (optional) in JSON format as shown below:

    { \"FeatureAttributeNames\":[\"col1\", \"col2\", ...] }.

    You can also specify the data type of the feature (optional) in the format shown below:

    { \"FeatureDataTypes\":{\"col1\":\"numeric\", \"col2\":\"categorical\" ... } }

    These column keys may not include the target column.

    In ensembling mode, Autopilot will only support the following data types: numeric, categorical, text and datetime. In HPO mode, Autopilot can support numeric, categorical, text, datetime and sequence.

    If only FeatureDataTypes is provided, the column keys (col1, col2,..) should be a subset of the column names in the input data.

    If both FeatureDataTypes and FeatureAttributeNames are provided, then the column keys should be a subset of the column names provided in FeatureAttributeNames.

    The key name FeatureAttributeNames is fixed. The values listed in [\"col1\", \"col2\", ...] is case sensitive and should be a list of strings containing unique values that are a subset of the column names in the input data. The list of columns provided must not include the target column.

    " + "documentation":"

    A URL to the Amazon S3 data source containing selected features from the input data source to run an Autopilot job. You can input FeatureAttributeNames (optional) in JSON format as shown below:

    { \"FeatureAttributeNames\":[\"col1\", \"col2\", ...] }.

    You can also specify the data type of the feature (optional) in the format shown below:

    { \"FeatureDataTypes\":{\"col1\":\"numeric\", \"col2\":\"categorical\" ... } }

    These column keys may not include the target column.

    In ensembling mode, Autopilot only supports the following data types: numeric, categorical, text, and datetime. In HPO mode, Autopilot can support numeric, categorical, text, datetime, and sequence.

    If only FeatureDataTypes is provided, the column keys (col1, col2,..) should be a subset of the column names in the input data.

    If both FeatureDataTypes and FeatureAttributeNames are provided, then the column keys should be a subset of the column names provided in FeatureAttributeNames.

    The key name FeatureAttributeNames is fixed. The values listed in [\"col1\", \"col2\", ...] are case sensitive and should be a list of strings containing unique values that are a subset of the column names in the input data. The list of columns provided must not include the target column.

    " + }, + "AlgorithmsConfig":{ + "shape":"AutoMLAlgorithmsConfig", + "documentation":"

    Stores the configuration information for the selection of algorithms used to train the model candidates.

    The list of available algorithms to choose from depends on the training mode set in AutoMLJobConfig.Mode .

    • AlgorithmsConfig should not be set in AUTO training mode.

    • When AlgorithmsConfig is provided, one AutoMLAlgorithms attribute must be set and one only.

      If the list of algorithms provided as values for AutoMLAlgorithms is empty, AutoMLCandidateGenerationConfig uses the full set of algorithms for the given training mode.

    • When AlgorithmsConfig is not provided, AutoMLCandidateGenerationConfig uses the full set of algorithms for the given training mode.

    For the list of all algorithms per training mode, see AutoMLAlgorithmConfig.

    For more information on each algorithm, see the Algorithm support section in Autopilot developer guide.

    " } }, - "documentation":"

    Stores the config information for how a candidate is generated (optional).

    " + "documentation":"

    Stores the configuration information for how a candidate is generated (optional).

    " }, "AutoMLCandidateStep":{ "type":"structure", @@ -4765,10 +4856,10 @@ }, "ChannelType":{ "shape":"AutoMLChannelType", - "documentation":"

    The channel type (optional) is an enum string. The default value is training. Channels for training and validation must share the same ContentType and TargetAttributeName. For information on specifying training and validation channel types, see How to specify training and validation datasets .

    " + "documentation":"

    The channel type (optional) is an enum string. The default value is training. Channels for training and validation must share the same ContentType and TargetAttributeName. For information on specifying training and validation channel types, see How to specify training and validation datasets.

    " } }, - "documentation":"

    A channel is a named input source that training algorithms can consume. The validation dataset size is limited to less than 2 GB. The training dataset size must be less than 100 GB. For more information, see .

    A validation dataset must contain the same headers as the training dataset.

    " + "documentation":"

    A channel is a named input source that training algorithms can consume. The validation dataset size is limited to less than 2 GB. The training dataset size must be less than 100 GB. For more information, see Channel.

    A validation dataset must contain the same headers as the training dataset.

    " }, "AutoMLChannelType":{ "type":"string", @@ -4786,18 +4877,18 @@ "members":{ "Image":{ "shape":"ContainerImage", - "documentation":"

    The Amazon Elastic Container Registry (Amazon ECR) path of the container. For more information, see .

    " + "documentation":"

    The Amazon Elastic Container Registry (Amazon ECR) path of the container. For more information, see ContainerDefinition.

    " }, "ModelDataUrl":{ "shape":"Url", - "documentation":"

    The location of the model artifacts. For more information, see .

    " + "documentation":"

    The location of the model artifacts. For more information, see ContainerDefinition.

    " }, "Environment":{ "shape":"EnvironmentMap", - "documentation":"

    The environment variables to set in the container. For more information, see .

    " + "documentation":"

    The environment variables to set in the container. For more information, see ContainerDefinition.

    " } }, - "documentation":"

    A list of container definitions that describe the different containers that make up an AutoML candidate. For more information, see .

    " + "documentation":"

    A list of container definitions that describe the different containers that make up an AutoML candidate. For more information, see ContainerDefinition.

    " }, "AutoMLContainerDefinitions":{ "type":"list", @@ -4823,12 +4914,25 @@ "documentation":"

    The validation fraction (optional) is a float that specifies the portion of the training dataset to be used for validation. The default value is 0.2, and values must be greater than 0 and less than 1. We recommend setting this value to be less than 0.5.

    " } }, - "documentation":"

    This structure specifies how to split the data into train and validation datasets. The validation and training datasets must contain the same headers. The validation dataset must be less than 2 GB in size.

    " + "documentation":"

    This structure specifies how to split the data into train and validation datasets.

    If you are using the V1 API (for example CreateAutoMLJob) or the V2 API for Natural Language Processing problems (for example CreateAutoMLJobV2 with a TextClassificationJobConfig problem type), the validation and training datasets must contain the same headers. Also, for V1 API jobs, the validation dataset must be less than 2 GB in size.

    " }, "AutoMLFailureReason":{ "type":"string", "max":1024 }, + "AutoMLInferenceContainerDefinitions":{ + "type":"map", + "key":{ + "shape":"AutoMLProcessingUnit", + "documentation":"

    Processing unit for an inference container. Currently Autopilot only supports CPU or GPU.

    " + }, + "value":{ + "shape":"AutoMLContainerDefinitions", + "documentation":"

    Information about the recommended inference container definitions.

    " + }, + "documentation":"

    The mapping of all supported processing unit (CPU, GPU, etc...) to inference container definitions for the candidate. This field is populated for the V2 API only (for example, for jobs created by calling CreateAutoMLJobV2).

    ", + "max":2 + }, "AutoMLInputDataConfig":{ "type":"list", "member":{"shape":"AutoMLChannel"}, @@ -4855,20 +4959,42 @@ }, "documentation":"

    The artifacts that are generated during an AutoML job.

    " }, + "AutoMLJobChannel":{ + "type":"structure", + "members":{ + "ChannelType":{ + "shape":"AutoMLChannelType", + "documentation":"

    The type of channel. Defines whether the data are used for training or validation. The default value is training. Channels for training and validation must share the same ContentType

    " + }, + "ContentType":{ + "shape":"ContentType", + "documentation":"

    The content type of the data from the input source. The following are the allowed content types for different problems:

    • ImageClassification: image/png, image/jpeg, image/*

    • TextClassification: text/csv;header=present

    " + }, + "CompressionType":{ + "shape":"CompressionType", + "documentation":"

    The allowed compression types depend on the input format. We allow the compression type Gzip for S3Prefix inputs only. For all other inputs, the compression type should be None. If no compression type is provided, we default to None.

    " + }, + "DataSource":{ + "shape":"AutoMLDataSource", + "documentation":"

    The data source for an AutoML channel.

    " + } + }, + "documentation":"

    A channel is a named input source that training algorithms can consume. This channel is used for the non tabular training data of an AutoML job using the V2 API. For tabular training data, see AutoMLChannel. For more information, see Channel.

    " + }, "AutoMLJobCompletionCriteria":{ "type":"structure", "members":{ "MaxCandidates":{ "shape":"MaxCandidates", - "documentation":"

    The maximum number of times a training job is allowed to run.

    " + "documentation":"

    The maximum number of times a training job is allowed to run.

    For V2 jobs (jobs created by calling CreateAutoMLJobV2), the supported value is 1.

    " }, "MaxRuntimePerTrainingJobInSeconds":{ "shape":"MaxRuntimePerTrainingJobInSeconds", - "documentation":"

    The maximum time, in seconds, that each training job executed inside hyperparameter tuning is allowed to run as part of a hyperparameter tuning job. For more information, see the used by the action.

    " + "documentation":"

    The maximum time, in seconds, that each training job executed inside hyperparameter tuning is allowed to run as part of a hyperparameter tuning job. For more information, see the StoppingCondition used by the CreateHyperParameterTuningJob action.

    For V2 jobs (jobs created by calling CreateAutoMLJobV2), this field controls the runtime of the job candidate.

    " }, "MaxAutoMLJobRuntimeInSeconds":{ "shape":"MaxAutoMLJobRuntimeInSeconds", - "documentation":"

    The maximum runtime, in seconds, an AutoML job has to complete.

    If an AutoML job exceeds the maximum runtime, the job is stopped automatically and its processing is ended gracefully. The AutoML job identifies the best model whose training was completed and marks it as the best-performing model. Any unfinished steps of the job, such as automatic one-click Autopilot model deployment, will not be completed.

    " + "documentation":"

    The maximum runtime, in seconds, an AutoML job has to complete.

    If an AutoML job exceeds the maximum runtime, the job is stopped automatically and its processing is ended gracefully. The AutoML job identifies the best model whose training was completed and marks it as the best-performing model. Any unfinished steps of the job, such as automatic one-click Autopilot model deployment, are not completed.

    " } }, "documentation":"

    How long a job is allowed to run, or how many candidates a job is allowed to generate.

    " @@ -4894,11 +5020,17 @@ }, "Mode":{ "shape":"AutoMLMode", - "documentation":"

    The method that Autopilot uses to train the data. You can either specify the mode manually or let Autopilot choose for you based on the dataset size by selecting AUTO. In AUTO mode, Autopilot chooses ENSEMBLING for datasets smaller than 100 MB, and HYPERPARAMETER_TUNING for larger ones.

    The ENSEMBLING mode uses a multi-stack ensemble model to predict classification and regression tasks directly from your dataset. This machine learning mode combines several base models to produce an optimal predictive model. It then uses a stacking ensemble method to combine predictions from contributing members. A multi-stack ensemble model can provide better performance over a single model by combining the predictive capabilities of multiple models. See Autopilot algorithm support for a list of algorithms supported by ENSEMBLING mode.

    The HYPERPARAMETER_TUNING (HPO) mode uses the best hyperparameters to train the best version of a model. HPO will automatically select an algorithm for the type of problem you want to solve. Then HPO finds the best hyperparameters according to your objective metric. See Autopilot algorithm support for a list of algorithms supported by HYPERPARAMETER_TUNING mode.

    " + "documentation":"

    The method that Autopilot uses to train the data. You can either specify the mode manually or let Autopilot choose for you based on the dataset size by selecting AUTO. In AUTO mode, Autopilot chooses ENSEMBLING for datasets smaller than 100 MB, and HYPERPARAMETER_TUNING for larger ones.

    The ENSEMBLING mode uses a multi-stack ensemble model to predict classification and regression tasks directly from your dataset. This machine learning mode combines several base models to produce an optimal predictive model. It then uses a stacking ensemble method to combine predictions from contributing members. A multi-stack ensemble model can provide better performance over a single model by combining the predictive capabilities of multiple models. See Autopilot algorithm support for a list of algorithms supported by ENSEMBLING mode.

    The HYPERPARAMETER_TUNING (HPO) mode uses the best hyperparameters to train the best version of a model. HPO automatically selects an algorithm for the type of problem you want to solve. Then HPO finds the best hyperparameters according to your objective metric. See Autopilot algorithm support for a list of algorithms supported by HYPERPARAMETER_TUNING mode.

    " } }, "documentation":"

    A collection of settings used for an AutoML job.

    " }, + "AutoMLJobInputDataConfig":{ + "type":"list", + "member":{"shape":"AutoMLJobChannel"}, + "max":2, + "min":1 + }, "AutoMLJobName":{ "type":"string", "max":32, @@ -4911,10 +5043,10 @@ "members":{ "MetricName":{ "shape":"AutoMLMetricEnum", - "documentation":"

    The name of the objective metric used to measure the predictive quality of a machine learning system. This metric is optimized during training to provide the best estimate for model parameter values from data.

    Here are the options:

    Accuracy

    The ratio of the number of correctly classified items to the total number of (correctly and incorrectly) classified items. It is used for both binary and multiclass classification. Accuracy measures how close the predicted class values are to the actual values. Values for accuracy metrics vary between zero (0) and one (1). A value of 1 indicates perfect accuracy, and 0 indicates perfect inaccuracy.

    AUC

    The area under the curve (AUC) metric is used to compare and evaluate binary classification by algorithms that return probabilities, such as logistic regression. To map the probabilities into classifications, these are compared against a threshold value.

    The relevant curve is the receiver operating characteristic curve (ROC curve). The ROC curve plots the true positive rate (TPR) of predictions (or recall) against the false positive rate (FPR) as a function of the threshold value, above which a prediction is considered positive. Increasing the threshold results in fewer false positives, but more false negatives.

    AUC is the area under this ROC curve. Therefore, AUC provides an aggregated measure of the model performance across all possible classification thresholds. AUC scores vary between 0 and 1. A score of 1 indicates perfect accuracy, and a score of one half (0.5) indicates that the prediction is not better than a random classifier.

    BalancedAccuracy

    BalancedAccuracy is a metric that measures the ratio of accurate predictions to all predictions. This ratio is calculated after normalizing true positives (TP) and true negatives (TN) by the total number of positive (P) and negative (N) values. It is used in both binary and multiclass classification and is defined as follows: 0.5*((TP/P)+(TN/N)), with values ranging from 0 to 1. BalancedAccuracy gives a better measure of accuracy when the number of positives or negatives differ greatly from each other in an imbalanced dataset. For example, when only 1% of email is spam.

    F1

    The F1 score is the harmonic mean of the precision and recall, defined as follows: F1 = 2 * (precision * recall) / (precision + recall). It is used for binary classification into classes traditionally referred to as positive and negative. Predictions are said to be true when they match their actual (correct) class, and false when they do not.

    Precision is the ratio of the true positive predictions to all positive predictions, and it includes the false positives in a dataset. Precision measures the quality of the prediction when it predicts the positive class.

    Recall (or sensitivity) is the ratio of the true positive predictions to all actual positive instances. Recall measures how completely a model predicts the actual class members in a dataset.

    F1 scores vary between 0 and 1. A score of 1 indicates the best possible performance, and 0 indicates the worst.

    F1macro

    The F1macro score applies F1 scoring to multiclass classification problems. It does this by calculating the precision and recall, and then taking their harmonic mean to calculate the F1 score for each class. Lastly, the F1macro averages the individual scores to obtain the F1macro score. F1macro scores vary between 0 and 1. A score of 1 indicates the best possible performance, and 0 indicates the worst.

    MAE

    The mean absolute error (MAE) is a measure of how different the predicted and actual values are, when they're averaged over all values. MAE is commonly used in regression analysis to understand model prediction error. If there is linear regression, MAE represents the average distance from a predicted line to the actual value. MAE is defined as the sum of absolute errors divided by the number of observations. Values range from 0 to infinity, with smaller numbers indicating a better model fit to the data.

    MSE

    The mean squared error (MSE) is the average of the squared differences between the predicted and actual values. It is used for regression. MSE values are always positive. The better a model is at predicting the actual values, the smaller the MSE value is

    Precision

    Precision measures how well an algorithm predicts the true positives (TP) out of all of the positives that it identifies. It is defined as follows: Precision = TP/(TP+FP), with values ranging from zero (0) to one (1), and is used in binary classification. Precision is an important metric when the cost of a false positive is high. For example, the cost of a false positive is very high if an airplane safety system is falsely deemed safe to fly. A false positive (FP) reflects a positive prediction that is actually negative in the data.

    PrecisionMacro

    The precision macro computes precision for multiclass classification problems. It does this by calculating precision for each class and averaging scores to obtain precision for several classes. PrecisionMacro scores range from zero (0) to one (1). Higher scores reflect the model's ability to predict true positives (TP) out of all of the positives that it identifies, averaged across multiple classes.

    R2

    R2, also known as the coefficient of determination, is used in regression to quantify how much a model can explain the variance of a dependent variable. Values range from one (1) to negative one (-1). Higher numbers indicate a higher fraction of explained variability. R2 values close to zero (0) indicate that very little of the dependent variable can be explained by the model. Negative values indicate a poor fit and that the model is outperformed by a constant function. For linear regression, this is a horizontal line.

    Recall

    Recall measures how well an algorithm correctly predicts all of the true positives (TP) in a dataset. A true positive is a positive prediction that is also an actual positive value in the data. Recall is defined as follows: Recall = TP/(TP+FN), with values ranging from 0 to 1. Higher scores reflect a better ability of the model to predict true positives (TP) in the data, and is used in binary classification.

    Recall is important when testing for cancer because it's used to find all of the true positives. A false positive (FP) reflects a positive prediction that is actually negative in the data. It is often insufficient to measure only recall, because predicting every output as a true positive will yield a perfect recall score.

    RecallMacro

    The RecallMacro computes recall for multiclass classification problems by calculating recall for each class and averaging scores to obtain recall for several classes. RecallMacro scores range from 0 to 1. Higher scores reflect the model's ability to predict true positives (TP) in a dataset. Whereas, a true positive reflects a positive prediction that is also an actual positive value in the data. It is often insufficient to measure only recall, because predicting every output as a true positive will yield a perfect recall score.

    RMSE

    Root mean squared error (RMSE) measures the square root of the squared difference between predicted and actual values, and it's averaged over all values. It is used in regression analysis to understand model prediction error. It's an important metric to indicate the presence of large model errors and outliers. Values range from zero (0) to infinity, with smaller numbers indicating a better model fit to the data. RMSE is dependent on scale, and should not be used to compare datasets of different sizes.

    If you do not specify a metric explicitly, the default behavior is to automatically use:

    • MSE: for regression.

    • F1: for binary classification

    • Accuracy: for multiclass classification.

    " + "documentation":"

    The name of the objective metric used to measure the predictive quality of a machine learning system. This metric is optimized during training to provide the best estimate for model parameter values from data.

    Here are the options:

    Accuracy

    The ratio of the number of correctly classified items to the total number of (correctly and incorrectly) classified items. It is used for both binary and multiclass classification. Accuracy measures how close the predicted class values are to the actual values. Values for accuracy metrics vary between zero (0) and one (1). A value of 1 indicates perfect accuracy, and 0 indicates perfect inaccuracy.

    AUC

    The area under the curve (AUC) metric is used to compare and evaluate binary classification by algorithms that return probabilities, such as logistic regression. To map the probabilities into classifications, these are compared against a threshold value.

    The relevant curve is the receiver operating characteristic curve (ROC curve). The ROC curve plots the true positive rate (TPR) of predictions (or recall) against the false positive rate (FPR) as a function of the threshold value, above which a prediction is considered positive. Increasing the threshold results in fewer false positives, but more false negatives.

    AUC is the area under this ROC curve. Therefore, AUC provides an aggregated measure of the model performance across all possible classification thresholds. AUC scores vary between 0 and 1. A score of 1 indicates perfect accuracy, and a score of one half (0.5) indicates that the prediction is not better than a random classifier.

    BalancedAccuracy

    BalancedAccuracy is a metric that measures the ratio of accurate predictions to all predictions. This ratio is calculated after normalizing true positives (TP) and true negatives (TN) by the total number of positive (P) and negative (N) values. It is used in both binary and multiclass classification and is defined as follows: 0.5*((TP/P)+(TN/N)), with values ranging from 0 to 1. BalancedAccuracy gives a better measure of accuracy when the number of positives or negatives differ greatly from each other in an imbalanced dataset. For example, when only 1% of email is spam.

    F1

    The F1 score is the harmonic mean of the precision and recall, defined as follows: F1 = 2 * (precision * recall) / (precision + recall). It is used for binary classification into classes traditionally referred to as positive and negative. Predictions are said to be true when they match their actual (correct) class, and false when they do not.

    Precision is the ratio of the true positive predictions to all positive predictions, and it includes the false positives in a dataset. Precision measures the quality of the prediction when it predicts the positive class.

    Recall (or sensitivity) is the ratio of the true positive predictions to all actual positive instances. Recall measures how completely a model predicts the actual class members in a dataset.

    F1 scores vary between 0 and 1. A score of 1 indicates the best possible performance, and 0 indicates the worst.

    F1macro

    The F1macro score applies F1 scoring to multiclass classification problems. It does this by calculating the precision and recall, and then taking their harmonic mean to calculate the F1 score for each class. Lastly, the F1macro averages the individual scores to obtain the F1macro score. F1macro scores vary between 0 and 1. A score of 1 indicates the best possible performance, and 0 indicates the worst.

    MAE

    The mean absolute error (MAE) is a measure of how different the predicted and actual values are, when they're averaged over all values. MAE is commonly used in regression analysis to understand model prediction error. If there is linear regression, MAE represents the average distance from a predicted line to the actual value. MAE is defined as the sum of absolute errors divided by the number of observations. Values range from 0 to infinity, with smaller numbers indicating a better model fit to the data.

    MSE

    The mean squared error (MSE) is the average of the squared differences between the predicted and actual values. It is used for regression. MSE values are always positive. The better a model is at predicting the actual values, the smaller the MSE value is

    Precision

    Precision measures how well an algorithm predicts the true positives (TP) out of all of the positives that it identifies. It is defined as follows: Precision = TP/(TP+FP), with values ranging from zero (0) to one (1), and is used in binary classification. Precision is an important metric when the cost of a false positive is high. For example, the cost of a false positive is very high if an airplane safety system is falsely deemed safe to fly. A false positive (FP) reflects a positive prediction that is actually negative in the data.

    PrecisionMacro

    The precision macro computes precision for multiclass classification problems. It does this by calculating precision for each class and averaging scores to obtain precision for several classes. PrecisionMacro scores range from zero (0) to one (1). Higher scores reflect the model's ability to predict true positives (TP) out of all of the positives that it identifies, averaged across multiple classes.

    R2

    R2, also known as the coefficient of determination, is used in regression to quantify how much a model can explain the variance of a dependent variable. Values range from one (1) to negative one (-1). Higher numbers indicate a higher fraction of explained variability. R2 values close to zero (0) indicate that very little of the dependent variable can be explained by the model. Negative values indicate a poor fit and that the model is outperformed by a constant function. For linear regression, this is a horizontal line.

    Recall

    Recall measures how well an algorithm correctly predicts all of the true positives (TP) in a dataset. A true positive is a positive prediction that is also an actual positive value in the data. Recall is defined as follows: Recall = TP/(TP+FN), with values ranging from 0 to 1. Higher scores reflect a better ability of the model to predict true positives (TP) in the data, and is used in binary classification.

    Recall is important when testing for cancer because it's used to find all of the true positives. A false positive (FP) reflects a positive prediction that is actually negative in the data. It is often insufficient to measure only recall, because predicting every output as a true positive yield a perfect recall score.

    RecallMacro

    The RecallMacro computes recall for multiclass classification problems by calculating recall for each class and averaging scores to obtain recall for several classes. RecallMacro scores range from 0 to 1. Higher scores reflect the model's ability to predict true positives (TP) in a dataset. Whereas, a true positive reflects a positive prediction that is also an actual positive value in the data. It is often insufficient to measure only recall, because predicting every output as a true positive yields a perfect recall score.

    RMSE

    Root mean squared error (RMSE) measures the square root of the squared difference between predicted and actual values, and it's averaged over all values. It is used in regression analysis to understand model prediction error. It's an important metric to indicate the presence of large model errors and outliers. Values range from zero (0) to infinity, with smaller numbers indicating a better model fit to the data. RMSE is dependent on scale, and should not be used to compare datasets of different sizes.

    If you do not specify a metric explicitly, the default behavior is to automatically use:

    • MSE: for regression.

    • F1: for binary classification

    • Accuracy: for multiclass classification.

    " } }, - "documentation":"

    Specifies a metric to minimize or maximize as the objective of a job.

    " + "documentation":"

    Specifies a metric to minimize or maximize as the objective of a job. V2 API jobs (for example jobs created by calling CreateAutoMLJobV2), support Accuracy only.

    " }, "AutoMLJobObjectiveType":{ "type":"string", @@ -4942,7 +5074,8 @@ "DeployingModel", "ModelDeploymentError", "GeneratingModelInsightsReport", - "ModelInsightsError" + "ModelInsightsError", + "TrainingModels" ] }, "AutoMLJobStatus":{ @@ -5106,6 +5239,28 @@ "max":5, "min":1 }, + "AutoMLProblemTypeConfig":{ + "type":"structure", + "members":{ + "ImageClassificationJobConfig":{ + "shape":"ImageClassificationJobConfig", + "documentation":"

    Settings used to configure an AutoML job using the V2 API for the image classification problem type.

    " + }, + "TextClassificationJobConfig":{ + "shape":"TextClassificationJobConfig", + "documentation":"

    Settings used to configure an AutoML job using the V2 API for the text classification problem type.

    " + } + }, + "documentation":"

    A collection of settings specific to the problem type used to configure an AutoML job using the V2 API. There must be one and only one config of the following type.

    ", + "union":true + }, + "AutoMLProcessingUnit":{ + "type":"string", + "enum":[ + "CPU", + "GPU" + ] + }, "AutoMLS3DataSource":{ "type":"structure", "required":[ @@ -5115,20 +5270,21 @@ "members":{ "S3DataType":{ "shape":"AutoMLS3DataType", - "documentation":"

    The data type.

    A ManifestFile should have the format shown below:

    [ {\"prefix\": \"s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/DOC-EXAMPLE-PREFIX/\"},

    \"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-1\",

    \"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-2\",

    ... \"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-N\" ]

    An S3Prefix should have the following format:

    s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER-OR-FILE

    " + "documentation":"

    The data type.

    • If you choose S3Prefix, S3Uri identifies a key name prefix. SageMaker uses all objects that match the specified key name prefix for model training.

      The S3Prefix should have the following format:

      s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER-OR-FILE

    • If you choose ManifestFile, S3Uri identifies an object that is a manifest file containing a list of object keys that you want SageMaker to use for model training.

      A ManifestFile should have the format shown below:

      [ {\"prefix\": \"s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/DOC-EXAMPLE-PREFIX/\"},

      \"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-1\",

      \"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-2\",

      ... \"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-N\" ]

    • If you choose AugmentedManifestFile, S3Uri identifies an object that is an augmented manifest file in JSON lines format. This file contains the data you want to use for model training. AugmentedManifestFile is available for V2 API jobs only (for example, for jobs created by calling CreateAutoMLJobV2).

      Here is a minimal, single-record example of an AugmentedManifestFile:

      {\"source-ref\": \"s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/cats/cat.jpg\",

      \"label-metadata\": {\"class-name\": \"cat\" }

      For more information on AugmentedManifestFile, see Provide Dataset Metadata to Training Jobs with an Augmented Manifest File.

    " }, "S3Uri":{ "shape":"S3Uri", - "documentation":"

    The URL to the Amazon S3 data source.

    " + "documentation":"

    The URL to the Amazon S3 data source. The Uri refers to the Amazon S3 prefix or ManifestFile depending on the data type.

    " } }, - "documentation":"

    The Amazon S3 data source.

    " + "documentation":"

    Describes the Amazon S3 data source.

    " }, "AutoMLS3DataType":{ "type":"string", "enum":[ "ManifestFile", - "S3Prefix" + "S3Prefix", + "AugmentedManifestFile" ] }, "AutoMLSecurityConfig":{ @@ -6498,11 +6654,11 @@ }, "Image":{ "shape":"ContainerImage", - "documentation":"

    The path where inference code is stored. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint. If you are using your own custom algorithm instead of an algorithm provided by SageMaker, the inference code must meet SageMaker requirements. SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see Using Your Own Algorithms with Amazon SageMaker

    " + "documentation":"

    The path where inference code is stored. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint. If you are using your own custom algorithm instead of an algorithm provided by SageMaker, the inference code must meet SageMaker requirements. SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see Using Your Own Algorithms with Amazon SageMaker.

    The model artifacts in an Amazon S3 bucket and the Docker image for inference container in Amazon EC2 Container Registry must be in the same region as the model or endpoint you are creating.

    " }, "ImageConfig":{ "shape":"ImageConfig", - "documentation":"

    Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). For information about storing containers in a private Docker registry, see Use a Private Docker Registry for Real-Time Inference Containers

    " + "documentation":"

    Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). For information about storing containers in a private Docker registry, see Use a Private Docker Registry for Real-Time Inference Containers.

    The model artifacts in an Amazon S3 bucket and the Docker image for inference container in Amazon EC2 Container Registry must be in the same region as the model or endpoint you are creating.

    " }, "Mode":{ "shape":"ContainerMode", @@ -6510,7 +6666,7 @@ }, "ModelDataUrl":{ "shape":"Url", - "documentation":"

    The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). The S3 path is required for SageMaker built-in algorithms, but not if you use your own algorithms. For more information on built-in algorithms, see Common Parameters.

    The model artifacts must be in an S3 bucket that is in the same region as the model or endpoint you are creating.

    If you provide a value for this parameter, SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you provide. Amazon Web Services STS is activated in your IAM user account by default. If you previously deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For more information, see Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region in the Amazon Web Services Identity and Access Management User Guide.

    If you use a built-in algorithm to create a model, SageMaker requires that you provide a S3 path to the model artifacts in ModelDataUrl.

    " + "documentation":"

    The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). The S3 path is required for SageMaker built-in algorithms, but not if you use your own algorithms. For more information on built-in algorithms, see Common Parameters.

    The model artifacts must be in an S3 bucket that is in the same region as the model or endpoint you are creating.

    If you provide a value for this parameter, SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you provide. Amazon Web Services STS is activated in your Amazon Web Services account by default. If you previously deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For more information, see Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region in the Amazon Web Services Identity and Access Management User Guide.

    If you use a built-in algorithm to create a model, SageMaker requires that you provide a S3 path to the model artifacts in ModelDataUrl.

    " }, "Environment":{ "shape":"EnvironmentMap", @@ -6576,6 +6732,11 @@ "member":{"shape":"ContentClassifier"}, "max":256 }, + "ContentColumn":{ + "type":"string", + "max":256, + "min":1 + }, "ContentDigest":{ "type":"string", "max":72, @@ -6928,11 +7089,11 @@ "members":{ "AutoMLJobName":{ "shape":"AutoMLJobName", - "documentation":"

    Identifies an Autopilot job. The name must be unique to your account and is case-insensitive.

    " + "documentation":"

    Identifies an Autopilot job. The name must be unique to your account and is case insensitive.

    " }, "InputDataConfig":{ "shape":"AutoMLInputDataConfig", - "documentation":"

    An array of channel objects that describes the input data and its location. Each channel is a named input source. Similar to InputDataConfig supported by . Format(s) supported: CSV, Parquet. A minimum of 500 rows is required for the training dataset. There is not a minimum number of rows required for the validation dataset.

    " + "documentation":"

    An array of channel objects that describes the input data and its location. Each channel is a named input source. Similar to InputDataConfig supported by HyperParameterTrainingJobDefinition. Format(s) supported: CSV, Parquet. A minimum of 500 rows is required for the training dataset. There is not a minimum number of rows required for the validation dataset.

    " }, "OutputDataConfig":{ "shape":"AutoMLOutputDataConfig", @@ -6940,11 +7101,11 @@ }, "ProblemType":{ "shape":"ProblemType", - "documentation":"

    Defines the type of supervised learning available for the candidates. For more information, see Amazon SageMaker Autopilot problem types and algorithm support.

    " + "documentation":"

    Defines the type of supervised learning problem available for the candidates. For more information, see Amazon SageMaker Autopilot problem types.

    " }, "AutoMLJobObjective":{ "shape":"AutoMLJobObjective", - "documentation":"

    Defines the objective metric used to measure the predictive quality of an AutoML job. You provide an AutoMLJobObjective$MetricName and Autopilot infers whether to minimize or maximize it.

    " + "documentation":"

    Defines the objective metric used to measure the predictive quality of an AutoML job. You provide an AutoMLJobObjective$MetricName and Autopilot infers whether to minimize or maximize it. For CreateAutoMLJobV2, only Accuracy is supported.

    " }, "AutoMLJobConfig":{ "shape":"AutoMLJobConfig", @@ -6960,7 +7121,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

    Each tag consists of a key and an optional value. Tag keys must be unique per resource.

    " + "documentation":"

    An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web ServicesResources. Tag keys must be unique per resource.

    " }, "ModelDeployConfig":{ "shape":"ModelDeployConfig", @@ -6978,6 +7139,68 @@ } } }, + "CreateAutoMLJobV2Request":{ + "type":"structure", + "required":[ + "AutoMLJobName", + "AutoMLJobInputDataConfig", + "OutputDataConfig", + "AutoMLProblemTypeConfig", + "RoleArn" + ], + "members":{ + "AutoMLJobName":{ + "shape":"AutoMLJobName", + "documentation":"

    Identifies an Autopilot job. The name must be unique to your account and is case insensitive.

    " + }, + "AutoMLJobInputDataConfig":{ + "shape":"AutoMLJobInputDataConfig", + "documentation":"

    An array of channel objects describing the input data and their location. Each channel is a named input source. Similar to InputDataConfig supported by CreateAutoMLJob. The supported formats depend on the problem type:

    • ImageClassification: S3Prefix, ManifestFile, AugmentedManifestFile

    • TextClassification: S3Prefix

    " + }, + "OutputDataConfig":{ + "shape":"AutoMLOutputDataConfig", + "documentation":"

    Provides information about encryption and the Amazon S3 output path needed to store artifacts from an AutoML job.

    " + }, + "AutoMLProblemTypeConfig":{ + "shape":"AutoMLProblemTypeConfig", + "documentation":"

    Defines the configuration settings of one of the supported problem types.

    " + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

    The ARN of the role that is used to access the data.

    " + }, + "Tags":{ + "shape":"TagList", + "documentation":"

    An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, such as by purpose, owner, or environment. For more information, see Tagging Amazon Web ServicesResources. Tag keys must be unique per resource.

    " + }, + "SecurityConfig":{ + "shape":"AutoMLSecurityConfig", + "documentation":"

    The security configuration for traffic encryption or Amazon VPC settings.

    " + }, + "AutoMLJobObjective":{ + "shape":"AutoMLJobObjective", + "documentation":"

    Specifies a metric to minimize or maximize as the objective of a job. For CreateAutoMLJobV2, only Accuracy is supported.

    " + }, + "ModelDeployConfig":{ + "shape":"ModelDeployConfig", + "documentation":"

    Specifies how to generate the endpoint name for an automatic one-click Autopilot model deployment.

    " + }, + "DataSplitConfig":{ + "shape":"AutoMLDataSplitConfig", + "documentation":"

    This structure specifies how to split the data into train and validation datasets.

    If you are using the V1 API (for example CreateAutoMLJob) or the V2 API for Natural Language Processing problems (for example CreateAutoMLJobV2 with a TextClassificationJobConfig problem type), the validation and training datasets must contain the same headers. Also, for V1 API jobs, the validation dataset must be less than 2 GB in size.

    " + } + } + }, + "CreateAutoMLJobV2Response":{ + "type":"structure", + "required":["AutoMLJobArn"], + "members":{ + "AutoMLJobArn":{ + "shape":"AutoMLJobArn", + "documentation":"

    The unique ARN assigned to the AutoMLJob when it is created.

    " + } + } + }, "CreateCodeRepositoryInput":{ "type":"structure", "required":[ @@ -8315,7 +8538,7 @@ }, "SamplePayloadUrl":{ "shape":"S3Uri", - "documentation":"

    The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

    " + "documentation":"

    The Amazon Simple Storage Service (Amazon S3) path where the sample payload is stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). This archive can hold multiple files that are all equally used in the load test. Each file in the archive must satisfy the size constraints of the InvokeEndpoint call.

    " }, "AdditionalInferenceSpecifications":{ "shape":"AdditionalInferenceSpecifications", @@ -10734,7 +10957,7 @@ }, "InputDataConfig":{ "shape":"AutoMLInputDataConfig", - "documentation":"

    Returns the input data configuration for the AutoML job..

    " + "documentation":"

    Returns the input data configuration for the AutoML job.

    " }, "OutputDataConfig":{ "shape":"AutoMLOutputDataConfig", @@ -10798,7 +11021,7 @@ }, "ResolvedAttributes":{ "shape":"ResolvedAttributes", - "documentation":"

    This contains ProblemType, AutoMLJobObjective, and CompletionCriteria. If you do not provide these values, they are auto-inferred. If you do provide them, the values used are the ones you provide.

    " + "documentation":"

    Contains ProblemType, AutoMLJobObjective, and CompletionCriteria. If you do not provide these values, they are auto-inferred. If you do provide them, the values used are the ones you provide.

    " }, "ModelDeployConfig":{ "shape":"ModelDeployConfig", @@ -10810,6 +11033,108 @@ } } }, + "DescribeAutoMLJobV2Request":{ + "type":"structure", + "required":["AutoMLJobName"], + "members":{ + "AutoMLJobName":{ + "shape":"AutoMLJobName", + "documentation":"

    Requests information about an AutoML V2 job using its unique name.

    " + } + } + }, + "DescribeAutoMLJobV2Response":{ + "type":"structure", + "required":[ + "AutoMLJobName", + "AutoMLJobArn", + "AutoMLJobInputDataConfig", + "OutputDataConfig", + "RoleArn", + "CreationTime", + "LastModifiedTime", + "AutoMLJobStatus", + "AutoMLJobSecondaryStatus" + ], + "members":{ + "AutoMLJobName":{ + "shape":"AutoMLJobName", + "documentation":"

    Returns the name of the AutoML V2 job.

    " + }, + "AutoMLJobArn":{ + "shape":"AutoMLJobArn", + "documentation":"

    Returns the Amazon Resource Name (ARN) of the AutoML V2 job.

    " + }, + "AutoMLJobInputDataConfig":{ + "shape":"AutoMLJobInputDataConfig", + "documentation":"

    Returns an array of channel objects describing the input data and their location.

    " + }, + "OutputDataConfig":{ + "shape":"AutoMLOutputDataConfig", + "documentation":"

    Returns the job's output data config.

    " + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

    The ARN of the Identity and Access Management role that has read permission to the input data location and write permission to the output data location in Amazon S3.

    " + }, + "AutoMLJobObjective":{ + "shape":"AutoMLJobObjective", + "documentation":"

    Returns the job's objective.

    " + }, + "AutoMLProblemTypeConfig":{ + "shape":"AutoMLProblemTypeConfig", + "documentation":"

    Returns the configuration settings of the problem type set for the AutoML V2 job.

    " + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

    Returns the creation time of the AutoML V2 job.

    " + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

    Returns the end time of the AutoML V2 job.

    " + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

    Returns the job's last modified time.

    " + }, + "FailureReason":{ + "shape":"AutoMLFailureReason", + "documentation":"

    Returns the reason for the failure of the AutoML V2 job, when applicable.

    " + }, + "PartialFailureReasons":{ + "shape":"AutoMLPartialFailureReasons", + "documentation":"

    Returns a list of reasons for partial failures within an AutoML V2 job.

    " + }, + "BestCandidate":{ + "shape":"AutoMLCandidate", + "documentation":"

    Information about the candidate produced by an AutoML training job V2, including its status, steps, and other properties.

    " + }, + "AutoMLJobStatus":{ + "shape":"AutoMLJobStatus", + "documentation":"

    Returns the status of the AutoML V2 job.

    " + }, + "AutoMLJobSecondaryStatus":{ + "shape":"AutoMLJobSecondaryStatus", + "documentation":"

    Returns the secondary status of the AutoML V2 job.

    " + }, + "ModelDeployConfig":{ + "shape":"ModelDeployConfig", + "documentation":"

    Indicates whether the model was deployed automatically to an endpoint and the name of that endpoint if deployed automatically.

    " + }, + "ModelDeployResult":{ + "shape":"ModelDeployResult", + "documentation":"

    Provides information about endpoint for the model deployment.

    " + }, + "DataSplitConfig":{ + "shape":"AutoMLDataSplitConfig", + "documentation":"

    Returns the configuration settings of how the data are split into train and validation datasets.

    " + }, + "SecurityConfig":{ + "shape":"AutoMLSecurityConfig", + "documentation":"

    Returns the security configuration for traffic encryption or Amazon VPC settings.

    " + } + } + }, "DescribeCodeRepositoryInput":{ "type":"structure", "required":["CodeRepositoryName"], @@ -11926,7 +12251,7 @@ }, "HubContentMarkdown":{ "shape":"HubContentMarkdown", - "documentation":"

    Markdown files associated with the hub content to import.

    " + "documentation":"

    A string that provides a description of the hub content. This string can include links, tables, and standard markdown formating.

    " }, "HubContentDocument":{ "shape":"HubContentDocument", @@ -15971,7 +16296,7 @@ "type":"string", "max":64, "min":1, - "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}" + "pattern":"^[a-zA-Z0-9]([_-]*[a-zA-Z0-9]){0,63}" }, "FeatureGroupNameContains":{ "type":"string", @@ -16243,7 +16568,7 @@ "documentation":"

    A value used with Name and Operator to determine which resources satisfy the filter's condition. For numerical properties, Value must be an integer or floating-point decimal. For timestamp properties, Value must be an ISO 8601 date-time string of the following format: YYYY-mm-dd'T'HH:MM:SS.

    " } }, - "documentation":"

    A conditional statement for a search expression that includes a resource property, a Boolean operator, and a value. Resources that match the statement are returned in the results from the Search API.

    If you specify a Value, but not an Operator, Amazon SageMaker uses the equals operator.

    In search, there are several property types:

    Metrics

    To define a metric filter, enter a value using the form \"Metrics.<name>\", where <name> is a metric name. For example, the following filter searches for training jobs with an \"accuracy\" metric greater than \"0.9\":

    {

    \"Name\": \"Metrics.accuracy\",

    \"Operator\": \"GreaterThan\",

    \"Value\": \"0.9\"

    }

    HyperParameters

    To define a hyperparameter filter, enter a value with the form \"HyperParameters.<name>\". Decimal hyperparameter values are treated as a decimal in a comparison if the specified Value is also a decimal value. If the specified Value is an integer, the decimal hyperparameter values are treated as integers. For example, the following filter is satisfied by training jobs with a \"learning_rate\" hyperparameter that is less than \"0.5\":

    {

    \"Name\": \"HyperParameters.learning_rate\",

    \"Operator\": \"LessThan\",

    \"Value\": \"0.5\"

    }

    Tags

    To define a tag filter, enter a value with the form Tags.<key>.

    " + "documentation":"

    A conditional statement for a search expression that includes a resource property, a Boolean operator, and a value. Resources that match the statement are returned in the results from the Search API.

    If you specify a Value, but not an Operator, SageMaker uses the equals operator.

    In search, there are several property types:

    Metrics

    To define a metric filter, enter a value using the form \"Metrics.<name>\", where <name> is a metric name. For example, the following filter searches for training jobs with an \"accuracy\" metric greater than \"0.9\":

    {

    \"Name\": \"Metrics.accuracy\",

    \"Operator\": \"GreaterThan\",

    \"Value\": \"0.9\"

    }

    HyperParameters

    To define a hyperparameter filter, enter a value with the form \"HyperParameters.<name>\". Decimal hyperparameter values are treated as a decimal in a comparison if the specified Value is also a decimal value. If the specified Value is an integer, the decimal hyperparameter values are treated as integers. For example, the following filter is satisfied by training jobs with a \"learning_rate\" hyperparameter that is less than \"0.5\":

    {

    \"Name\": \"HyperParameters.learning_rate\",

    \"Operator\": \"LessThan\",

    \"Value\": \"0.5\"

    }

    Tags

    To define a tag filter, enter a value with the form Tags.<key>.

    " }, "FilterList":{ "type":"list", @@ -16270,11 +16595,15 @@ }, "MetricName":{ "shape":"AutoMLMetricEnum", - "documentation":"

    The name of the metric with the best result. For a description of the possible objective metrics, see AutoMLJobObjective$MetricName.

    " + "documentation":"

    The name of the metric with the best result. For a description of the possible objective metrics, see AutoMLJobObjective$MetricName.

    " }, "Value":{ "shape":"MetricValue", "documentation":"

    The value of the metric with the best result.

    " + }, + "StandardMetricName":{ + "shape":"AutoMLMetricEnum", + "documentation":"

    The name of the standard metric. For a description of the standard metrics, see Autopilot candidate metrics.

    " } }, "documentation":"

    The best candidate result from an AutoML training job.

    " @@ -16288,18 +16617,18 @@ "members":{ "Type":{ "shape":"HyperParameterTuningJobObjectiveType", - "documentation":"

    Whether to minimize or maximize the objective metric. Valid values are Minimize and Maximize.

    " + "documentation":"

    Select if you want to minimize or maximize the objective metric during hyperparameter tuning.

    " }, "MetricName":{ "shape":"MetricName", - "documentation":"

    The name of the objective metric.

    " + "documentation":"

    The name of the objective metric. For SageMaker built-in algorithms, metrics are defined per algorithm. See the metrics for XGBoost as an example. You can also use a custom algorithm for training and define your own metrics. For more information, see Define metrics and environment variables.

    " }, "Value":{ "shape":"MetricValue", "documentation":"

    The value of the objective metric.

    " } }, - "documentation":"

    Shows the final value for the objective metric for a training job that was launched by a hyperparameter tuning job. You define the objective metric in the HyperParameterTuningJobObjective parameter of HyperParameterTuningJobConfig.

    " + "documentation":"

    Shows the latest objective metric emitted by a training job that was launched by a hyperparameter tuning job. You define the objective metric in the HyperParameterTuningJobObjective parameter of HyperParameterTuningJobConfig.

    " }, "FinalMetricDataList":{ "type":"list", @@ -16553,7 +16882,7 @@ "members":{ "Resource":{ "shape":"ResourceType", - "documentation":"

    The name of the Amazon SageMaker resource to search for.

    " + "documentation":"

    The name of the SageMaker resource to search for.

    " }, "SuggestionQuery":{ "shape":"SuggestionQuery", @@ -16841,7 +17170,7 @@ "members":{ "S3OutputPath":{ "shape":"S3OutputPath", - "documentation":"

    The Amazon S3 output path for the hub.

    " + "documentation":"

    The Amazon S3 bucket prefix for hosting hub content.

    " } }, "documentation":"

    The Amazon S3 storage configuration of a hub.

    " @@ -17218,7 +17547,7 @@ }, "Environment":{ "shape":"HyperParameterTrainingJobEnvironmentMap", - "documentation":"

    An environment variable that you can pass into the SageMaker CreateTrainingJob API. You can use an existing environment variable from the training container or use your own. See Define metrics and variables for more information.

    The maximum number of items specified for Map Entries refers to the maximum number of environment variables for each TrainingJobDefinition and also the maximum for the hyperparameter tuning job itself. That is, the sum of the number of environment variables for all the training job definitions can't exceed the maximum number specified.

    " + "documentation":"

    An environment variable that you can pass into the SageMaker CreateTrainingJob API. You can use an existing environment variable from the training container or use your own. See Define metrics and variables for more information.

    The maximum number of items specified for Map Entries refers to the maximum number of environment variables for each TrainingJobDefinition and also the maximum for the hyperparameter tuning job itself. That is, the sum of the number of environment variables for all the training job definitions can't exceed the maximum number specified.

    " } }, "documentation":"

    Defines the training jobs launched by a hyperparameter tuning job.

    " @@ -17686,7 +18015,7 @@ "members":{ "MinResource":{ "shape":"HyperbandStrategyMinResource", - "documentation":"

    The minimum number of resources (such as epochs) that can be used by a training job launched by a hyperparameter tuning job. If the value for MinResource has not been reached, the training job will not be stopped by Hyperband.

    " + "documentation":"

    The minimum number of resources (such as epochs) that can be used by a training job launched by a hyperparameter tuning job. If the value for MinResource has not been reached, the training job is not stopped by Hyperband.

    " }, "MaxResource":{ "shape":"HyperbandStrategyMaxResource", @@ -17703,6 +18032,24 @@ "type":"integer", "min":1 }, + "IamIdentity":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

    The Amazon Resource Name (ARN) of the IAM identity.

    " + }, + "PrincipalId":{ + "shape":"String", + "documentation":"

    The ID of the principal that assumes the IAM identity.

    " + }, + "SourceIdentity":{ + "shape":"String", + "documentation":"

    The person or application which assumes the IAM identity.

    " + } + }, + "documentation":"

    The IAM Identity details associated with the user. These details are associated with model package groups, model packages and project entities only.

    " + }, "IdempotencyToken":{ "type":"string", "max":128, @@ -17764,6 +18111,16 @@ "min":1, "pattern":".*" }, + "ImageClassificationJobConfig":{ + "type":"structure", + "members":{ + "CompletionCriteria":{ + "shape":"AutoMLJobCompletionCriteria", + "documentation":"

    How long a job is allowed to run, or how many candidates a job is allowed to generate.

    " + } + }, + "documentation":"

    Stores the configuration information for the image classification problem of an AutoML job using the V2 API.

    " + }, "ImageConfig":{ "type":"structure", "required":["RepositoryAccessMode"], @@ -17979,7 +18336,7 @@ }, "HubContentMarkdown":{ "shape":"HubContentMarkdown", - "documentation":"

    Markdown files associated with the hub content to import.

    " + "documentation":"

    A string that provides a description of the hub content. This string can include links, tables, and standard markdown formating.

    " }, "HubContentDocument":{ "shape":"HubContentDocument", @@ -18298,7 +18655,7 @@ "documentation":"

    The details for a specific benchmark.

    " } }, - "documentation":"

    A returned array object for the Steps response field in the ListInferenceRecommendationsJobSteps API command.

    " + "documentation":"

    A returned array object for the Steps response field in the ListInferenceRecommendationsJobSteps API command.

    " }, "InferenceRecommendationsJobSteps":{ "type":"list", @@ -22849,6 +23206,7 @@ }, "MaxCandidates":{ "type":"integer", + "max":750, "min":1 }, "MaxConcurrentInvocationsPerInstance":{ @@ -23040,10 +23398,10 @@ }, "Regex":{ "shape":"MetricRegex", - "documentation":"

    A regular expression that searches the output of a training job and gets the value of the metric. For more information about using regular expressions to define metrics, see Defining Objective Metrics.

    " + "documentation":"

    A regular expression that searches the output of a training job and gets the value of the metric. For more information about using regular expressions to define metrics, see Defining metrics and environment variables.

    " } }, - "documentation":"

    Specifies a metric that the training algorithm writes to stderr or stdout. SageMakerhyperparameter tuning captures all defined metrics. You specify one metric that a hyperparameter tuning job uses as its objective metric to choose the best training job.

    " + "documentation":"

    Specifies a metric that the training algorithm writes to stderr or stdout. You can view these logs to understand how your training job performs and check for any errors encountered during training. SageMaker hyperparameter tuning captures all defined metrics. Specify one of the defined metrics to use as an objective metric using the TuningObjective parameter in the HyperParameterTrainingJobDefinition API to evaluate job performance during hyperparameter tuning.

    " }, "MetricDefinitionList":{ "type":"list", @@ -25856,7 +26214,7 @@ "members":{ "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

    The ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption.

    The caller (either IAM user or IAM role) of CreateFeatureGroup must have below permissions to the OnlineStore KmsKeyId:

    • \"kms:Encrypt\"

    • \"kms:Decrypt\"

    • \"kms:DescribeKey\"

    • \"kms:CreateGrant\"

    • \"kms:RetireGrant\"

    • \"kms:ReEncryptFrom\"

    • \"kms:ReEncryptTo\"

    • \"kms:GenerateDataKey\"

    • \"kms:ListAliases\"

    • \"kms:ListGrants\"

    • \"kms:RevokeGrant\"

    The caller (either IAM user or IAM role) to all DataPlane operations (PutRecord, GetRecord, DeleteRecord) must have the following permissions to the KmsKeyId:

    • \"kms:Decrypt\"

    " + "documentation":"

    The Amazon Web Services Key Management Service (KMS) key ARN that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption.

    The caller (either user or IAM role) of CreateFeatureGroup must have below permissions to the OnlineStore KmsKeyId:

    • \"kms:Encrypt\"

    • \"kms:Decrypt\"

    • \"kms:DescribeKey\"

    • \"kms:CreateGrant\"

    • \"kms:RetireGrant\"

    • \"kms:ReEncryptFrom\"

    • \"kms:ReEncryptTo\"

    • \"kms:GenerateDataKey\"

    • \"kms:ListAliases\"

    • \"kms:ListGrants\"

    • \"kms:RevokeGrant\"

    The caller (either user or IAM role) to all DataPlane operations (PutRecord, GetRecord, DeleteRecord) must have the following permissions to the KmsKeyId:

    • \"kms:Decrypt\"

    " } }, "documentation":"

    The security configuration for OnlineStore.

    " @@ -27156,9 +27514,13 @@ "ContainerStartupHealthCheckTimeoutInSeconds":{ "shape":"ProductionVariantContainerStartupHealthCheckTimeoutInSeconds", "documentation":"

    The timeout value, in seconds, for your inference container to pass health check by SageMaker Hosting. For more information about health check, see How Your Container Should Respond to Health Check (Ping) Requests.

    " + }, + "EnableSSMAccess":{ + "shape":"ProductionVariantSSMAccess", + "documentation":"

    You can use this parameter to turn on native Amazon Web Services Systems Manager (SSM) access for a production variant behind an endpoint. By default, SSM access is disabled for all production variants behind an endpoint. You can turn on or turn off SSM access for a production variant behind an existing endpoint by creating a new endpoint configuration and calling UpdateEndpoint.

    " } }, - "documentation":"

    Identifies a model that you want to host and the resources chosen to deploy for hosting it. If you are deploying multiple models, tell SageMaker how to distribute traffic among the models by specifying variant weights.

    " + "documentation":"

    Identifies a model that you want to host and the resources chosen to deploy for hosting it. If you are deploying multiple models, tell SageMaker how to distribute traffic among the models by specifying variant weights. For more information on production variants, check Production variants.

    " }, "ProductionVariantAcceleratorType":{ "type":"string", @@ -27348,6 +27710,7 @@ "max":3600, "min":60 }, + "ProductionVariantSSMAccess":{"type":"boolean"}, "ProductionVariantServerlessConfig":{ "type":"structure", "required":[ @@ -27740,7 +28103,7 @@ "members":{ "PropertyName":{ "shape":"ResourcePropertyName", - "documentation":"

    A suggested property name based on what you entered in the search textbox in the Amazon SageMaker console.

    " + "documentation":"

    A suggested property name based on what you entered in the search textbox in the SageMaker console.

    " } }, "documentation":"

    A property name returned from a GetSearchSuggestions call that specifies a value in the PropertyNameQuery field.

    " @@ -28164,7 +28527,8 @@ "FailureReason":{ "shape":"RecommendationFailureReason", "documentation":"

    The reason why a benchmark failed.

    " - } + }, + "EndpointMetrics":{"shape":"InferenceMetrics"} }, "documentation":"

    The details for a specific benchmark from an Inference Recommender job.

    " }, @@ -28703,7 +29067,7 @@ }, "MaxRuntimeInSeconds":{ "shape":"HyperParameterTuningMaxRuntimeInSeconds", - "documentation":"

    The maximum time in seconds that a training job launched by a hyperparameter tuning job can run.

    " + "documentation":"

    The maximum time in seconds that a hyperparameter tuning job can run.

    " } }, "documentation":"

    Specifies the maximum number of training jobs and parallel training jobs that a hyperparameter tuning job can launch.

    " @@ -28938,7 +29302,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

    The Amazon Web Services Key Management Service (KMS) key ID of the key used to encrypt any objects written into the OfflineStore S3 location.

    The IAM roleARN that is passed as a parameter to CreateFeatureGroup must have below permissions to the KmsKeyId:

    • \"kms:GenerateDataKey\"

    " + "documentation":"

    The Amazon Web Services Key Management Service (KMS) key ARN of the key used to encrypt any objects written into the OfflineStore S3 location.

    The IAM roleARN that is passed as a parameter to CreateFeatureGroup must have below permissions to the KmsKeyId:

    • \"kms:GenerateDataKey\"

    " }, "ResolvedOutputS3Uri":{ "shape":"S3Uri", @@ -29078,7 +29442,7 @@ "members":{ "Resource":{ "shape":"ResourceType", - "documentation":"

    The name of the Amazon SageMaker resource to search for.

    " + "documentation":"

    The name of the SageMaker resource to search for.

    " }, "SearchExpression":{ "shape":"SearchExpression", @@ -30236,6 +30600,11 @@ "imx8mplus" ] }, + "TargetLabelColumn":{ + "type":"string", + "max":256, + "min":1 + }, "TargetObjectiveMetricValue":{"type":"float"}, "TargetPlatform":{ "type":"structure", @@ -30378,6 +30747,24 @@ "max":3600, "min":0 }, + "TextClassificationJobConfig":{ + "type":"structure", + "members":{ + "CompletionCriteria":{ + "shape":"AutoMLJobCompletionCriteria", + "documentation":"

    How long a job is allowed to run, or how many candidates a job is allowed to generate.

    " + }, + "ContentColumn":{ + "shape":"ContentColumn", + "documentation":"

    The name of the column used to provide the sentences to be classified. It should not be the same as the target column.

    " + }, + "TargetLabelColumn":{ + "shape":"TargetLabelColumn", + "documentation":"

    The name of the column used to provide the class labels. It should not be same as the content column.

    " + } + }, + "documentation":"

    Stores the configuration information for the text classification problem of an AutoML job using the V2 API.

    " + }, "ThingName":{ "type":"string", "max":128, @@ -32780,7 +33167,7 @@ }, "Parameters":{ "shape":"TrialComponentParameters", - "documentation":"

    Replaces all of the component's hyperparameters with the specified hyperparameters.

    " + "documentation":"

    Replaces all of the component's hyperparameters with the specified hyperparameters or add new hyperparameters. Existing hyperparameters are replaced if the trial component is updated with an identical hyperparameter key.

    " }, "ParametersToRemove":{ "shape":"ListTrialComponentKey256", @@ -32788,7 +33175,7 @@ }, "InputArtifacts":{ "shape":"TrialComponentArtifacts", - "documentation":"

    Replaces all of the component's input artifacts with the specified artifacts.

    " + "documentation":"

    Replaces all of the component's input artifacts with the specified artifacts or adds new input artifacts. Existing input artifacts are replaced if the trial component is updated with an identical input artifact key.

    " }, "InputArtifactsToRemove":{ "shape":"ListTrialComponentKey256", @@ -32796,7 +33183,7 @@ }, "OutputArtifacts":{ "shape":"TrialComponentArtifacts", - "documentation":"

    Replaces all of the component's output artifacts with the specified artifacts.

    " + "documentation":"

    Replaces all of the component's output artifacts with the specified artifacts or adds new output artifacts. Existing output artifacts are replaced if the trial component is updated with an identical output artifact key.

    " }, "OutputArtifactsToRemove":{ "shape":"ListTrialComponentKey256", @@ -32949,6 +33336,10 @@ "DomainId":{ "shape":"String", "documentation":"

    The domain associated with the user.

    " + }, + "IamIdentity":{ + "shape":"IamIdentity", + "documentation":"

    The IAM Identity details associated with the user. These details are associated with model package groups, model packages, and project entities only.

    " } }, "documentation":"

    Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.

    " diff --git a/services/sagemakera2iruntime/pom.xml b/services/sagemakera2iruntime/pom.xml index 2007092dd99a..fddd2ba87141 100644 --- a/services/sagemakera2iruntime/pom.xml +++ b/services/sagemakera2iruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sagemakera2iruntime AWS Java SDK :: Services :: SageMaker A2I Runtime diff --git a/services/sagemakeredge/pom.xml b/services/sagemakeredge/pom.xml index f3e6d36025a8..516cd98ba2cf 100644 --- a/services/sagemakeredge/pom.xml +++ b/services/sagemakeredge/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sagemakeredge AWS Java SDK :: Services :: Sagemaker Edge diff --git a/services/sagemakerfeaturestoreruntime/pom.xml b/services/sagemakerfeaturestoreruntime/pom.xml index 1d12003797c5..8236cd44fb8a 100644 --- a/services/sagemakerfeaturestoreruntime/pom.xml +++ b/services/sagemakerfeaturestoreruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sagemakerfeaturestoreruntime AWS Java SDK :: Services :: Sage Maker Feature Store Runtime diff --git a/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-rule-set.json index ce0f2c07bb2a..dce3ebae1028 100644 --- a/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://featurestore-runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://featurestore-runtime.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://featurestore-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://featurestore-runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-tests.json b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-tests.json index 0a11fb3a1c0f..90410889b797 100644 --- a/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,7 +1,259 @@ { "testCases": [ { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -9,8 +261,21 @@ }, "params": { "UseDualStack": false, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -21,8 +286,8 @@ }, "params": { "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -33,10 +298,16 @@ }, "params": { "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/service-2.json b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/service-2.json index 6129ec759d27..5cee735fe1e2 100644 --- a/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/service-2.json +++ b/services/sagemakerfeaturestoreruntime/src/main/resources/codegen-resources/service-2.json @@ -41,7 +41,7 @@ {"shape":"ServiceUnavailable"}, {"shape":"AccessForbidden"} ], - "documentation":"

    Deletes a Record from a FeatureGroup. When the DeleteRecord API is called a new record will be added to the OfflineStore and the Record will be removed from the OnlineStore. This record will have a value of True in the is_deleted column.

    " + "documentation":"

    Deletes a Record from a FeatureGroup in the OnlineStore. Feature Store supports both SOFT_DELETE and HARD_DELETE. For SOFT_DELETE (default), feature columns are set to null and the record is no longer retrievable by GetRecord or BatchGetRecord. For HARD_DELETE, the complete Record is removed from the OnlineStore. In both cases, Feature Store appends the deleted record marker to the OfflineStore with feature values set to null, is_deleted value set to True, and EventTime set to the delete input EventTime.

    Note that the EventTime specified in DeleteRecord should be set later than the EventTime of the existing record in the OnlineStore for that RecordIdentifer. If it is not, the deletion does not occur:

    • For SOFT_DELETE, the existing (undeleted) record remains in the OnlineStore, though the delete record marker is still written to the OfflineStore.

    • HARD_DELETE returns EventTime: 400 ValidationException to indicate that the delete operation failed. No delete record marker is written to the OfflineStore.

    " }, "GetRecord":{ "name":"GetRecord", @@ -106,11 +106,11 @@ }, "ErrorCode":{ "shape":"ValueAsString", - "documentation":"

    The error code of an error that has occured when attempting to retrieve a batch of Records. For more information on errors, see Errors.

    " + "documentation":"

    The error code of an error that has occurred when attempting to retrieve a batch of Records. For more information on errors, see Errors.

    " }, "ErrorMessage":{ "shape":"Message", - "documentation":"

    The error message of an error that has occured when attempting to retrieve a record in the batch.

    " + "documentation":"

    The error message of an error that has occurred when attempting to retrieve a record in the batch.

    " } }, "documentation":"

    The error that has occurred when attempting to retrieve a batch of Records.

    " @@ -194,7 +194,7 @@ }, "RecordIdentifierValueAsString":{ "shape":"ValueAsString", - "documentation":"

    The value of the record identifer in string format.

    " + "documentation":"

    The value of the record identifier in string format.

    " }, "Record":{ "shape":"Record", @@ -239,14 +239,27 @@ "documentation":"

    A list of stores from which you're deleting the record. By default, Feature Store deletes the record from all of the stores that you're using for the FeatureGroup.

    ", "location":"querystring", "locationName":"TargetStores" + }, + "DeletionMode":{ + "shape":"DeletionMode", + "documentation":"

    The name of the deletion mode for deleting the record. By default, the deletion mode is set to SoftDelete.

    ", + "location":"querystring", + "locationName":"DeletionMode" } } }, + "DeletionMode":{ + "type":"string", + "enum":[ + "SoftDelete", + "HardDelete" + ] + }, "FeatureGroupName":{ "type":"string", "max":64, "min":1, - "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}" + "pattern":"^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}" }, "FeatureName":{ "type":"string", diff --git a/services/sagemakergeospatial/pom.xml b/services/sagemakergeospatial/pom.xml index a5fe49f5d6e5..c6d36c5de69f 100644 --- a/services/sagemakergeospatial/pom.xml +++ b/services/sagemakergeospatial/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sagemakergeospatial AWS Java SDK :: Services :: Sage Maker Geospatial diff --git a/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-rule-set.json index a2d3b9b53ef7..ab594a484adc 100644 --- a/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://sagemaker-geospatial-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://sagemaker-geospatial-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://sagemaker-geospatial.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://sagemaker-geospatial.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-tests.json b/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-tests.json index 8368b19607b6..913aa5816bf4 100644 --- a/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sagemakergeospatial/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "us-gov-east-1", + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { @@ -110,9 +110,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -123,9 +123,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { @@ -134,9 +134,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -147,9 +147,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-iso-east-1", + "UseDualStack": false } }, { @@ -160,9 +160,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -173,9 +173,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -186,9 +186,9 @@ } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": true } }, { @@ -199,9 +199,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-east-1", + "UseDualStack": false } }, { @@ -210,9 +210,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -223,9 +223,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -234,9 +234,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -247,9 +247,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -260,9 +260,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -272,9 +272,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -284,9 +284,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/sagemakergeospatial/src/main/resources/codegen-resources/service-2.json b/services/sagemakergeospatial/src/main/resources/codegen-resources/service-2.json index 656d03e27122..ed46564e5a89 100644 --- a/services/sagemakergeospatial/src/main/resources/codegen-resources/service-2.json +++ b/services/sagemakergeospatial/src/main/resources/codegen-resources/service-2.json @@ -70,7 +70,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

    Use this operation to export results of an Earth Observation job and optionally source images used as input to the EOJ to an S3 location.

    " + "documentation":"

    Use this operation to export results of an Earth Observation job and optionally source images used as input to the EOJ to an Amazon S3 location.

    " }, "ExportVectorEnrichmentJob":{ "name":"ExportVectorEnrichmentJob", @@ -90,7 +90,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

    Use this operation to copy results of a Vector Enrichment job to an S3 location.

    " + "documentation":"

    Use this operation to copy results of a Vector Enrichment job to an Amazon S3 location.

    " }, "GetEarthObservationJob":{ "name":"GetEarthObservationJob", @@ -434,10 +434,10 @@ "members":{ "AreaOfInterestGeometry":{ "shape":"AreaOfInterestGeometry", - "documentation":"

    " + "documentation":"

    A GeoJSON object representing the geographic extent in the coordinate space.

    " } }, - "documentation":"

    ", + "documentation":"

    The geographic extent of the Earth Observation job.

    ", "union":true }, "AreaOfInterestGeometry":{ @@ -445,14 +445,14 @@ "members":{ "MultiPolygonGeometry":{ "shape":"MultiPolygonGeometryInput", - "documentation":"

    " + "documentation":"

    The structure representing the MultiPolygon Geometry.

    " }, "PolygonGeometry":{ "shape":"PolygonGeometryInput", - "documentation":"

    " + "documentation":"

    The structure representing Polygon Geometry.

    " } }, - "documentation":"

    ", + "documentation":"

    A GeoJSON object representing the geographic extent in the coordinate space.

    ", "union":true }, "Arn":{ @@ -465,10 +465,10 @@ "members":{ "Href":{ "shape":"String", - "documentation":"

    " + "documentation":"

    Link to the asset object.

    " } }, - "documentation":"

    " + "documentation":"

    The structure containing the asset properties.

    " }, "AssetsMap":{ "type":"map", @@ -480,14 +480,14 @@ "members":{ "CustomIndices":{ "shape":"CustomIndicesInput", - "documentation":"

    " + "documentation":"

    CustomIndices that are computed.

    " }, "PredefinedIndices":{ "shape":"StringListInput", - "documentation":"

    " + "documentation":"

    One or many of the supported predefined indices to compute. Allowed values: NDVI, EVI2, MSAVI, NDWI, NDMI, NDSI, and WDRVI.

    " } }, - "documentation":"

    " + "documentation":"

    Input structure for the BandMath operation type. Defines Predefined and CustomIndices to be computed using BandMath.

    " }, "BinaryFile":{ "type":"blob", @@ -501,7 +501,7 @@ "type":"structure", "members":{ }, - "documentation":"

    " + "documentation":"

    Input structure for CloudMasking operation type.

    " }, "CloudRemovalConfigInput":{ "type":"structure", @@ -516,10 +516,10 @@ }, "TargetBands":{ "shape":"StringListInput", - "documentation":"

    " + "documentation":"

    TargetBands to be returned in the output of CloudRemoval operation.

    " } }, - "documentation":"

    " + "documentation":"

    Input structure for Cloud Removal Operation type

    " }, "ComparisonOperator":{ "type":"string", @@ -531,18 +531,15 @@ }, "ConflictException":{ "type":"structure", - "required":[ - "Message", - "ResourceId" - ], + "required":["Message"], "members":{ "Message":{"shape":"String"}, "ResourceId":{ "shape":"String", - "documentation":"

    " + "documentation":"

    Identifier of the resource affected.

    " } }, - "documentation":"

    ", + "documentation":"

    Updating or deleting a resource can cause an inconsistent state.

    ", "error":{ "httpStatusCode":409, "senderFault":true @@ -554,10 +551,10 @@ "members":{ "Operations":{ "shape":"OperationsListInput", - "documentation":"

    " + "documentation":"

    A list of BandMath indices to compute.

    " } }, - "documentation":"

    " + "documentation":"

    Input object defining the custom BandMath indices to compute.

    " }, "DataCollectionArn":{ "type":"string", @@ -622,11 +619,11 @@ "members":{ "Message":{ "shape":"String", - "documentation":"

    " + "documentation":"

    A detailed message describing the error in an Earth Observation job.

    " }, "Type":{ "shape":"EarthObservationJobErrorType", - "documentation":"

    " + "documentation":"

    The type of error in an Earth Observation job.

    " } }, "documentation":"

    The structure representing the errors in an EarthObservationJob.

    " @@ -676,26 +673,32 @@ "members":{ "LowerBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    Lower bound for EoCloudCover.

    " }, "UpperBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    Upper bound for EoCloudCover.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing the EoCloudCover filter.

    " }, "EojDataSourceConfigInput":{ "type":"structure", "members":{ "S3Data":{ "shape":"S3DataInput", - "documentation":"

    " + "documentation":"

    The input structure for S3Data; representing the Amazon S3 location of the input data objects.

    " } }, - "documentation":"

    ", + "documentation":"

    Union representing different data sources to be used as input for an Earth Observation job.

    ", "union":true }, + "ExecutionRoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:(aws[a-z-]*):iam::([0-9]{12}):role/[a-zA-Z0-9+=,.@_/-]+$" + }, "ExportEarthObservationJobInput":{ "type":"structure", "required":[ @@ -708,8 +711,13 @@ "shape":"EarthObservationJobArn", "documentation":"

    The input Amazon Resource Name (ARN) of the Earth Observation job being exported.

    " }, + "ClientToken":{ + "shape":"ExportEarthObservationJobInputClientTokenString", + "documentation":"

    A unique token that guarantees that the call to this API is idempotent.

    ", + "idempotencyToken":true + }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "ExportSourceImages":{ @@ -722,6 +730,11 @@ } } }, + "ExportEarthObservationJobInputClientTokenString":{ + "type":"string", + "max":64, + "min":36 + }, "ExportEarthObservationJobOutput":{ "type":"structure", "required":[ @@ -737,11 +750,11 @@ "documentation":"

    The output Amazon Resource Name (ARN) of the Earth Observation job being exported.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time.

    " }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "ExportSourceImages":{ @@ -763,11 +776,11 @@ "members":{ "ExportResults":{ "shape":"ExportErrorDetailsOutput", - "documentation":"

    " + "documentation":"

    The structure for returning the export error details while exporting results of an Earth Observation job.

    " }, "ExportSourceImages":{ "shape":"ExportErrorDetailsOutput", - "documentation":"

    " + "documentation":"

    The structure for returning the export error details while exporting the source images of an Earth Observation job.

    " } }, "documentation":"

    The structure for returning the export error details in a GetEarthObservationJob.

    " @@ -777,14 +790,14 @@ "members":{ "Message":{ "shape":"String", - "documentation":"

    " + "documentation":"

    A detailed message describing the error in an export EarthObservationJob operation.

    " }, "Type":{ "shape":"ExportErrorType", - "documentation":"

    " + "documentation":"

    The type of error in an export EarthObservationJob operation.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing the errors in an export EarthObservationJob operation.

    " }, "ExportErrorType":{ "type":"string", @@ -798,15 +811,15 @@ "required":["S3Uri"], "members":{ "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "S3Uri":{ - "shape":"String", + "shape":"S3Uri", "documentation":"

    The URL to the Amazon S3 data input.

    " } }, - "documentation":"

    " + "documentation":"

    The structure containing the Amazon S3 path to export the Earth Observation job output.

    " }, "ExportVectorEnrichmentJobInput":{ "type":"structure", @@ -820,8 +833,13 @@ "shape":"VectorEnrichmentJobArn", "documentation":"

    The Amazon Resource Name (ARN) of the Vector Enrichment job.

    " }, + "ClientToken":{ + "shape":"ExportVectorEnrichmentJobInputClientTokenString", + "documentation":"

    A unique token that guarantees that the call to this API is idempotent.

    ", + "idempotencyToken":true + }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM rolewith permission to upload to the location in OutputConfig.

    " }, "OutputConfig":{ @@ -830,6 +848,11 @@ } } }, + "ExportVectorEnrichmentJobInputClientTokenString":{ + "type":"string", + "max":64, + "min":36 + }, "ExportVectorEnrichmentJobOutput":{ "type":"structure", "required":[ @@ -845,11 +868,11 @@ "documentation":"

    The Amazon Resource Name (ARN) of the Vector Enrichment job being exported.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time.

    " }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role with permission to upload to the location in OutputConfig.

    " }, "ExportStatus":{ @@ -868,7 +891,7 @@ "members":{ "S3Data":{ "shape":"VectorEnrichmentJobS3Data", - "documentation":"

    " + "documentation":"

    The input structure for Amazon S3 data; representing the Amazon S3 location of the input data objects.

    " } }, "documentation":"

    An object containing information about the output file.

    " @@ -930,14 +953,14 @@ "members":{ "Coordinates":{ "shape":"LinearRings", - "documentation":"

    " + "documentation":"

    The coordinates of the GeoJson Geometry.

    " }, "Type":{ "shape":"String", - "documentation":"

    " + "documentation":"

    GeoJson Geometry types like Polygon and MultiPolygon.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing a Geometry in terms of Type and Coordinates as per GeoJson spec.

    " }, "GetEarthObservationJobInput":{ "type":"structure", @@ -968,7 +991,7 @@ "documentation":"

    The Amazon Resource Name (ARN) of the Earth Observation job.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time of the initiated Earth Observation job.

    " }, "DurationInSeconds":{ @@ -980,7 +1003,7 @@ "documentation":"

    Details about the errors generated during the Earth Observation job.

    " }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "ExportErrorDetails":{ @@ -1000,8 +1023,8 @@ "documentation":"

    An object containing information about the job configuration.

    " }, "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "Name":{ "shape":"String", @@ -1009,7 +1032,7 @@ }, "OutputBands":{ "shape":"EarthObservationJobOutputBands", - "documentation":"

    " + "documentation":"

    Bands available in the output of an operation.

    " }, "Status":{ "shape":"EarthObservationJobStatus", @@ -1059,7 +1082,7 @@ }, "ImageSourceBands":{ "shape":"ImageSourceBandList", - "documentation":"

    " + "documentation":"

    The list of image source bands in the raster data collection.

    " }, "Name":{ "shape":"String", @@ -1096,6 +1119,12 @@ "location":"querystring", "locationName":"Arn" }, + "ExecutionRoleArn":{ + "shape":"ExecutionRoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specify.

    ", + "location":"querystring", + "locationName":"ExecutionRoleArn" + }, "ImageAssets":{ "shape":"StringListInput", "documentation":"

    The particular assets or bands to tile.

    ", @@ -1199,7 +1228,7 @@ "documentation":"

    The Amazon Resource Name (ARN) of the Vector Enrichment job.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time.

    " }, "DurationInSeconds":{ @@ -1211,7 +1240,7 @@ "documentation":"

    Details about the errors generated during the Vector Enrichment job.

    " }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "ExportErrorDetails":{ @@ -1231,8 +1260,8 @@ "documentation":"

    An object containing information about the job configuration.

    " }, "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "Name":{ "shape":"String", @@ -1271,12 +1300,12 @@ "documentation":"

    The location of the input data.>

    " }, "PreviousEarthObservationJobArn":{ - "shape":"String", + "shape":"EarthObservationJobArn", "documentation":"

    The Amazon Resource Name (ARN) of the previous Earth Observation job.

    " }, "RasterDataCollectionQuery":{ "shape":"RasterDataCollectionQueryInput", - "documentation":"

    " + "documentation":"

    The structure representing the RasterDataCollection Query consisting of the Area of Interest, RasterDataCollectionArn,TimeRange and Property Filters.

    " } }, "documentation":"

    Input configuration information.

    " @@ -1289,12 +1318,12 @@ "documentation":"

    The location of the input data.

    " }, "PreviousEarthObservationJobArn":{ - "shape":"String", + "shape":"EarthObservationJobArn", "documentation":"

    The Amazon Resource Name (ARN) of the previous Earth Observation job.

    " }, "RasterDataCollectionQuery":{ "shape":"RasterDataCollectionQueryOutput", - "documentation":"

    " + "documentation":"

    The structure representing the RasterDataCollection Query consisting of the Area of Interest, RasterDataCollectionArn, RasterDataCollectionName, TimeRange, and Property Filters.

    " } }, "documentation":"

    The InputConfig for an EarthObservationJob response.

    " @@ -1305,10 +1334,7 @@ }, "InternalServerException":{ "type":"structure", - "required":[ - "Message", - "ResourceId" - ], + "required":["Message"], "members":{ "Message":{"shape":"String"}, "ResourceId":{ @@ -1331,15 +1357,15 @@ "members":{ "Assets":{ "shape":"AssetsMap", - "documentation":"

    " + "documentation":"

    This is a dictionary of Asset Objects data associated with the Item that can be downloaded or streamed, each with a unique key.

    " }, "DateTime":{ "shape":"Timestamp", - "documentation":"

    " + "documentation":"

    The searchable date and time of the item, in UTC.

    " }, "Geometry":{ "shape":"Geometry", - "documentation":"

    " + "documentation":"

    The item Geometry in GeoJson format.

    " }, "Id":{ "shape":"String", @@ -1347,10 +1373,10 @@ }, "Properties":{ "shape":"Properties", - "documentation":"

    " + "documentation":"

    This field contains additional properties of the item.

    " } }, - "documentation":"

    Structure representing the items in the response for SearchRasterDataCollection.

    " + "documentation":"

    The structure representing the items in the response for SearchRasterDataCollection.

    " }, "ItemSourceList":{ "type":"list", @@ -1361,7 +1387,7 @@ "members":{ "BandMathConfig":{ "shape":"BandMathConfigInput", - "documentation":"

    " + "documentation":"

    An object containing information about the job configuration for BandMath.

    " }, "CloudMaskingConfig":{ "shape":"CloudMaskingConfigInput", @@ -1385,7 +1411,7 @@ }, "StackConfig":{ "shape":"StackConfigInput", - "documentation":"

    " + "documentation":"

    An object containing information about the job configuration for a Stacking Earth Observation job.

    " }, "TemporalStatisticsConfig":{ "shape":"TemporalStatisticsConfigInput", @@ -1399,11 +1425,16 @@ "documentation":"

    The input structure for the JobConfig in an EarthObservationJob.

    ", "union":true }, + "KmsKey":{ + "type":"string", + "max":2048, + "min":0 + }, "LandCoverSegmentationConfigInput":{ "type":"structure", "members":{ }, - "documentation":"

    " + "documentation":"

    The input structure for Land Cover Operation type.

    " }, "LandsatCloudCoverLandInput":{ "type":"structure", @@ -1414,14 +1445,14 @@ "members":{ "LowerBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The minimum value for Land Cloud Cover property filter. This will filter items having Land Cloud Cover greater than or equal to this value.

    " }, "UpperBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The maximum value for Land Cloud Cover property filter. This will filter items having Land Cloud Cover less than or equal to this value.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing Land Cloud Cover property for Landsat data collection.

    " }, "LinearRing":{ "type":"list", @@ -1498,7 +1529,7 @@ "documentation":"

    The Amazon Resource Name (ARN) of the list of the Earth Observation jobs.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time.

    " }, "DurationInSeconds":{ @@ -1511,7 +1542,7 @@ }, "OperationType":{ "shape":"String", - "documentation":"

    " + "documentation":"

    The operation type for an Earth Observation job.

    " }, "Status":{ "shape":"EarthObservationJobStatus", @@ -1643,7 +1674,7 @@ "documentation":"

    The Amazon Resource Name (ARN) of the list of the Vector Enrichment jobs.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time.

    " }, "DurationInSeconds":{ @@ -1684,7 +1715,7 @@ "members":{ "IdAttributeName":{ "shape":"String", - "documentation":"

    " + "documentation":"

    The field name for the data that describes the identifier representing a collection of GPS points belonging to an individual trace.

    " }, "TimestampAttributeName":{ "shape":"String", @@ -1699,7 +1730,7 @@ "documentation":"

    The name of the Y-attribute

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for Map Matching operation type.

    " }, "MetadataProvider":{ "type":"string", @@ -1714,7 +1745,7 @@ "documentation":"

    The coordinates of the multipolygon geometry.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing Polygon Geometry based on the GeoJson spec.

    " }, "NextToken":{ "type":"string", @@ -1731,7 +1762,7 @@ "members":{ "Equation":{ "shape":"String", - "documentation":"

    " + "documentation":"

    Textual representation of the math operation; Equation used to compute the spectral index.

    " }, "Name":{ "shape":"String", @@ -1742,7 +1773,7 @@ "documentation":"

    The type of the operation.

    " } }, - "documentation":"

    " + "documentation":"

    Represents an arithmetic operation to compute spectral index.

    " }, "OperationsListInput":{ "type":"list", @@ -1784,24 +1815,24 @@ "members":{ "UserDefined":{ "shape":"UserDefined", - "documentation":"

    " + "documentation":"

    User Defined Resolution for the output of Resampling operation defined by value and unit.

    " } }, - "documentation":"

    " + "documentation":"

    OutputResolution Configuration indicating the target resolution for the output of Resampling operation.

    " }, "OutputResolutionStackInput":{ "type":"structure", "members":{ "Predefined":{ "shape":"PredefinedResolution", - "documentation":"

    " + "documentation":"

    A string value representing Predefined Output Resolution for a stacking operation. Allowed values are HIGHEST, LOWEST, and AVERAGE.

    " }, "UserDefined":{ "shape":"UserDefined", - "documentation":"

    " + "documentation":"

    The structure representing User Output Resolution for a Stacking operation defined as a value and unit.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure representing Output Resolution for Stacking Operation.

    " }, "OutputType":{ "type":"string", @@ -1819,14 +1850,14 @@ "members":{ "ComparisonOperator":{ "shape":"ComparisonOperator", - "documentation":"

    " + "documentation":"

    The ComparisonOperator to use with PlatformInput.

    " }, "Value":{ "shape":"String", "documentation":"

    The value of the platform.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for specifying Platform. Platform refers to the unique name of the specific platform the instrument is attached to. For satellites it is the name of the satellite, eg. landsat-8 (Landsat-8), sentinel-2a.

    " }, "PolygonGeometryInput":{ "type":"structure", @@ -1834,10 +1865,10 @@ "members":{ "Coordinates":{ "shape":"LinearRings", - "documentation":"

    " + "documentation":"

    Coordinates representing a Polygon based on the GeoJson spec.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing Polygon Geometry based on the GeoJson spec.

    " }, "Position":{ "type":"list", @@ -1859,60 +1890,60 @@ "members":{ "EoCloudCover":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    Estimate of cloud cover.

    " }, "LandsatCloudCoverLand":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    Land cloud cover for Landsat Data Collection.

    " }, "Platform":{ "shape":"String", - "documentation":"

    " + "documentation":"

    Platform property. Platform refers to the unique name of the specific platform the instrument is attached to. For satellites it is the name of the satellite, eg. landsat-8 (Landsat-8), sentinel-2a.

    " }, "ViewOffNadir":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90).

    " }, "ViewSunAzimuth":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360).

    " }, "ViewSunElevation":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The sun elevation angle. The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees (-90-90). Negative values indicate the sun is below the horizon, e.g. sun elevation of -10° means the data was captured during nautical twilight.

    " } }, - "documentation":"

    " + "documentation":"

    Properties associated with the Item.

    " }, "Property":{ "type":"structure", "members":{ "EoCloudCover":{ "shape":"EoCloudCoverInput", - "documentation":"

    " + "documentation":"

    The structure representing EoCloudCover property filter containing a lower bound and upper bound.

    " }, "LandsatCloudCoverLand":{ "shape":"LandsatCloudCoverLandInput", - "documentation":"

    " + "documentation":"

    The structure representing Land Cloud Cover property filter for Landsat collection containing a lower bound and upper bound.

    " }, "Platform":{ "shape":"PlatformInput", - "documentation":"

    " + "documentation":"

    The structure representing Platform property filter consisting of value and comparison operator.

    " }, "ViewOffNadir":{ "shape":"ViewOffNadirInput", - "documentation":"

    " + "documentation":"

    The structure representing ViewOffNadir property filter containing a lower bound and upper bound.

    " }, "ViewSunAzimuth":{ "shape":"ViewSunAzimuthInput", - "documentation":"

    " + "documentation":"

    The structure representing ViewSunAzimuth property filter containing a lower bound and upper bound.

    " }, "ViewSunElevation":{ "shape":"ViewSunElevationInput", - "documentation":"

    " + "documentation":"

    The structure representing ViewSunElevation property filter containing a lower bound and upper bound.

    " } }, - "documentation":"

    ", + "documentation":"

    Represents a single searchable property to search on.

    ", "union":true }, "PropertyFilter":{ @@ -1921,24 +1952,24 @@ "members":{ "Property":{ "shape":"Property", - "documentation":"

    " + "documentation":"

    Represents a single property to match with when searching a raster data collection.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing a single PropertyFilter.

    " }, "PropertyFilters":{ "type":"structure", "members":{ "LogicalOperator":{ "shape":"LogicalOperator", - "documentation":"

    " + "documentation":"

    The Logical Operator used to combine the Property Filters.

    " }, "Properties":{ "shape":"PropertyFiltersList", - "documentation":"

    " + "documentation":"

    A list of Property Filters.

    " } }, - "documentation":"

    " + "documentation":"

    A list of PropertyFilter objects.

    " }, "PropertyFiltersList":{ "type":"list", @@ -1972,7 +2003,7 @@ }, "SupportedFilters":{ "shape":"FilterList", - "documentation":"

    " + "documentation":"

    The list of filters supported by the raster data collection.

    " }, "Tags":{ "shape":"Tags", @@ -1998,18 +2029,18 @@ }, "PropertyFilters":{ "shape":"PropertyFilters", - "documentation":"

    " + "documentation":"

    The list of Property filters used in the Raster Data Collection Query.

    " }, "RasterDataCollectionArn":{ - "shape":"String", + "shape":"DataCollectionArn", "documentation":"

    The Amazon Resource Name (ARN) of the raster data collection.

    " }, "TimeRangeFilter":{ "shape":"TimeRangeFilterInput", - "documentation":"

    " + "documentation":"

    The TimeRange Filter used in the RasterDataCollection Query.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for Raster Data Collection Query containing the Area of Interest, TimeRange Filters, and Property Filters.

    " }, "RasterDataCollectionQueryOutput":{ "type":"structure", @@ -2021,26 +2052,26 @@ "members":{ "AreaOfInterest":{ "shape":"AreaOfInterest", - "documentation":"

    " + "documentation":"

    The Area of Interest used in the search.

    " }, "PropertyFilters":{ "shape":"PropertyFilters", - "documentation":"

    " + "documentation":"

    Property filters used in the search.

    " }, "RasterDataCollectionArn":{ - "shape":"String", - "documentation":"

    " + "shape":"DataCollectionArn", + "documentation":"

    The ARN of the Raster Data Collection against which the search is done.

    " }, "RasterDataCollectionName":{ "shape":"String", "documentation":"

    The name of the raster data collection.

    " }, "TimeRangeFilter":{ - "shape":"TimeRangeFilterInput", - "documentation":"

    " + "shape":"TimeRangeFilterOutput", + "documentation":"

    The TimeRange filter used in the search.

    " } }, - "documentation":"

    " + "documentation":"

    The output structure contains the Raster Data Collection Query input along with some additional metadata.

    " }, "RasterDataCollectionQueryWithBandFilterInput":{ "type":"structure", @@ -2048,19 +2079,19 @@ "members":{ "AreaOfInterest":{ "shape":"AreaOfInterest", - "documentation":"

    " + "documentation":"

    The Area of interest to be used in the search query.

    " }, "BandFilter":{ "shape":"StringListInput", - "documentation":"

    " + "documentation":"

    The list of Bands to be displayed in the result for each item.

    " }, "PropertyFilters":{ "shape":"PropertyFilters", - "documentation":"

    " + "documentation":"

    The Property Filters used in the search query.

    " }, "TimeRangeFilter":{ "shape":"TimeRangeFilterInput", - "documentation":"

    " + "documentation":"

    The TimeRange Filter used in the search query.

    " } }, "documentation":"

    This is a RasterDataCollectionQueryInput containing AreaOfInterest, Time Range filter and Property filters.

    " @@ -2075,29 +2106,26 @@ }, "OutputResolution":{ "shape":"OutputResolutionResamplingInput", - "documentation":"

    " + "documentation":"

    The structure representing output resolution (in target georeferenced units) of the result of resampling operation.

    " }, "TargetBands":{ "shape":"StringListInput", - "documentation":"

    " + "documentation":"

    Bands used in the operation. If no target bands are specified, it uses all bands available in the input.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing input for resampling operation.

    " }, "ResourceNotFoundException":{ "type":"structure", - "required":[ - "Message", - "ResourceId" - ], + "required":["Message"], "members":{ "Message":{"shape":"String"}, "ResourceId":{ "shape":"String", - "documentation":"

    " + "documentation":"

    Identifier of the resource that was not found.

    " } }, - "documentation":"

    ", + "documentation":"

    The request references a resource which does not exist.

    ", "error":{ "httpStatusCode":404, "senderFault":true @@ -2113,14 +2141,14 @@ "members":{ "XAttributeName":{ "shape":"String", - "documentation":"

    " + "documentation":"

    The field name for the data that describes x-axis coordinate, eg. longitude of a point.

    " }, "YAttributeName":{ "shape":"String", - "documentation":"

    " + "documentation":"

    The field name for the data that describes y-axis coordinate, eg. latitude of a point.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for Reverse Geocoding operation type.

    " }, "S3DataInput":{ "type":"structure", @@ -2130,20 +2158,24 @@ ], "members":{ "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "MetadataProvider":{ "shape":"MetadataProvider", - "documentation":"

    " + "documentation":"

    Metadata provider from whom the Amazon S3 data has been acquired.

    " }, "S3Uri":{ - "shape":"String", + "shape":"S3Uri", "documentation":"

    The URL to the Amazon S3 input.

    " } }, "documentation":"

    Path to Amazon S3 storage location for input data.

    " }, + "S3Uri":{ + "type":"string", + "pattern":"^s3://([^/]+)/?(.*)$" + }, "SearchRasterDataCollectionInput":{ "type":"structure", "required":[ @@ -2161,7 +2193,7 @@ }, "RasterDataCollectionQuery":{ "shape":"RasterDataCollectionQueryWithBandFilterInput", - "documentation":"

    " + "documentation":"

    RasterDataCollectionQuery consisting of AreaOfInterest(AOI), PropertyFilters and TimeRangeFilterInput used in SearchRasterDataCollection.

    " } } }, @@ -2171,11 +2203,11 @@ "members":{ "ApproximateResultCount":{ "shape":"Integer", - "documentation":"

    " + "documentation":"

    Approximate number of results in the response.

    " }, "Items":{ "shape":"ItemSourceList", - "documentation":"

    " + "documentation":"

    List of items matching the Raster DataCollectionQuery.

    " }, "NextToken":{ "shape":"NextToken", @@ -2185,15 +2217,12 @@ }, "ServiceQuotaExceededException":{ "type":"structure", - "required":[ - "Message", - "ResourceId" - ], + "required":["Message"], "members":{ "Message":{"shape":"String"}, "ResourceId":{ "shape":"String", - "documentation":"

    " + "documentation":"

    Identifier of the resource affected.

    " } }, "documentation":"

    You have exceeded the service quota.

    ", @@ -2215,14 +2244,14 @@ "members":{ "OutputResolution":{ "shape":"OutputResolutionStackInput", - "documentation":"

    " + "documentation":"

    The structure representing output resolution (in target georeferenced units) of the result of stacking operation.

    " }, "TargetBands":{ "shape":"StringListInput", - "documentation":"

    " + "documentation":"

    A list of bands to be stacked in the specified order. When the parameter is not provided, all the available bands in the data collection are stacked in the alphabetical order of their asset names.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for Stacking Operation.

    " }, "StartEarthObservationJobInput":{ "type":"structure", @@ -2233,12 +2262,12 @@ ], "members":{ "ClientToken":{ - "shape":"String", + "shape":"StartEarthObservationJobInputClientTokenString", "documentation":"

    A unique token that guarantees that the call to this API is idempotent.

    ", "idempotencyToken":true }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "InputConfig":{ @@ -2250,11 +2279,11 @@ "documentation":"

    An object containing information about the job configuration.

    " }, "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "Name":{ - "shape":"String", + "shape":"StartEarthObservationJobInputNameString", "documentation":"

    The name of the Earth Observation job.

    " }, "Tags":{ @@ -2263,6 +2292,16 @@ } } }, + "StartEarthObservationJobInputClientTokenString":{ + "type":"string", + "max":64, + "min":36 + }, + "StartEarthObservationJobInputNameString":{ + "type":"string", + "max":200, + "min":0 + }, "StartEarthObservationJobOutput":{ "type":"structure", "required":[ @@ -2279,7 +2318,7 @@ "documentation":"

    The Amazon Resource Name (ARN) of the Earth Observation job.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time.

    " }, "DurationInSeconds":{ @@ -2287,7 +2326,7 @@ "documentation":"

    The duration of the session, in seconds.

    " }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "InputConfig":{ @@ -2299,8 +2338,8 @@ "documentation":"

    An object containing information about the job configuration.

    " }, "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "Name":{ "shape":"String", @@ -2326,12 +2365,12 @@ ], "members":{ "ClientToken":{ - "shape":"String", + "shape":"StartVectorEnrichmentJobInputClientTokenString", "documentation":"

    A unique token that guarantees that the call to this API is idempotent.

    ", "idempotencyToken":true }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "InputConfig":{ @@ -2343,11 +2382,11 @@ "documentation":"

    An object containing information about the job configuration.

    " }, "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "Name":{ - "shape":"String", + "shape":"StartVectorEnrichmentJobInputNameString", "documentation":"

    The name of the Vector Enrichment job.

    " }, "Tags":{ @@ -2356,6 +2395,16 @@ } } }, + "StartVectorEnrichmentJobInputClientTokenString":{ + "type":"string", + "max":64, + "min":36 + }, + "StartVectorEnrichmentJobInputNameString":{ + "type":"string", + "max":200, + "min":0 + }, "StartVectorEnrichmentJobOutput":{ "type":"structure", "required":[ @@ -2375,7 +2424,7 @@ "documentation":"

    The Amazon Resource Name (ARN) of the Vector Enrichment job.

    " }, "CreationTime":{ - "shape":"Timestamp", + "shape":"SyntheticTimestamp_date_time", "documentation":"

    The creation time.

    " }, "DurationInSeconds":{ @@ -2383,7 +2432,7 @@ "documentation":"

    The duration of the Vector Enrichment job, in seconds.

    " }, "ExecutionRoleArn":{ - "shape":"String", + "shape":"ExecutionRoleArn", "documentation":"

    The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

    " }, "InputConfig":{ @@ -2395,8 +2444,8 @@ "documentation":"

    An object containing information about the job configuration.

    " }, "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "Name":{ "shape":"String", @@ -2452,6 +2501,10 @@ "member":{"shape":"String"}, "min":1 }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, "TagKeyList":{ "type":"list", "member":{"shape":"String"}, @@ -2508,18 +2561,18 @@ "members":{ "GroupBy":{ "shape":"GroupBy", - "documentation":"

    " + "documentation":"

    The input for the temporal statistics grouping by time frequency option.

    " }, "Statistics":{ "shape":"TemporalStatisticsListInput", - "documentation":"

    " + "documentation":"

    The list of the statistics method options.

    " }, "TargetBands":{ "shape":"StringListInput", - "documentation":"

    " + "documentation":"

    The list of target band names for the temporal statistic to calculate.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing the configuration for Temporal Statistics operation.

    " }, "TemporalStatisticsListInput":{ "type":"list", @@ -2528,10 +2581,7 @@ }, "ThrottlingException":{ "type":"structure", - "required":[ - "Message", - "ResourceId" - ], + "required":["Message"], "members":{ "Message":{"shape":"String"}, "ResourceId":{ @@ -2565,6 +2615,25 @@ "documentation":"

    The input for the time-range filter.

    ", "sensitive":true }, + "TimeRangeFilterOutput":{ + "type":"structure", + "required":[ + "EndTime", + "StartTime" + ], + "members":{ + "EndTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The ending time for the time range filter.

    " + }, + "StartTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The starting time for the time range filter.

    " + } + }, + "documentation":"

    The output structure of the time range filter.

    ", + "sensitive":true + }, "Timestamp":{"type":"timestamp"}, "Unit":{ "type":"string", @@ -2605,21 +2674,18 @@ "members":{ "Unit":{ "shape":"Unit", - "documentation":"

    " + "documentation":"

    The units for output resolution of the result.

    " }, "Value":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The value for output resolution of the result.

    " } }, - "documentation":"

    " + "documentation":"

    The output resolution (in target georeferenced units) of the result of the operation

    " }, "ValidationException":{ "type":"structure", - "required":[ - "Message", - "ResourceId" - ], + "required":["Message"], "members":{ "Message":{"shape":"String"}, "ResourceId":{ @@ -2643,11 +2709,11 @@ "members":{ "MapMatchingConfig":{ "shape":"MapMatchingConfig", - "documentation":"

    " + "documentation":"

    The input structure for Map Matching operation type.

    " }, "ReverseGeocodingConfig":{ "shape":"ReverseGeocodingConfig", - "documentation":"

    " + "documentation":"

    The input structure for Reverse Geocoding operation type.

    " } }, "documentation":"

    It contains configs such as ReverseGeocodingConfig and MapMatchingConfig.

    ", @@ -2658,10 +2724,10 @@ "members":{ "S3Data":{ "shape":"VectorEnrichmentJobS3Data", - "documentation":"

    " + "documentation":"

    The input structure for the Amazon S3 data that represents the Amazon S3 location of the input data objects.

    " } }, - "documentation":"

    ", + "documentation":"

    The input structure for the data source that represents the storage type of the input data objects.

    ", "union":true }, "VectorEnrichmentJobDocumentType":{ @@ -2698,7 +2764,7 @@ }, "Type":{ "shape":"VectorEnrichmentJobExportErrorType", - "documentation":"

    " + "documentation":"

    The output error details for an Export operation on a Vector Enrichment job.

    " } }, "documentation":"

    VectorEnrichmentJob export error details in response from GetVectorEnrichmentJob.

    " @@ -2727,11 +2793,11 @@ "members":{ "DataSourceConfig":{ "shape":"VectorEnrichmentJobDataSourceConfigInput", - "documentation":"

    " + "documentation":"

    The input structure for the data source that represents the storage type of the input data objects.

    " }, "DocumentType":{ "shape":"VectorEnrichmentJobDocumentType", - "documentation":"

    " + "documentation":"

    The input structure that defines the data source file type.

    " } }, "documentation":"

    The input structure for the InputConfig in a VectorEnrichmentJob.

    " @@ -2745,11 +2811,11 @@ "required":["S3Uri"], "members":{ "KmsKeyId":{ - "shape":"String", - "documentation":"

    The Amazon Key Management Service (KMS) key ID for server-side encryption.

    " + "shape":"KmsKey", + "documentation":"

    The Key Management Service key ID for server-side encryption.

    " }, "S3Uri":{ - "shape":"String", + "shape":"S3Uri", "documentation":"

    The URL to the Amazon S3 data for the Vector Enrichment job.

    " } }, @@ -2784,14 +2850,14 @@ "members":{ "LowerBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The minimum value for ViewOffNadir property filter. This filters items having ViewOffNadir greater than or equal to this value.

    " }, "UpperBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The maximum value for ViewOffNadir property filter. This filters items having ViewOffNadir lesser than or equal to this value.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for specifying ViewOffNadir property filter. ViewOffNadir refers to the angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90).

    " }, "ViewSunAzimuthInput":{ "type":"structure", @@ -2802,14 +2868,14 @@ "members":{ "LowerBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The minimum value for ViewSunAzimuth property filter. This filters items having ViewSunAzimuth greater than or equal to this value.

    " }, "UpperBound":{ "shape":"Float", - "documentation":"

    " + "documentation":"

    The maximum value for ViewSunAzimuth property filter. This filters items having ViewSunAzimuth lesser than or equal to this value.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for specifying ViewSunAzimuth property filter. ViewSunAzimuth refers to the Sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360).

    " }, "ViewSunElevationInput":{ "type":"structure", @@ -2827,7 +2893,7 @@ "documentation":"

    The upper bound to view the sun elevation.

    " } }, - "documentation":"

    " + "documentation":"

    The input structure for specifying ViewSunElevation angle property filter.

    " }, "ZonalStatistics":{ "type":"string", @@ -2849,18 +2915,22 @@ "members":{ "Statistics":{ "shape":"ZonalStatisticsListInput", - "documentation":"

    " + "documentation":"

    List of zonal statistics to compute.

    " }, "TargetBands":{ "shape":"StringListInput", - "documentation":"

    " + "documentation":"

    Bands used in the operation. If no target bands are specified, it uses all bands available input.

    " }, "ZoneS3Path":{ - "shape":"String", - "documentation":"

    " + "shape":"S3Uri", + "documentation":"

    The Amazon S3 path pointing to the GeoJSON containing the polygonal zones.

    " + }, + "ZoneS3PathKmsKeyId":{ + "shape":"KmsKey", + "documentation":"

    The Amazon Resource Name (ARN) or an ID of a Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to decrypt your output artifacts with Amazon S3 server-side encryption. The SageMaker execution role must have kms:GenerateDataKey permission.

    The KmsKeyId can be any of the following formats:

    • // KMS Key ID

      \"1234abcd-12ab-34cd-56ef-1234567890ab\"

    • // Amazon Resource Name (ARN) of a KMS Key

      \"arn:aws:kms:<region>:<account>:key/<key-id-12ab-34cd-56ef-1234567890ab>\"

    For more information about key identifiers, see Key identifiers (KeyID) in the Amazon Web Services Key Management Service (Amazon Web Services KMS) documentation.

    " } }, - "documentation":"

    " + "documentation":"

    The structure representing input configuration of ZonalStatistics operation.

    " }, "ZonalStatisticsListInput":{ "type":"list", diff --git a/services/sagemakermetrics/pom.xml b/services/sagemakermetrics/pom.xml index 2de2d9757131..312261e76852 100644 --- a/services/sagemakermetrics/pom.xml +++ b/services/sagemakermetrics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sagemakermetrics AWS Java SDK :: Services :: Sage Maker Metrics diff --git a/services/sagemakerruntime/pom.xml b/services/sagemakerruntime/pom.xml index 0e79190a2d50..9c96778bbd8c 100644 --- a/services/sagemakerruntime/pom.xml +++ b/services/sagemakerruntime/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sagemakerruntime AWS Java SDK :: Services :: SageMaker Runtime diff --git a/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-rule-set.json index c7feffe0bc56..1df2646e75fc 100644 --- a/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,224 +111,288 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] + "ref": "Region" } - ] - }, + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", "argv": [ - "aws", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], - "endpoint": { - "url": "https://runtime-fips.sagemaker.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://runtime-fips.sagemaker.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://runtime.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-tests.json b/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-tests.json index b35573ad7bcd..65c9d77c5c91 100644 --- a/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sagemakerruntime/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1455 +1,545 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-fips.sagemaker.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime.sagemaker-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-fips.sagemaker.sa-east-1.amazonaws.com" + "url": "https://runtime.sagemaker.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.sa-east-1.api.aws" + "url": "https://runtime.sagemaker.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "sa-east-1" + "Region": "ap-east-1", + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.sa-east-1.amazonaws.com" + "url": "https://runtime.sagemaker.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "sa-east-1" + "Region": "ap-northeast-1", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-east-1.api.aws" + "url": "https://runtime.sagemaker.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-east-1.amazonaws.com" + "url": "https://runtime.sagemaker.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-east-1.api.aws" + "url": "https://runtime.sagemaker.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-east-1" + "Region": "ap-south-1", + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-east-1.amazonaws.com" + "url": "https://runtime.sagemaker.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-east-1" + "Region": "ap-southeast-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://runtime.sagemaker.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.cn-north-1.amazonaws.com.cn" + "url": "https://runtime.sagemaker.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://runtime.sagemaker.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "eu-central-1", + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.cn-north-1.amazonaws.com.cn" + "url": "https://runtime.sagemaker.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-north-1" + "Region": "eu-north-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.us-gov-west-1.api.aws" + "url": "https://runtime.sagemaker.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-gov-west-1.amazonaws.com" + "url": "https://runtime.sagemaker.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-gov-west-1.api.aws" + "url": "https://runtime.sagemaker.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "eu-west-2", + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-gov-west-1.amazonaws.com" + "url": "https://runtime.sagemaker.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "eu-west-3", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-southeast-1.api.aws" + "url": "https://runtime.sagemaker.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-southeast-1.amazonaws.com" + "url": "https://runtime.sagemaker.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-southeast-1.api.aws" + "url": "https://runtime.sagemaker.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-southeast-1.amazonaws.com" + "url": "https://runtime-fips.sagemaker.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-southeast-2.api.aws" + "url": "https://runtime.sagemaker.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-southeast-2.amazonaws.com" + "url": "https://runtime-fips.sagemaker.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-east-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-southeast-2.api.aws" + "url": "https://runtime.sagemaker.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-southeast-2.amazonaws.com" + "url": "https://runtime-fips.sagemaker.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-iso-east-1" + "Region": "us-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://runtime.sagemaker.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-iso-east-1" + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-iso-east-1.c2s.ic.gov" + "url": "https://runtime-fips.sagemaker.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.ap-southeast-3.api.aws" + "url": "https://runtime.sagemaker-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-fips.sagemaker.ap-southeast-3.amazonaws.com" + "url": "https://runtime.sagemaker.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-3" + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-southeast-3.api.aws" + "url": "https://runtime.sagemaker.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.ap-southeast-3.amazonaws.com" + "url": "https://runtime.sagemaker.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "cn-northwest-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.us-east-1.api.aws" + "url": "https://runtime.sagemaker-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-fips.sagemaker.us-east-1.amazonaws.com" + "url": "https://runtime.sagemaker-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-east-1.api.aws" + "url": "https://runtime.sagemaker.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-east-1.amazonaws.com" + "url": "https://runtime.sagemaker.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.us-east-2.api.aws" + "url": "https://runtime.sagemaker.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-west-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-fips.sagemaker.us-east-2.amazonaws.com" + "url": "https://runtime.sagemaker-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-east-2.api.aws" + "url": "https://runtime.sagemaker.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.us-east-2.amazonaws.com" + "url": "https://runtime.sagemaker.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://runtime.sagemaker.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://runtime.sagemaker.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime.sagemaker.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://runtime.sagemaker-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-northwest-1" + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://runtime.sagemaker.cn-northwest-1.amazonaws.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": true } }, { @@ -1458,9 +548,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -1471,9 +561,9 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { @@ -1482,9 +572,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": true } }, { @@ -1495,22 +585,35 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Region": "us-isob-east-1", + "UseDualStack": false } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1520,9 +623,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1532,11 +635,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/sagemakerruntime/src/main/resources/codegen-resources/service-2.json b/services/sagemakerruntime/src/main/resources/codegen-resources/service-2.json index 29212058a28b..979a8fd8d412 100644 --- a/services/sagemakerruntime/src/main/resources/codegen-resources/service-2.json +++ b/services/sagemakerruntime/src/main/resources/codegen-resources/service-2.json @@ -159,13 +159,13 @@ }, "RequestTTLSeconds":{ "shape":"RequestTTLSecondsHeader", - "documentation":"

    Maximum age in seconds a request can be in the queue before it is marked as expired.

    ", + "documentation":"

    Maximum age in seconds a request can be in the queue before it is marked as expired. The default is 6 hours, or 21,600 seconds.

    ", "location":"header", "locationName":"X-Amzn-SageMaker-RequestTTLSeconds" }, "InvocationTimeoutSeconds":{ "shape":"InvocationTimeoutSecondsHeader", - "documentation":"

    Maximum amount of time in seconds a request can be processed before it is marked as expired.

    ", + "documentation":"

    Maximum amount of time in seconds a request can be processed before it is marked as expired. The default is 15 minutes, or 900 seconds.

    ", "location":"header", "locationName":"X-Amzn-SageMaker-InvocationTimeoutSeconds" } @@ -183,6 +183,12 @@ "documentation":"

    The Amazon S3 URI where the inference response payload is stored.

    ", "location":"header", "locationName":"X-Amzn-SageMaker-OutputLocation" + }, + "FailureLocation":{ + "shape":"Header", + "documentation":"

    The Amazon S3 URI where the inference failure response payload is stored.

    ", + "location":"header", + "locationName":"X-Amzn-SageMaker-FailureLocation" } } }, diff --git a/services/savingsplans/pom.xml b/services/savingsplans/pom.xml index 3c08934e38a6..5ea56de9aeb6 100644 --- a/services/savingsplans/pom.xml +++ b/services/savingsplans/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT savingsplans AWS Java SDK :: Services :: Savingsplans diff --git a/services/scheduler/pom.xml b/services/scheduler/pom.xml index c750b16ba446..3210e1217197 100644 --- a/services/scheduler/pom.xml +++ b/services/scheduler/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT scheduler AWS Java SDK :: Services :: Scheduler diff --git a/services/schemas/pom.xml b/services/schemas/pom.xml index 391e04aa4b3f..e46c63304fdc 100644 --- a/services/schemas/pom.xml +++ b/services/schemas/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT schemas AWS Java SDK :: Services :: Schemas diff --git a/services/secretsmanager/pom.xml b/services/secretsmanager/pom.xml index bfefd625d6e5..f57a94306d88 100644 --- a/services/secretsmanager/pom.xml +++ b/services/secretsmanager/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT secretsmanager AWS Java SDK :: Services :: AWS Secrets Manager diff --git a/services/secretsmanager/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/secretsmanager/src/main/resources/codegen-resources/endpoint-rule-set.json index abd9f15e405f..f4a901c5bd6b 100644 --- a/services/secretsmanager/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/secretsmanager/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/secretsmanager/src/main/resources/codegen-resources/endpoint-tests.json b/services/secretsmanager/src/main/resources/codegen-resources/endpoint-tests.json index 756e885892f8..ad06e6e3c63d 100644 --- a/services/secretsmanager/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/secretsmanager/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1722 +1,549 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.sa-east-1.amazonaws.com" + "url": "https://secretsmanager.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "af-south-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-east-1.api.aws" + "url": "https://secretsmanager.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-east-1.amazonaws.com" + "url": "https://secretsmanager.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-east-1.api.aws" + "url": "https://secretsmanager.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-east-1.amazonaws.com" + "url": "https://secretsmanager.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://secretsmanager.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.cn-north-1.amazonaws.com.cn" + "url": "https://secretsmanager.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://secretsmanager.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.cn-north-1.amazonaws.com.cn" + "url": "https://secretsmanager.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-gov-west-1.api.aws" + "url": "https://secretsmanager.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-gov-west-1.amazonaws.com" + "url": "https://secretsmanager-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-gov-west-1.api.aws" + "url": "https://secretsmanager.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-gov-west-1.amazonaws.com" + "url": "https://secretsmanager.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-north-1", "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-1.amazonaws.com" + "url": "https://secretsmanager.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-1.api.aws" + "url": "https://secretsmanager.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-1.amazonaws.com" + "url": "https://secretsmanager.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-2.api.aws" + "url": "https://secretsmanager.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-2.amazonaws.com" + "url": "https://secretsmanager.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-2.api.aws" + "url": "https://secretsmanager.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "sa-east-1", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-2.amazonaws.com" + "url": "https://secretsmanager.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://secretsmanager-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-iso-east-1.c2s.ic.gov" + "url": "https://secretsmanager.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-2", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-3.api.aws" + "url": "https://secretsmanager-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-2", "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-3.amazonaws.com" + "url": "https://secretsmanager.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-3.api.aws" + "url": "https://secretsmanager-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-3.amazonaws.com" + "url": "https://secretsmanager.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-4.api.aws" + "url": "https://secretsmanager-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-west-2", "UseFIPS": true, - "Region": "ap-southeast-4" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.ap-southeast-4.amazonaws.com" + "url": "https://secretsmanager-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-4" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-4.api.aws" + "url": "https://secretsmanager.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "ap-southeast-4" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.ap-southeast-4.amazonaws.com" + "url": "https://secretsmanager.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-4" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-east-1.api.aws" + "url": "https://secretsmanager.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-east-1.amazonaws.com" + "url": "https://secretsmanager-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-east-1.api.aws" + "url": "https://secretsmanager-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-east-1.amazonaws.com" + "url": "https://secretsmanager.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-east-2.api.aws" + "url": "https://secretsmanager.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.us-east-2.amazonaws.com" + "url": "https://secretsmanager-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-2" - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://secretsmanager.us-east-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-east-2.amazonaws.com" + "url": "https://secretsmanager.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://secretsmanager-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://secretsmanager-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://secretsmanager.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://secretsmanager.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.cn-northwest-1.amazonaws.com.cn" + "url": "https://secretsmanager.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://secretsmanager-fips.us-iso-east-1.c2s.ic.gov" + } }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { @@ -1727,46 +554,48 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://secretsmanager.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://secretsmanager.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1776,9 +605,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1788,9 +617,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/secretsmanager/src/main/resources/codegen-resources/service-2.json b/services/secretsmanager/src/main/resources/codegen-resources/service-2.json index b89ea6e597fe..4e0d4ddd12b1 100644 --- a/services/secretsmanager/src/main/resources/codegen-resources/service-2.json +++ b/services/secretsmanager/src/main/resources/codegen-resources/service-2.json @@ -1385,7 +1385,7 @@ "SecretBinaryType":{ "type":"blob", "max":65536, - "min":0, + "min":1, "sensitive":true }, "SecretIdType":{ @@ -1484,7 +1484,7 @@ "SecretStringType":{ "type":"string", "max":65536, - "min":0, + "min":1, "sensitive":true }, "SecretVersionIdType":{ diff --git a/services/securityhub/pom.xml b/services/securityhub/pom.xml index 91b3095399f0..6fdb341b7ff6 100644 --- a/services/securityhub/pom.xml +++ b/services/securityhub/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT securityhub AWS Java SDK :: Services :: SecurityHub diff --git a/services/securityhub/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/securityhub/src/main/resources/codegen-resources/endpoint-rule-set.json index 8b5f8f170899..bcaddb83461d 100644 --- a/services/securityhub/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/securityhub/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securityhub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://securityhub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securityhub-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://securityhub-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securityhub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://securityhub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://securityhub.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://securityhub.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/securityhub/src/main/resources/codegen-resources/endpoint-tests.json b/services/securityhub/src/main/resources/codegen-resources/endpoint-tests.json index 84c39af1d635..ff107f7ff4fa 100644 --- a/services/securityhub/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/securityhub/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,94 +1,94 @@ { "testCases": [ { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-gov-west-1.amazonaws.com" + "url": "https://securityhub.af-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "af-south-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-gov-west-1.amazonaws.com" + "url": "https://securityhub.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1" + "Region": "ap-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-gov-east-1.amazonaws.com" + "url": "https://securityhub.ap-northeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "ap-northeast-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-gov-east-1.amazonaws.com" + "url": "https://securityhub.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1" + "Region": "ap-northeast-2" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-gov-east-1.api.aws" + "url": "https://securityhub.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-gov-east-1.api.aws" + "url": "https://securityhub.ap-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ap-southeast-3.amazonaws.com" + "url": "https://securityhub.ap-southeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-3" + "Region": "ap-southeast-1" } }, { @@ -105,107 +105,107 @@ } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ap-southeast-1.amazonaws.com" + "url": "https://securityhub.ap-southeast-3.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1" + "Region": "ap-southeast-3" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.eu-central-1.amazonaws.com" + "url": "https://securityhub.ca-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-central-1" + "Region": "ca-central-1" } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.eu-south-1.amazonaws.com" + "url": "https://securityhub.eu-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-south-1" + "Region": "eu-central-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ap-east-1.amazonaws.com" + "url": "https://securityhub.eu-north-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-east-1" + "Region": "eu-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.sa-east-1.amazonaws.com" + "url": "https://securityhub.eu-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1" + "Region": "eu-south-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-east-2.amazonaws.com" + "url": "https://securityhub.eu-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2" + "Region": "eu-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-east-2.amazonaws.com" + "url": "https://securityhub.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-2" + "Region": "eu-west-2" } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.eu-north-1.amazonaws.com" + "url": "https://securityhub.eu-west-3.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-north-1" + "Region": "eu-west-3" } }, { @@ -222,315 +222,315 @@ } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.eu-west-3.amazonaws.com" + "url": "https://securityhub.sa-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-3" + "Region": "sa-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.eu-west-2.amazonaws.com" + "url": "https://securityhub.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-2" + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.eu-west-1.amazonaws.com" + "url": "https://securityhub-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "eu-west-1" + "Region": "us-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-east-1.amazonaws.com" + "url": "https://securityhub.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-east-2" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-east-1.amazonaws.com" + "url": "https://securityhub-fips.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1" + "Region": "us-east-2" } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ap-northeast-3.amazonaws.com" + "url": "https://securityhub.us-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-3" + "Region": "us-west-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ap-northeast-2.amazonaws.com" + "url": "https://securityhub-fips.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-northeast-2" + "Region": "us-west-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ap-northeast-1.amazonaws.com" + "url": "https://securityhub.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-1" + "Region": "us-west-2" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ap-south-1.amazonaws.com" + "url": "https://securityhub-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-south-1" + "Region": "us-west-2" } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://securityhub.af-south-1.amazonaws.com" + "url": "https://securityhub-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://securityhub.us-west-2.amazonaws.com" + "url": "https://securityhub.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-west-2.amazonaws.com" + "url": "https://securityhub.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": false, - "Region": "us-west-2" + "Region": "cn-north-1" } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-west-1.amazonaws.com" + "url": "https://securityhub.cn-northwest-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-west-1" + "Region": "cn-northwest-1" } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-west-1.amazonaws.com" + "url": "https://securityhub-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.ca-central-1.amazonaws.com" + "url": "https://securityhub-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "ca-central-1" + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-east-1.api.aws" + "url": "https://securityhub.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1" + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-east-1.api.aws" + "url": "https://securityhub.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://securityhub-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.us-iso-east-1.c2s.ic.gov" + "url": "https://securityhub.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-east-1" + "Region": "us-gov-west-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.cn-north-1.amazonaws.com.cn" + "url": "https://securityhub-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, + "UseFIPS": true, "UseDualStack": false, - "Region": "cn-north-1" + "Region": "us-gov-west-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://securityhub.cn-northwest-1.amazonaws.com.cn" + "url": "https://securityhub-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-northwest-1" + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://securityhub.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, + "UseFIPS": false, "UseDualStack": true, - "Region": "cn-north-1" + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub-fips.cn-north-1.amazonaws.com.cn" + "url": "https://securityhub-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, "UseDualStack": false, - "Region": "cn-north-1" + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://securityhub.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://securityhub.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { @@ -560,7 +560,7 @@ } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -573,6 +573,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { diff --git a/services/securityhub/src/main/resources/codegen-resources/paginators-1.json b/services/securityhub/src/main/resources/codegen-resources/paginators-1.json index 85871fc3507e..a712c5286fe5 100644 --- a/services/securityhub/src/main/resources/codegen-resources/paginators-1.json +++ b/services/securityhub/src/main/resources/codegen-resources/paginators-1.json @@ -71,6 +71,18 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "AdminAccounts" + }, + "ListSecurityControlDefinitions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SecurityControlDefinitions" + }, + "ListStandardsControlAssociations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "StandardsControlAssociationSummaries" } } } diff --git a/services/securityhub/src/main/resources/codegen-resources/service-2.json b/services/securityhub/src/main/resources/codegen-resources/service-2.json index de6af94f8477..d55b23a01f4e 100644 --- a/services/securityhub/src/main/resources/codegen-resources/service-2.json +++ b/services/securityhub/src/main/resources/codegen-resources/service-2.json @@ -80,6 +80,38 @@ ], "documentation":"

    Enables the standards specified by the provided StandardsArn. To obtain the ARN for a standard, use the DescribeStandards operation.

    For more information, see the Security Standards section of the Security Hub User Guide.

    " }, + "BatchGetSecurityControls":{ + "name":"BatchGetSecurityControls", + "http":{ + "method":"POST", + "requestUri":"/securityControls/batchGet" + }, + "input":{"shape":"BatchGetSecurityControlsRequest"}, + "output":{"shape":"BatchGetSecurityControlsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidAccessException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

    Provides details about a batch of security controls for the current Amazon Web Services account and Amazon Web Services Region.

    " + }, + "BatchGetStandardsControlAssociations":{ + "name":"BatchGetStandardsControlAssociations", + "http":{ + "method":"POST", + "requestUri":"/associations/batchGet" + }, + "input":{"shape":"BatchGetStandardsControlAssociationsRequest"}, + "output":{"shape":"BatchGetStandardsControlAssociationsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidAccessException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

    For a batch of security controls and standards, identifies whether each control is currently enabled or disabled in a standard.

    " + }, "BatchImportFindings":{ "name":"BatchImportFindings", "http":{ @@ -112,6 +144,22 @@ ], "documentation":"

    Used by Security Hub customers to update information about their investigation into a finding. Requested by administrator accounts or member accounts. Administrator accounts can update findings for their account and their member accounts. Member accounts can update findings for their account.

    Updates from BatchUpdateFindings do not affect the value of UpdatedAt for a finding.

    Administrator and member accounts can use BatchUpdateFindings to update the following finding fields and objects.

    • Confidence

    • Criticality

    • Note

    • RelatedFindings

    • Severity

    • Types

    • UserDefinedFields

    • VerificationState

    • Workflow

    You can configure IAM policies to restrict access to fields and field values. For example, you might not want member accounts to be able to suppress findings or change the finding severity. See Configuring access to BatchUpdateFindings in the Security Hub User Guide.

    " }, + "BatchUpdateStandardsControlAssociations":{ + "name":"BatchUpdateStandardsControlAssociations", + "http":{ + "method":"PATCH", + "requestUri":"/associations" + }, + "input":{"shape":"BatchUpdateStandardsControlAssociationsRequest"}, + "output":{"shape":"BatchUpdateStandardsControlAssociationsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidAccessException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

    For a batch of security controls and standards, this operation updates the enablement status of a control in a standard.

    " + }, "CreateActionTarget":{ "name":"CreateActionTarget", "http":{ @@ -194,7 +242,7 @@ {"shape":"InvalidAccessException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

    Declines invitations to become a member account.

    This operation is only used by accounts that are not part of an organization. Organization accounts do not receive invitations.

    " + "documentation":"

    Declines invitations to become a member account.

    A prospective member account uses this operation to decline an invitation to become a member.

    This operation is only called by member accounts that aren't part of an organization. Organization accounts don't receive invitations.

    " }, "DeleteActionTarget":{ "name":"DeleteActionTarget", @@ -262,7 +310,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidAccessException"} ], - "documentation":"

    Deletes invitations received by the Amazon Web Services account to become a member account.

    This operation is only used by accounts that are not part of an organization. Organization accounts do not receive invitations.

    " + "documentation":"

    Deletes invitations received by the Amazon Web Services account to become a member account.

    A Security Hub administrator account can use this operation to delete invitations sent to one or more member accounts.

    This operation is only used to delete invitations that are sent to member accounts that aren't part of an organization. Organization accounts don't receive invitations.

    " }, "DeleteMembers":{ "name":"DeleteMembers", @@ -527,7 +575,7 @@ {"shape":"ResourceConflictException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Enables Security Hub for your account in the current Region or the Region you specify in the request.

    When you enable Security Hub, you grant to Security Hub the permissions necessary to gather findings from other services that are integrated with Security Hub.

    When you use the EnableSecurityHub operation to enable Security Hub, you also automatically enable the following standards.

    • CIS Amazon Web Services Foundations

    • Amazon Web Services Foundational Security Best Practices

    You do not enable the Payment Card Industry Data Security Standard (PCI DSS) standard.

    To not enable the automatically enabled standards, set EnableDefaultStandards to false.

    After you enable Security Hub, to enable a standard, use the BatchEnableStandards operation. To disable a standard, use the BatchDisableStandards operation.

    To learn more, see the setup information in the Security Hub User Guide.

    " + "documentation":"

    Enables Security Hub for your account in the current Region or the Region you specify in the request.

    When you enable Security Hub, you grant to Security Hub the permissions necessary to gather findings from other services that are integrated with Security Hub.

    When you use the EnableSecurityHub operation to enable Security Hub, you also automatically enable the following standards:

    • Center for Internet Security (CIS) Amazon Web Services Foundations Benchmark v1.2.0

    • Amazon Web Services Foundational Security Best Practices

    Other standards are not automatically enabled.

    To opt out of automatically enabled standards, set EnableDefaultStandards to false.

    After you enable Security Hub, to enable a standard, use the BatchEnableStandards operation. To disable a standard, use the BatchDisableStandards operation.

    To learn more, see the setup information in the Security Hub User Guide.

    " }, "GetAdministratorAccount":{ "name":"GetAdministratorAccount", @@ -779,6 +827,38 @@ ], "documentation":"

    Lists the Security Hub administrator accounts. Can only be called by the organization management account.

    " }, + "ListSecurityControlDefinitions":{ + "name":"ListSecurityControlDefinitions", + "http":{ + "method":"GET", + "requestUri":"/securityControls/definitions" + }, + "input":{"shape":"ListSecurityControlDefinitionsRequest"}, + "output":{"shape":"ListSecurityControlDefinitionsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidInputException"}, + {"shape":"InvalidAccessException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

    Lists all of the security controls that apply to a specified standard.

    " + }, + "ListStandardsControlAssociations":{ + "name":"ListStandardsControlAssociations", + "http":{ + "method":"GET", + "requestUri":"/associations" + }, + "input":{"shape":"ListStandardsControlAssociationsRequest"}, + "output":{"shape":"ListStandardsControlAssociationsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidAccessException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

    Specifies whether a control is currently enabled or disabled in each enabled standard in the calling account.

    " + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -1205,6 +1285,61 @@ "type":"list", "member":{"shape":"AssociatedStandard"} }, + "AssociationSetDetails":{ + "type":"structure", + "members":{ + "AssociationState":{ + "shape":"AssociationStateDetails", + "documentation":"

    The state of the association between a route table and a subnet or gateway.

    " + }, + "GatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the internet gateway or virtual private gateway.

    " + }, + "Main":{ + "shape":"Boolean", + "documentation":"

    Indicates whether this is the main route table.

    " + }, + "RouteTableAssociationId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the association.

    " + }, + "RouteTableId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the route table.

    " + }, + "SubnetId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the subnet. A subnet ID is not returned for an implicit association.

    " + } + }, + "documentation":"

    The associations between a route table and one or more subnets or a gateway.

    " + }, + "AssociationSetList":{ + "type":"list", + "member":{"shape":"AssociationSetDetails"} + }, + "AssociationStateDetails":{ + "type":"structure", + "members":{ + "State":{ + "shape":"NonEmptyString", + "documentation":"

    The state of the association.

    " + }, + "StatusMessage":{ + "shape":"NonEmptyString", + "documentation":"

    The status message, if applicable.

    " + } + }, + "documentation":"

    Describes the state of an association between a route table and a subnet or gateway.

    " + }, + "AssociationStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "AutoEnableStandards":{ "type":"string", "enum":[ @@ -1259,11 +1394,11 @@ }, "FirstSeen":{ "shape":"NonEmptyString", - "documentation":"

    An ISO8601-formatted timestamp that indicates when the API call was first observed.

    " + "documentation":"

    An ISO8601-formatted timestamp that indicates when the API call was first observed.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "LastSeen":{ "shape":"NonEmptyString", - "documentation":"

    An ISO8601-formatted timestamp that indicates when the API call was most recently observed.

    " + "documentation":"

    An ISO8601-formatted timestamp that indicates when the API call was most recently observed.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " } }, "documentation":"

    Provided if ActionType is AWS_API_CALL. It provides details about the API call that was detected.

    " @@ -1399,7 +1534,7 @@ }, "CreatedDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the API was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the API was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Version":{ "shape":"NonEmptyString", @@ -1481,11 +1616,11 @@ }, "CreatedDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the stage was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the stage was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "LastUpdatedDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the stage was most recently updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the stage was most recently updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "WebAclArn":{ "shape":"NonEmptyString", @@ -1511,7 +1646,7 @@ }, "CreatedDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the API was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the API was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Description":{ "shape":"NonEmptyString", @@ -1575,7 +1710,7 @@ }, "CreatedDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the stage was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the stage was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Description":{ "shape":"NonEmptyString", @@ -1591,7 +1726,7 @@ }, "LastUpdatedDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the stage was most recently updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the stage was most recently updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "RouteSettings":{ "shape":"AwsApiGatewayV2RouteSettings", @@ -1659,7 +1794,7 @@ }, "CreatedTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the auto scaling group was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the auto scaling group was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "MixedInstancesPolicy":{ "shape":"AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails", @@ -1869,7 +2004,7 @@ }, "CreatedTime":{ "shape":"NonEmptyString", - "documentation":"

    The creation date and time for the launch configuration.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The creation date and time for the launch configuration.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "EbsOptimized":{ "shape":"Boolean", @@ -2129,7 +2264,7 @@ }, "SnsTopicArn":{ "shape":"NonEmptyString", - "documentation":"

    An ARN that uniquely identifies the Amazon SNS topic for a backup vault’s events.

    " + "documentation":"

    The Amazon Resource Name (ARN) that uniquely identifies the Amazon SNS topic for a backup vault's events.

    " } }, "documentation":"

    Provides details about the Amazon SNS event notifications for the specified backup vault.

    " @@ -2275,7 +2410,7 @@ }, "CreatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the certificate was requested.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the certificate was requested.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "DomainName":{ "shape":"NonEmptyString", @@ -2295,7 +2430,7 @@ }, "ImportedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the certificate was imported. Provided if the certificate type is IMPORTED.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the certificate was imported. Provided if the certificate type is IMPORTED.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "InUseBy":{ "shape":"StringList", @@ -2303,7 +2438,7 @@ }, "IssuedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the certificate was issued. Provided if the certificate type is AMAZON_ISSUED.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the certificate was issued. Provided if the certificate type is AMAZON_ISSUED.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Issuer":{ "shape":"NonEmptyString", @@ -2319,11 +2454,11 @@ }, "NotAfter":{ "shape":"NonEmptyString", - "documentation":"

    The time after which the certificate becomes invalid.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The time after which the certificate becomes invalid.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "NotBefore":{ "shape":"NonEmptyString", - "documentation":"

    The time before which the certificate is not valid.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The time before which the certificate is not valid.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Options":{ "shape":"AwsCertificateManagerCertificateOptions", @@ -2457,7 +2592,7 @@ }, "UpdatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the renewal summary was last updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the renewal summary was last updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    Contains information about the Certificate Manager managed renewal for an AMAZON_ISSUED certificate.

    " @@ -2637,7 +2772,7 @@ }, "LastModifiedTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when that the distribution was last modified.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when that the distribution was last modified.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Logging":{ "shape":"AwsCloudFrontDistributionLogging", @@ -3347,7 +3482,7 @@ }, "LastUpdateToPayPerRequestDateTime":{ "shape":"NonEmptyString", - "documentation":"

    If the billing mode is PAY_PER_REQUEST, indicates when the billing mode was set to that value.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    If the billing mode is PAY_PER_REQUEST, indicates when the billing mode was set to that value.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    Provides information about the billing for read/write capacity on the table.

    " @@ -3365,7 +3500,7 @@ }, "CreationDateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the table was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the table was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "GlobalSecondaryIndexes":{ "shape":"AwsDynamoDbTableGlobalSecondaryIndexList", @@ -3543,11 +3678,11 @@ "members":{ "LastDecreaseDateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the provisioned throughput was last decreased.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the provisioned throughput was last decreased.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "LastIncreaseDateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the provisioned throughput was last increased.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the provisioned throughput was last increased.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "NumberOfDecreasesToday":{ "shape":"Integer", @@ -3639,7 +3774,7 @@ }, "RestoreDateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates the point in time that the table was restored to.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates the point in time that the table was restored to.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "RestoreInProgress":{ "shape":"Boolean", @@ -3653,7 +3788,7 @@ "members":{ "InaccessibleEncryptionDateTime":{ "shape":"NonEmptyString", - "documentation":"

    If the key is inaccessible, the date and time when DynamoDB detected that the key was inaccessible.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    If the key is inaccessible, the date and time when DynamoDB detected that the key was inaccessible.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Status":{ "shape":"NonEmptyString", @@ -3767,7 +3902,7 @@ }, "LaunchedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the instance was launched.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the instance was launched.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "NetworkInterfaces":{ "shape":"AwsEc2InstanceNetworkInterfacesList", @@ -3780,6 +3915,10 @@ "MetadataOptions":{ "shape":"AwsEc2InstanceMetadataOptions", "documentation":"

    Details about the metadata options for the Amazon EC2 instance.

    " + }, + "Monitoring":{ + "shape":"AwsEc2InstanceMonitoringDetails", + "documentation":"

    Describes the type of monitoring that’s turned on for an instance.

    " } }, "documentation":"

    The details of an Amazon EC2 instance.

    " @@ -3810,6 +3949,16 @@ }, "documentation":"

    Metadata options that allow you to configure and secure the Amazon EC2 instance.

    " }, + "AwsEc2InstanceMonitoringDetails":{ + "type":"structure", + "members":{ + "State":{ + "shape":"NonEmptyString", + "documentation":"

    Indicates whether detailed monitoring is turned on. Otherwise, basic monitoring is turned on.

    " + } + }, + "documentation":"

    The type of monitoring that’s turned on for an Amazon EC2 instance.

    " + }, "AwsEc2InstanceNetworkInterfacesDetails":{ "type":"structure", "members":{ @@ -4283,7 +4432,7 @@ }, "OnDemandMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

    The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    A high value, such as 999999, turns off price protection.

    " + "documentation":"

    The price protection threshold for On-Demand Instances. This is the maximum you'll pay for an On-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    A high value, such as 999999, turns off price protection.

    " }, "RequireHibernateSupport":{ "shape":"Boolean", @@ -4291,7 +4440,7 @@ }, "SpotMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

    The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    A high value, such as 999999, turns off price protection.

    " + "documentation":"

    The price protection threshold for Spot Instances. This is the maximum you'll pay for a Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

    The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

    A high value, such as 999999, turns off price protection.

    " }, "TotalLocalStorageGB":{ "shape":"AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails", @@ -4403,7 +4552,7 @@ "members":{ "HttpEndpoint":{ "shape":"NonEmptyString", - "documentation":"

    Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled, and you won’t be able to access your instance metadata.

    " + "documentation":"

    Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled, and you won't be able to access your instance metadata.

    " }, "HttpProtocolIpv6":{ "shape":"NonEmptyString", @@ -4761,7 +4910,7 @@ "members":{ "AttachTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the attachment initiated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the attachment initiated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "AttachmentId":{ "shape":"NonEmptyString", @@ -4878,6 +5027,36 @@ "type":"list", "member":{"shape":"AwsEc2NetworkInterfaceSecurityGroup"} }, + "AwsEc2RouteTableDetails":{ + "type":"structure", + "members":{ + "AssociationSet":{ + "shape":"AssociationSetList", + "documentation":"

    The associations between a route table and one or more subnets or a gateway.

    " + }, + "OwnerId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the Amazon Web Services account that owns the route table.

    " + }, + "PropagatingVgwSet":{ + "shape":"PropagatingVgwSetList", + "documentation":"

    Describes a virtual private gateway propagating route.

    " + }, + "RouteTableId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the route table.

    " + }, + "RouteSet":{ + "shape":"RouteSetList", + "documentation":"

    The routes in the route table.

    " + }, + "VpcId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the virtual private cloud (VPC).

    " + } + }, + "documentation":"

    Provides details about a route table for the specified VPC.

    " + }, "AwsEc2SecurityGroupDetails":{ "type":"structure", "members":{ @@ -5165,7 +5344,7 @@ "members":{ "CreateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the volume was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the volume was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "DeviceName":{ "shape":"NonEmptyString", @@ -5539,7 +5718,7 @@ }, "LastStatusChange":{ "shape":"NonEmptyString", - "documentation":"

    The date and time of the last change in status.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The date and time of the last change in status.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "OutsideIpAddress":{ "shape":"NonEmptyString", @@ -5585,7 +5764,7 @@ }, "ImagePublishedAt":{ "shape":"NonEmptyString", - "documentation":"

    The date and time when the image was pushed to the repository.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The date and time when the image was pushed to the repository.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    Information about an Amazon ECR image.

    " @@ -7104,6 +7283,10 @@ "SubnetIds":{ "shape":"NonEmptyStringList", "documentation":"

    The subnets that are associated with the cluster.

    " + }, + "EndpointPublicAccess":{ + "shape":"Boolean", + "documentation":"

    Indicates whether the Amazon EKS public API server endpoint is turned on. If the Amazon EKS public API server endpoint is turned off, your cluster's Kubernetes API server can only receive requests that originate from within the cluster VPC.

    " } }, "documentation":"

    Information about the VPC configuration used by the cluster control plane.

    " @@ -7640,7 +7823,7 @@ }, "CreatedTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the load balancer was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the load balancer was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "DnsName":{ "shape":"NonEmptyString", @@ -7840,7 +8023,7 @@ }, "CreatedTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the load balancer was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the load balancer was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "DNSName":{ "shape":"NonEmptyString", @@ -7892,7 +8075,7 @@ }, "CreatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the IAM access key was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the IAM access key was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "PrincipalId":{ "shape":"NonEmptyString", @@ -7944,7 +8127,7 @@ }, "CreationDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the session was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the session was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    Attributes of the session that the key was used for.

    " @@ -8009,7 +8192,7 @@ }, "CreateDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the IAM group was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the IAM group was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "GroupId":{ "shape":"NonEmptyString", @@ -8053,7 +8236,7 @@ }, "CreateDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the instance profile was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the instance profile was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "InstanceProfileId":{ "shape":"NonEmptyString", @@ -8091,7 +8274,7 @@ }, "CreateDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the role was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the role was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Path":{ "shape":"NonEmptyString", @@ -8135,7 +8318,7 @@ }, "CreateDate":{ "shape":"NonEmptyString", - "documentation":"

    When the policy was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    When the policy was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "DefaultVersionId":{ "shape":"NonEmptyString", @@ -8171,7 +8354,7 @@ }, "UpdateDate":{ "shape":"NonEmptyString", - "documentation":"

    When the policy was most recently updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    When the policy was most recently updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    Represents an IAM permissions policy.

    " @@ -8189,7 +8372,7 @@ }, "CreateDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the version was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the version was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    A version of an IAM policy.

    " @@ -8217,7 +8400,7 @@ }, "CreateDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the role was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the role was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "InstanceProfileList":{ "shape":"AwsIamInstanceProfileList", @@ -8270,7 +8453,7 @@ }, "CreateDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the user was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the user was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "GroupList":{ "shape":"StringList", @@ -8362,7 +8545,7 @@ }, "CreationDate":{ "shape":"Double", - "documentation":"

    Indicates when the KMS key was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the KMS key was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "KeyId":{ "shape":"NonEmptyString", @@ -8456,7 +8639,7 @@ }, "LastModified":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the function was last updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the function was last updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Layers":{ "shape":"AwsLambdaFunctionLayerList", @@ -8596,7 +8779,7 @@ }, "CreatedDate":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the version was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the version was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    Details about a Lambda layer version.

    " @@ -9143,7 +9326,7 @@ }, "ClusterCreateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "EnabledCloudWatchLogsExports":{ "shape":"StringList", @@ -9257,7 +9440,7 @@ }, "SnapshotCreateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the snapshot was taken.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the snapshot was taken.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Engine":{ "shape":"NonEmptyString", @@ -9281,7 +9464,7 @@ }, "ClusterCreateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "MasterUsername":{ "shape":"NonEmptyString", @@ -9431,7 +9614,7 @@ }, "InstanceCreateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the DB instance was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the DB instance was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "KmsKeyId":{ "shape":"NonEmptyString", @@ -9507,7 +9690,7 @@ }, "LatestRestorableTime":{ "shape":"NonEmptyString", - "documentation":"

    Specifies the latest time to which a database can be restored with point-in-time restore.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Specifies the latest time to which a database can be restored with point-in-time restore.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "AutoMinorVersionUpgrade":{ "shape":"Boolean", @@ -10082,7 +10265,7 @@ }, "SubscriptionCreationTime":{ "shape":"NonEmptyString", - "documentation":"

    The datetime when the event notification subscription was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The datetime when the event notification subscription was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    Details about an Amazon RDS event notification subscription. The subscription allows Amazon RDS to post events to an SNS topic.

    " @@ -10194,7 +10377,7 @@ }, "ManualSnapshotRetentionPeriod":{ "shape":"Integer", - "documentation":"

    The number of days that manual snapshots are retained in the destination region after they are copied from a source region.

    If the value is -1, then the manual snapshot is retained indefinitely.

    Valid values: Either -1 or an integer between 1 and 3,653

    " + "documentation":"

    The number of days that manual snapshots are retained in the destination Region after they are copied from a source Region.

    If the value is -1, then the manual snapshot is retained indefinitely.

    Valid values: Either -1 or an integer between 1 and 3,653

    " }, "RetentionPeriod":{ "shape":"Integer", @@ -10205,14 +10388,14 @@ "documentation":"

    The name of the snapshot copy grant.

    " } }, - "documentation":"

    Information about a cross-Region snapshot copy.

    " + "documentation":"

    You can configure Amazon Redshift to copy snapshots for a cluster to another Amazon Web Services Region. This parameter provides information about a cross-Region snapshot copy.

    " }, "AwsRedshiftClusterDeferredMaintenanceWindow":{ "type":"structure", "members":{ "DeferMaintenanceEndTime":{ "shape":"NonEmptyString", - "documentation":"

    The end of the time window for which maintenance was deferred.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The end of the time window for which maintenance was deferred.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "DeferMaintenanceIdentifier":{ "shape":"NonEmptyString", @@ -10220,7 +10403,7 @@ }, "DeferMaintenanceStartTime":{ "shape":"NonEmptyString", - "documentation":"

    The start of the time window for which maintenance was deferred.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The start of the time window for which maintenance was deferred.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    A time windows during which maintenance was deferred for an Amazon Redshift cluster.

    " @@ -10250,7 +10433,7 @@ }, "ClusterCreateTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the cluster was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the cluster was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "ClusterIdentifier":{ "shape":"NonEmptyString", @@ -10322,7 +10505,7 @@ }, "ExpectedNextSnapshotScheduleTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the next snapshot is expected to be taken. The cluster must have a valid snapshot schedule and have backups enabled.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the next snapshot is expected to be taken. The cluster must have a valid snapshot schedule and have backups enabled.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "ExpectedNextSnapshotScheduleTimeStatus":{ "shape":"NonEmptyString", @@ -10354,7 +10537,7 @@ }, "NextMaintenanceWindowStartTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates the start of the next maintenance window.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates the start of the next maintenance window.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "NodeType":{ "shape":"NonEmptyString", @@ -10488,11 +10671,11 @@ }, "LastFailureTime":{ "shape":"NonEmptyString", - "documentation":"

    The last time when logs failed to be delivered.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The last time when logs failed to be delivered.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "LastSuccessfulDeliveryTime":{ "shape":"NonEmptyString", - "documentation":"

    The last time that logs were delivered successfully.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The last time that logs were delivered successfully.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "LoggingEnabled":{ "shape":"Boolean", @@ -10668,7 +10851,7 @@ }, "ExpirationDate":{ "shape":"NonEmptyString", - "documentation":"

    The date when objects are moved or deleted.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The date when objects are moved or deleted.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "ExpirationInDays":{ "shape":"Integer", @@ -10818,7 +11001,7 @@ "members":{ "Date":{ "shape":"NonEmptyString", - "documentation":"

    A date on which to transition objects to the specified storage class. If you provide Date, you cannot provide Days.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    A date on which to transition objects to the specified storage class. If you provide Date, you cannot provide Days.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Days":{ "shape":"Integer", @@ -10866,7 +11049,7 @@ }, "CreatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the S3 bucket was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the S3 bucket was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "ServerSideEncryptionConfiguration":{ "shape":"AwsS3BucketServerSideEncryptionConfiguration", @@ -10899,6 +11082,10 @@ "BucketVersioningConfiguration":{ "shape":"AwsS3BucketBucketVersioningConfiguration", "documentation":"

    The versioning state of an S3 bucket.

    " + }, + "ObjectLockConfiguration":{ + "shape":"AwsS3BucketObjectLockConfiguration", + "documentation":"

    Specifies which rule Amazon S3 applies by default to every new object placed in the specified bucket.

    " } }, "documentation":"

    The details of an Amazon S3 bucket.

    " @@ -11002,6 +11189,48 @@ "type":"list", "member":{"shape":"AwsS3BucketNotificationConfigurationS3KeyFilterRule"} }, + "AwsS3BucketObjectLockConfiguration":{ + "type":"structure", + "members":{ + "ObjectLockEnabled":{ + "shape":"NonEmptyString", + "documentation":"

    Indicates whether the bucket has an Object Lock configuration enabled.

    " + }, + "Rule":{ + "shape":"AwsS3BucketObjectLockConfigurationRuleDetails", + "documentation":"

    Specifies the Object Lock rule for the specified object.

    " + } + }, + "documentation":"

    The container element for S3 Object Lock configuration parameters. In Amazon S3, Object Lock can help prevent objects from being deleted or overwritten for a fixed amount of time or indefinitely.

    " + }, + "AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails":{ + "type":"structure", + "members":{ + "Days":{ + "shape":"Integer", + "documentation":"

    The number of days that you want to specify for the default retention period.

    " + }, + "Mode":{ + "shape":"NonEmptyString", + "documentation":"

    The default Object Lock retention mode you want to apply to new objects placed in the specified bucket.

    " + }, + "Years":{ + "shape":"Integer", + "documentation":"

    The number of years that you want to specify for the default retention period.

    " + } + }, + "documentation":"

    The default S3 Object Lock retention mode and period that you want to apply to new objects placed in the specified Amazon S3 bucket.

    " + }, + "AwsS3BucketObjectLockConfigurationRuleDetails":{ + "type":"structure", + "members":{ + "DefaultRetention":{ + "shape":"AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails", + "documentation":"

    The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket.

    " + } + }, + "documentation":"

    Specifies the S3 Object Lock rule for the specified object. In Amazon S3, Object Lock can help prevent objects from being deleted or overwritten for a fixed amount of time or indefinitely.

    " + }, "AwsS3BucketServerSideEncryptionByDefault":{ "type":"structure", "members":{ @@ -11139,7 +11368,7 @@ "members":{ "LastModified":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the object was last modified.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the object was last modified.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "ETag":{ "shape":"NonEmptyString", @@ -11361,19 +11590,19 @@ }, "FirstObservedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the security-findings provider first observed the potential security issue that a finding captured.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the security-findings provider first observed the potential security issue that a finding captured.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "LastObservedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the security-findings provider most recently observed the potential security issue that a finding captured.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the security-findings provider most recently observed the potential security issue that a finding captured.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "CreatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the security-findings provider created the potential security issue that a finding captured.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the security-findings provider created the potential security issue that a finding captured.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "UpdatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the security-findings provider last updated the finding record.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the security-findings provider last updated the finding record.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Severity":{ "shape":"Severity", @@ -11519,19 +11748,19 @@ }, "FirstObservedAt":{ "shape":"DateFilterList", - "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured.

    " + "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "LastObservedAt":{ "shape":"DateFilterList", - "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured.

    " + "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "CreatedAt":{ "shape":"DateFilterList", - "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured.

    " + "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "UpdatedAt":{ "shape":"DateFilterList", - "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record.

    " + "documentation":"

    An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "SeverityProduct":{ "shape":"NumberFilterList", @@ -11663,15 +11892,15 @@ }, "ProcessParentPid":{ "shape":"NumberFilterList", - "documentation":"

    The parent process ID.

    " + "documentation":"

    The parent process ID. This field accepts positive integers between O and 2147483647.

    " }, "ProcessLaunchedAt":{ "shape":"DateFilterList", - "documentation":"

    The date/time that the process was launched.

    " + "documentation":"

    A timestamp that identifies when the process was launched.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "ProcessTerminatedAt":{ "shape":"DateFilterList", - "documentation":"

    The date/time that the process was terminated.

    " + "documentation":"

    A timestamp that identifies when the process was terminated.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "ThreatIntelIndicatorType":{ "shape":"StringFilterList", @@ -11687,7 +11916,7 @@ }, "ThreatIntelIndicatorLastObservedAt":{ "shape":"DateFilterList", - "documentation":"

    The date/time of the last observation of a threat intelligence indicator.

    " + "documentation":"

    A timestamp that identifies the last observation of a threat intelligence indicator.

    " }, "ThreatIntelIndicatorSource":{ "shape":"StringFilterList", @@ -11797,7 +12026,7 @@ }, "ResourceContainerLaunchedAt":{ "shape":"DateFilterList", - "documentation":"

    The date/time that the container was started.

    " + "documentation":"

    A timestamp that identifies when the container was started.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "ResourceDetailsOther":{ "shape":"MapFilterList", @@ -12876,6 +13105,54 @@ } } }, + "BatchGetSecurityControlsRequest":{ + "type":"structure", + "required":["SecurityControlIds"], + "members":{ + "SecurityControlIds":{ + "shape":"StringList", + "documentation":"

    A list of security controls (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters). The security control ID or Amazon Resource Name (ARN) is the same across standards.

    " + } + } + }, + "BatchGetSecurityControlsResponse":{ + "type":"structure", + "required":["SecurityControls"], + "members":{ + "SecurityControls":{ + "shape":"SecurityControls", + "documentation":"

    An array that returns the identifier, Amazon Resource Name (ARN), and other details about a security control. The same information is returned whether the request includes SecurityControlId or SecurityControlArn.

    " + }, + "UnprocessedIds":{ + "shape":"UnprocessedSecurityControls", + "documentation":"

    A security control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) for which details cannot be returned.

    " + } + } + }, + "BatchGetStandardsControlAssociationsRequest":{ + "type":"structure", + "required":["StandardsControlAssociationIds"], + "members":{ + "StandardsControlAssociationIds":{ + "shape":"StandardsControlAssociationIds", + "documentation":"

    An array with one or more objects that includes a security control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) and the Amazon Resource Name (ARN) of a standard. This field is used to query the enablement status of a control in a specified standard. The security control ID or ARN is the same across standards.

    " + } + } + }, + "BatchGetStandardsControlAssociationsResponse":{ + "type":"structure", + "required":["StandardsControlAssociationDetails"], + "members":{ + "StandardsControlAssociationDetails":{ + "shape":"StandardsControlAssociationDetails", + "documentation":"

    Provides the enablement status of a security control in a specified standard and other details for the control in relation to the specified standard.

    " + }, + "UnprocessedAssociations":{ + "shape":"UnprocessedStandardsControlAssociations", + "documentation":"

    A security control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) whose enablement status in a specified standard cannot be returned.

    " + } + } + }, "BatchImportFindingsRequest":{ "type":"structure", "required":["Findings"], @@ -13000,6 +13277,25 @@ "type":"list", "member":{"shape":"BatchUpdateFindingsUnprocessedFinding"} }, + "BatchUpdateStandardsControlAssociationsRequest":{ + "type":"structure", + "required":["StandardsControlAssociationUpdates"], + "members":{ + "StandardsControlAssociationUpdates":{ + "shape":"StandardsControlAssociationUpdates", + "documentation":"

    Updates the enablement status of a security control in a specified standard.

    " + } + } + }, + "BatchUpdateStandardsControlAssociationsResponse":{ + "type":"structure", + "members":{ + "UnprocessedAssociationUpdates":{ + "shape":"UnprocessedStandardsControlAssociationUpdates", + "documentation":"

    A security control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) whose enablement status in a specified standard couldn't be updated.

    " + } + } + }, "Boolean":{"type":"boolean"}, "BooleanFilter":{ "type":"structure", @@ -13177,7 +13473,7 @@ }, "LaunchedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the container started.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the container started.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "VolumeMounts":{ "shape":"VolumeMountList", @@ -13190,6 +13486,13 @@ }, "documentation":"

    Container details related to a finding.

    " }, + "ControlFindingGenerator":{ + "type":"string", + "enum":[ + "STANDARD_CONTROL", + "SECURITY_CONTROL" + ] + }, "ControlStatus":{ "type":"string", "enum":[ @@ -13239,7 +13542,7 @@ "members":{ "ActionTargetArn":{ "shape":"NonEmptyString", - "documentation":"

    The ARN for the custom action target.

    " + "documentation":"

    The Amazon Resource Name (ARN) for the custom action target.

    " } } }, @@ -13423,11 +13726,11 @@ "members":{ "Start":{ "shape":"NonEmptyString", - "documentation":"

    A start date for the date filter.

    " + "documentation":"

    A timestamp that provides the start date for the date filter.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "End":{ "shape":"NonEmptyString", - "documentation":"

    An end date for the date filter.

    " + "documentation":"

    A timestamp that provides the end date for the date filter.

    A correctly formatted example is 2020-05-21T20:16:34.724Z. The value cannot contain spaces, and date and time should be separated by T. For more information, see RFC 3339 section 5.6, Internet Date/Time Format.

    " }, "DateRange":{ "shape":"DateRange", @@ -13464,7 +13767,7 @@ "members":{ "AccountIds":{ "shape":"AccountIdList", - "documentation":"

    The list of account IDs for the accounts from which to decline the invitations to Security Hub.

    " + "documentation":"

    The list of prospective member account IDs for which to decline an invitation.

    " } } }, @@ -13483,7 +13786,7 @@ "members":{ "ActionTargetArn":{ "shape":"NonEmptyString", - "documentation":"

    The ARN of the custom action target to delete.

    ", + "documentation":"

    The Amazon Resource Name (ARN) of the custom action target to delete.

    ", "location":"uri", "locationName":"ActionTargetArn" } @@ -13544,7 +13847,7 @@ "members":{ "AccountIds":{ "shape":"AccountIdList", - "documentation":"

    The list of the account IDs that sent the invitations to delete.

    " + "documentation":"

    The list of member account IDs that received the invitations you want to delete.

    " } } }, @@ -13632,6 +13935,10 @@ "AutoEnableControls":{ "shape":"Boolean", "documentation":"

    Whether to automatically enable new controls when they are added to standards that are enabled.

    If set to true, then new controls for enabled standards are enabled automatically. If set to false, then new controls are not enabled.

    " + }, + "ControlFindingGenerator":{ + "shape":"ControlFindingGenerator", + "documentation":"

    Specifies whether the calling account has consolidated control findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub generates a single finding for a control check even when the check applies to multiple enabled standards.

    If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings for a control check when the check applies to multiple enabled standards.

    The value for this field in a member account matches the value in the administrator account. For accounts that aren't part of an organization, the default value of this field is SECURITY_CONTROL if you enabled Security Hub on or after February 23, 2023.

    " } } }, @@ -13901,6 +14208,10 @@ "EnableDefaultStandards":{ "shape":"Boolean", "documentation":"

    Whether to enable the security standards that Security Hub has designated as automatically enabled. If you do not provide a value for EnableDefaultStandards, it is set to true. To not enable the automatically enabled standards, set EnableDefaultStandards to false.

    " + }, + "ControlFindingGenerator":{ + "shape":"ControlFindingGenerator", + "documentation":"

    This field, used when enabling Security Hub, specifies whether the calling account has consolidated control findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub generates a single finding for a control check even when the check applies to multiple enabled standards.

    If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings for a control check when the check applies to multiple enabled standards.

    The value for this field in a member account matches the value in the administrator account. For accounts that aren't part of an organization, the default value of this field is SECURITY_CONTROL if you enabled Security Hub on or after February 23, 2023.

    " } } }, @@ -14745,6 +15056,81 @@ } } }, + "ListSecurityControlDefinitionsRequest":{ + "type":"structure", + "members":{ + "StandardsArn":{ + "shape":"NonEmptyString", + "documentation":"

    The Amazon Resource Name (ARN) of the standard that you want to view controls for.

    ", + "location":"querystring", + "locationName":"StandardsArn" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    Optional pagination parameter.

    ", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    An optional parameter that limits the total results of the API response to the specified number. If this parameter isn't provided in the request, the results include the first 25 security controls that apply to the specified standard. The results also include a NextToken parameter that you can use in a subsequent API call to get the next 25 controls. This repeats until all controls for the standard are returned.

    ", + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "ListSecurityControlDefinitionsResponse":{ + "type":"structure", + "required":["SecurityControlDefinitions"], + "members":{ + "SecurityControlDefinitions":{ + "shape":"SecurityControlDefinitions", + "documentation":"

    An array of controls that apply to the specified standard.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination parameter that's included in the response only if it was included in the request.

    " + } + } + }, + "ListStandardsControlAssociationsRequest":{ + "type":"structure", + "required":["SecurityControlId"], + "members":{ + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    The identifier of the control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) that you want to determine the enablement status of in each enabled standard.

    ", + "location":"querystring", + "locationName":"SecurityControlId" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    Optional pagination parameter.

    ", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    An optional parameter that limits the total results of the API response to the specified number. If this parameter isn't provided in the request, the results include the first 25 standard and control associations. The results also include a NextToken parameter that you can use in a subsequent API call to get the next 25 associations. This repeats until all associations for the specified control are returned. The number of results is limited by the number of supported Security Hub standards that you've enabled in the calling account.

    ", + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "ListStandardsControlAssociationsResponse":{ + "type":"structure", + "required":["StandardsControlAssociationSummaries"], + "members":{ + "StandardsControlAssociationSummaries":{ + "shape":"StandardsControlAssociationSummaries", + "documentation":"

    An array that provides the enablement status and other details for each security control that applies to each enabled standard.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination parameter that's included in the response only if it was included in the request.

    " + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -15086,7 +15472,7 @@ }, "UpdatedAt":{ "shape":"NonEmptyString", - "documentation":"

    The timestamp of when the note was updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    The timestamp of when the note was updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    A user-defined note added to a finding.

    " @@ -15221,11 +15607,11 @@ }, "OperationStartTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the operation started.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the operation started.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "OperationEndTime":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the operation completed.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the operation completed.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "RebootOption":{ "shape":"NonEmptyString", @@ -15323,15 +15709,15 @@ }, "ParentPid":{ "shape":"Integer", - "documentation":"

    The parent process ID.

    " + "documentation":"

    The parent process ID. This field accepts positive integers between O and 2147483647.

    " }, "LaunchedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the process was launched.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the process was launched.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "TerminatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the process was terminated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the process was terminated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    The details of process-related information about a finding.

    " @@ -15387,6 +15773,20 @@ "type":"list", "member":{"shape":"Product"} }, + "PropagatingVgwSetDetails":{ + "type":"structure", + "members":{ + "GatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the virtual private gateway.

    " + } + }, + "documentation":"

    Describes a virtual private gateway propagating route.

    " + }, + "PropagatingVgwSetList":{ + "type":"list", + "member":{"shape":"PropagatingVgwSetDetails"} + }, "Range":{ "type":"structure", "members":{ @@ -15453,6 +15853,13 @@ "type":"list", "member":{"shape":"Record"} }, + "RegionAvailabilityStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "UNAVAILABLE" + ] + }, "RelatedFinding":{ "type":"structure", "required":[ @@ -15867,7 +16274,11 @@ "AwsEc2LaunchTemplate":{"shape":"AwsEc2LaunchTemplateDetails"}, "AwsSageMakerNotebookInstance":{"shape":"AwsSageMakerNotebookInstanceDetails"}, "AwsWafv2WebAcl":{"shape":"AwsWafv2WebAclDetails"}, - "AwsWafv2RuleGroup":{"shape":"AwsWafv2RuleGroupDetails"} + "AwsWafv2RuleGroup":{"shape":"AwsWafv2RuleGroupDetails"}, + "AwsEc2RouteTable":{ + "shape":"AwsEc2RouteTableDetails", + "documentation":"

    Provides details about a route table. A route table contains a set of rules, called routes, that determine where to direct network traffic from your subnet or gateway.

    " + } }, "documentation":"

    Additional details about a resource related to a finding.

    To provide the details, use the object that corresponds to the resource type. For example, if the resource type is AwsEc2Instance, then you use the AwsEc2Instance object to provide the details.

    If the type-specific object does not contain all of the fields you want to populate, then you use the Other object to populate those additional fields.

    You also use the Other object to populate the details when the selected type does not have a corresponding object.

    " }, @@ -15903,6 +16314,80 @@ "type":"list", "member":{"shape":"Result"} }, + "RouteSetDetails":{ + "type":"structure", + "members":{ + "CarrierGatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the carrier gateway.

    " + }, + "CoreNetworkArn":{ + "shape":"NonEmptyString", + "documentation":"

    The Amazon Resource Name (ARN) of the core network.

    " + }, + "DestinationCidrBlock":{ + "shape":"NonEmptyString", + "documentation":"

    The IPv4 CIDR block used for the destination match.

    " + }, + "DestinationIpv6CidrBlock":{ + "shape":"NonEmptyString", + "documentation":"

    The IPv6 CIDR block used for the destination match.

    " + }, + "DestinationPrefixListId":{ + "shape":"NonEmptyString", + "documentation":"

    The prefix of the destination Amazon Web Service.

    " + }, + "EgressOnlyInternetGatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the egress-only internet gateway.

    " + }, + "GatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of a gateway attached to your VPC.

    " + }, + "InstanceId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of a NAT instance in your VPC.

    " + }, + "InstanceOwnerId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the Amazon Web Services account that owns the instance.

    " + }, + "LocalGatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the local gateway.

    " + }, + "NatGatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of a NAT gateway.

    " + }, + "NetworkInterfaceId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of the network interface.

    " + }, + "Origin":{ + "shape":"NonEmptyString", + "documentation":"

    Describes how the route was created.

    " + }, + "State":{ + "shape":"NonEmptyString", + "documentation":"

    The state of the route.

    " + }, + "TransitGatewayId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of a transit gateway.

    " + }, + "VpcPeeringConnectionId":{ + "shape":"NonEmptyString", + "documentation":"

    The ID of a VPC peering connection.

    " + } + }, + "documentation":"

    Provides details about the routes in the route table.

    " + }, + "RouteSetList":{ + "type":"list", + "member":{"shape":"RouteSetDetails"} + }, "RuleGroupDetails":{ "type":"structure", "members":{ @@ -16245,6 +16730,95 @@ }, "documentation":"

    A list of port ranges.

    " }, + "SecurityControl":{ + "type":"structure", + "required":[ + "SecurityControlId", + "SecurityControlArn", + "Title", + "Description", + "RemediationUrl", + "SeverityRating", + "SecurityControlStatus" + ], + "members":{ + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    The unique identifier of a security control across standards. Values for this field typically consist of an Amazon Web Service name and a number, such as APIGateway.3.

    " + }, + "SecurityControlArn":{ + "shape":"NonEmptyString", + "documentation":"

    The Amazon Resource Name (ARN) for a security control across standards, such as arn:aws:securityhub:eu-central-1:123456789012:security-control/S3.1. This parameter doesn't mention a specific standard.

    " + }, + "Title":{ + "shape":"NonEmptyString", + "documentation":"

    The title of a security control.

    " + }, + "Description":{ + "shape":"NonEmptyString", + "documentation":"

    The description of a security control across standards. This typically summarizes how Security Hub evaluates the control and the conditions under which it produces a failed finding. This parameter doesn't reference a specific standard.

    " + }, + "RemediationUrl":{ + "shape":"NonEmptyString", + "documentation":"

    A link to Security Hub documentation that explains how to remediate a failed finding for a security control.

    " + }, + "SeverityRating":{ + "shape":"SeverityRating", + "documentation":"

    The severity of a security control. For more information about how Security Hub determines control severity, see Assigning severity to control findings in the Security Hub User Guide.

    " + }, + "SecurityControlStatus":{ + "shape":"ControlStatus", + "documentation":"

    The status of a security control based on the compliance status of its findings. For more information about how control status is determined, see Determining the overall status of a control from its findings in the Security Hub User Guide.

    " + } + }, + "documentation":"

    A security control in Security Hub describes a security best practice related to a specific resource.

    " + }, + "SecurityControlDefinition":{ + "type":"structure", + "required":[ + "SecurityControlId", + "Title", + "Description", + "RemediationUrl", + "SeverityRating", + "CurrentRegionAvailability" + ], + "members":{ + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    The unique identifier of a security control across standards. Values for this field typically consist of an Amazon Web Service name and a number (for example, APIGateway.3). This parameter differs from SecurityControlArn, which is a unique Amazon Resource Name (ARN) assigned to a control. The ARN references the security control ID (for example, arn:aws:securityhub:eu-central-1:123456789012:security-control/APIGateway.3).

    " + }, + "Title":{ + "shape":"NonEmptyString", + "documentation":"

    The title of a security control.

    " + }, + "Description":{ + "shape":"NonEmptyString", + "documentation":"

    The description of a security control across standards. This typically summarizes how Security Hub evaluates the control and the conditions under which it produces a failed finding. This parameter doesn't reference a specific standard.

    " + }, + "RemediationUrl":{ + "shape":"NonEmptyString", + "documentation":"

    A link to Security Hub documentation that explains how to remediate a failed finding for a security control.

    " + }, + "SeverityRating":{ + "shape":"SeverityRating", + "documentation":"

    The severity of a security control. For more information about how Security Hub determines control severity, see Assigning severity to control findings in the Security Hub User Guide.

    " + }, + "CurrentRegionAvailability":{ + "shape":"RegionAvailabilityStatus", + "documentation":"

    Specifies whether a security control is available in the current Amazon Web Services Region.

    " + } + }, + "documentation":"

    Provides metadata for a security control, including its unique standard-agnostic identifier, title, description, severity, availability in Amazon Web Services Regions, and a link to remediation steps.

    " + }, + "SecurityControlDefinitions":{ + "type":"list", + "member":{"shape":"SecurityControlDefinition"} + }, + "SecurityControls":{ + "type":"list", + "member":{"shape":"SecurityControl"} + }, "SecurityGroups":{ "type":"list", "member":{"shape":"NonEmptyString"} @@ -16313,7 +16887,7 @@ "documentation":"

    The native severity from the finding product that generated the finding.

    " } }, - "documentation":"

    The severity of the finding.

    The finding provider can provide the initial severity. The finding provider can only update the severity if it has not been updated using BatchUpdateFindings.

    The finding must have either Label or Normalized populated. If only one of these attributes is populated, then Security Hub automatically populates the other one. If neither attribute is populated, then the finding is invalid. Label is the preferred attribute.

    " + "documentation":"

    The severity of the finding.

    The finding provider can provide the initial severity. The finding provider can only update the severity if it hasn't been updated using BatchUpdateFindings.

    The finding must have either Label or Normalized populated. If only one of these attributes is populated, then Security Hub automatically populates the other one. If neither attribute is populated, then the finding is invalid. Label is the preferred attribute.

    " }, "SeverityLabel":{ "type":"string", @@ -16508,6 +17082,171 @@ }, "documentation":"

    Details for an individual security standard control.

    " }, + "StandardsControlArnList":{ + "type":"list", + "member":{"shape":"NonEmptyString"} + }, + "StandardsControlAssociationDetail":{ + "type":"structure", + "required":[ + "StandardsArn", + "SecurityControlId", + "SecurityControlArn", + "AssociationStatus" + ], + "members":{ + "StandardsArn":{ + "shape":"NonEmptyString", + "documentation":"

    The Amazon Resource Name (ARN) of a security standard.

    " + }, + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    The unique identifier of a security control across standards. Values for this field typically consist of an Amazon Web Service name and a number, such as APIGateway.3.

    " + }, + "SecurityControlArn":{ + "shape":"NonEmptyString", + "documentation":"

    The ARN of a security control across standards, such as arn:aws:securityhub:eu-central-1:123456789012:security-control/S3.1. This parameter doesn't mention a specific standard.

    " + }, + "AssociationStatus":{ + "shape":"AssociationStatus", + "documentation":"

    Specifies whether a control is enabled or disabled in a specified standard.

    " + }, + "RelatedRequirements":{ + "shape":"RelatedRequirementsList", + "documentation":"

    The requirement that underlies a control in the compliance framework related to the standard.

    " + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The time at which the enablement status of the control in the specified standard was last updated.

    " + }, + "UpdatedReason":{ + "shape":"NonEmptyString", + "documentation":"

    The reason for updating the enablement status of a control in a specified standard.

    " + }, + "StandardsControlTitle":{ + "shape":"NonEmptyString", + "documentation":"

    The title of a control. This field may reference a specific standard.

    " + }, + "StandardsControlDescription":{ + "shape":"NonEmptyString", + "documentation":"

    The description of a control. This typically summarizes how Security Hub evaluates the control and the conditions under which it produces a failed finding. This parameter may reference a specific standard.

    " + }, + "StandardsControlArns":{ + "shape":"StandardsControlArnList", + "documentation":"

    Provides the input parameter that Security Hub uses to call the UpdateStandardsControl API. This API can be used to enable or disable a control in a specified standard.

    " + } + }, + "documentation":"

    Provides details about a control's enablement status in a specified standard.

    " + }, + "StandardsControlAssociationDetails":{ + "type":"list", + "member":{"shape":"StandardsControlAssociationDetail"} + }, + "StandardsControlAssociationId":{ + "type":"structure", + "required":[ + "SecurityControlId", + "StandardsArn" + ], + "members":{ + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    The unique identifier (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) of a security control across standards.

    " + }, + "StandardsArn":{ + "shape":"NonEmptyString", + "documentation":"

    The ARN of a standard.

    " + } + }, + "documentation":"

    An array with one or more objects that includes a security control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) and the Amazon Resource Name (ARN) of a standard. The security control ID or ARN is the same across standards.

    " + }, + "StandardsControlAssociationIds":{ + "type":"list", + "member":{"shape":"StandardsControlAssociationId"} + }, + "StandardsControlAssociationSummaries":{ + "type":"list", + "member":{"shape":"StandardsControlAssociationSummary"} + }, + "StandardsControlAssociationSummary":{ + "type":"structure", + "required":[ + "StandardsArn", + "SecurityControlId", + "SecurityControlArn", + "AssociationStatus" + ], + "members":{ + "StandardsArn":{ + "shape":"NonEmptyString", + "documentation":"

    The Amazon Resource Name (ARN) of a standard.

    " + }, + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    A unique standard-agnostic identifier for a control. Values for this field typically consist of an Amazon Web Service and a number, such as APIGateway.5. This field doesn't reference a specific standard.

    " + }, + "SecurityControlArn":{ + "shape":"NonEmptyString", + "documentation":"

    The ARN of a control, such as arn:aws:securityhub:eu-central-1:123456789012:security-control/S3.1. This parameter doesn't mention a specific standard.

    " + }, + "AssociationStatus":{ + "shape":"AssociationStatus", + "documentation":"

    The enablement status of a control in a specific standard.

    " + }, + "RelatedRequirements":{ + "shape":"RelatedRequirementsList", + "documentation":"

    The requirement that underlies this control in the compliance framework related to the standard.

    " + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The last time that a control's enablement status in a specified standard was updated.

    " + }, + "UpdatedReason":{ + "shape":"NonEmptyString", + "documentation":"

    The reason for updating the control's enablement status in a specified standard.

    " + }, + "StandardsControlTitle":{ + "shape":"NonEmptyString", + "documentation":"

    The title of a control.

    " + }, + "StandardsControlDescription":{ + "shape":"NonEmptyString", + "documentation":"

    The description of a control. This typically summarizes how Security Hub evaluates the control and the conditions under which it produces a failed finding. The parameter may reference a specific standard.

    " + } + }, + "documentation":"

    An array that provides the enablement status and other details for each control that applies to each enabled standard.

    " + }, + "StandardsControlAssociationUpdate":{ + "type":"structure", + "required":[ + "StandardsArn", + "SecurityControlId", + "AssociationStatus" + ], + "members":{ + "StandardsArn":{ + "shape":"NonEmptyString", + "documentation":"

    The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status.

    " + }, + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    The unique identifier for the security control whose enablement status you want to update.

    " + }, + "AssociationStatus":{ + "shape":"AssociationStatus", + "documentation":"

    The desired enablement status of the control in the standard.

    " + }, + "UpdatedReason":{ + "shape":"NonEmptyString", + "documentation":"

    The reason for updating the control's enablement status in the standard.

    " + } + }, + "documentation":"

    An array of requested updates to the enablement status of controls in specified standards. The objects in the array include a security control ID, the Amazon Resource Name (ARN) of the standard, the requested enablement status, and the reason for updating the enablement status.

    " + }, + "StandardsControlAssociationUpdates":{ + "type":"list", + "member":{"shape":"StandardsControlAssociationUpdate"} + }, "StandardsControls":{ "type":"list", "member":{"shape":"StandardsControl"} @@ -16792,7 +17531,7 @@ }, "LastObservedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the most recent instance of a threat intelligence indicator was observed.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the most recent instance of a threat intelligence indicator was observed.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "Source":{ "shape":"NonEmptyString", @@ -16848,6 +17587,93 @@ "type":"list", "member":{"shape":"NonEmptyString"} }, + "UnprocessedErrorCode":{ + "type":"string", + "enum":[ + "INVALID_INPUT", + "ACCESS_DENIED", + "NOT_FOUND", + "LIMIT_EXCEEDED" + ] + }, + "UnprocessedSecurityControl":{ + "type":"structure", + "required":[ + "SecurityControlId", + "ErrorCode" + ], + "members":{ + "SecurityControlId":{ + "shape":"NonEmptyString", + "documentation":"

    The control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) for which a response couldn't be returned.

    " + }, + "ErrorCode":{ + "shape":"UnprocessedErrorCode", + "documentation":"

    The error code for the unprocessed security control.

    " + }, + "ErrorReason":{ + "shape":"NonEmptyString", + "documentation":"

    The reason why the security control was unprocessed.

    " + } + }, + "documentation":"

    Provides details about a security control for which a response couldn't be returned.

    " + }, + "UnprocessedSecurityControls":{ + "type":"list", + "member":{"shape":"UnprocessedSecurityControl"} + }, + "UnprocessedStandardsControlAssociation":{ + "type":"structure", + "required":[ + "StandardsControlAssociationId", + "ErrorCode" + ], + "members":{ + "StandardsControlAssociationId":{ + "shape":"StandardsControlAssociationId", + "documentation":"

    An array with one or more objects that includes a security control (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters) and the Amazon Resource Name (ARN) of a standard. This parameter shows the specific controls for which the enablement status couldn't be retrieved in specified standards when calling BatchUpdateStandardsControlAssociations.

    " + }, + "ErrorCode":{ + "shape":"UnprocessedErrorCode", + "documentation":"

    The error code for the unprocessed standard and control association.

    " + }, + "ErrorReason":{ + "shape":"NonEmptyString", + "documentation":"

    The reason why the standard and control association was unprocessed.

    " + } + }, + "documentation":"

    Provides details about which control's enablement status couldn't be retrieved in a specified standard when calling BatchUpdateStandardsControlAssociations. This parameter also provides details about why the request was unprocessed.

    " + }, + "UnprocessedStandardsControlAssociationUpdate":{ + "type":"structure", + "required":[ + "StandardsControlAssociationUpdate", + "ErrorCode" + ], + "members":{ + "StandardsControlAssociationUpdate":{ + "shape":"StandardsControlAssociationUpdate", + "documentation":"

    An array of control and standard associations for which an update failed when calling BatchUpdateStandardsControlAssociations.

    " + }, + "ErrorCode":{ + "shape":"UnprocessedErrorCode", + "documentation":"

    The error code for the unprocessed update of the control's enablement status in the specified standard.

    " + }, + "ErrorReason":{ + "shape":"NonEmptyString", + "documentation":"

    The reason why a control's enablement status in the specified standard couldn't be updated.

    " + } + }, + "documentation":"

    Provides details about which control's enablement status could not be updated in a specified standard when calling the BatchUpdateStandardsControlAssociations API. This parameter also provides details about why the request was unprocessed.

    " + }, + "UnprocessedStandardsControlAssociationUpdates":{ + "type":"list", + "member":{"shape":"UnprocessedStandardsControlAssociationUpdate"} + }, + "UnprocessedStandardsControlAssociations":{ + "type":"list", + "member":{"shape":"UnprocessedStandardsControlAssociation"} + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -17018,6 +17844,10 @@ "AutoEnableControls":{ "shape":"Boolean", "documentation":"

    Whether to automatically enable new controls when they are added to standards that are enabled.

    By default, this is set to true, and new controls are enabled automatically. To not automatically enable new controls, set this to false.

    " + }, + "ControlFindingGenerator":{ + "shape":"ControlFindingGenerator", + "documentation":"

    Updates whether the calling account has consolidated control findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub generates a single finding for a control check even when the check applies to multiple enabled standards.

    If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings for a control check when the check applies to multiple enabled standards.

    For accounts that are part of an organization, this value can only be updated in the administrator account.

    " } } }, @@ -17189,11 +18019,11 @@ }, "VendorCreatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the vulnerability advisory was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the vulnerability advisory was created.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " }, "VendorUpdatedAt":{ "shape":"NonEmptyString", - "documentation":"

    Indicates when the vulnerability advisory was last updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

    " + "documentation":"

    Indicates when the vulnerability advisory was last updated.

    Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

    " } }, "documentation":"

    A vendor that generates a vulnerability report.

    " @@ -17274,5 +18104,5 @@ "documentation":"

    Used to update information about the investigation into the finding.

    " } }, - "documentation":"

    Security Hub provides you with a comprehensive view of the security state of your Amazon Web Services environment and resources. It also provides you with the readiness status of your environment based on controls from supported security standards. Security Hub collects security data from Amazon Web Services accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the Security HubUser Guide .

    When you use operations in the Security Hub API, the requests are executed only in the Amazon Web Services Region that is currently active or in the specific Amazon Web Services Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, execute the same command for each Region to apply the change to.

    For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of the member account with the administrator account is created only in the us-west-2 Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from.

    The following throttling limits apply to using Security Hub API operations.

    • BatchEnableStandards - RateLimit of 1 request per second, BurstLimit of 1 request per second.

    • GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests per second.

    • BatchImportFindings - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

    • BatchUpdateFindings - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

    • UpdateStandardsControl - RateLimit of 1 request per second, BurstLimit of 5 requests per second.

    • All other operations - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

    " + "documentation":"

    Security Hub provides you with a comprehensive view of the security state of your Amazon Web Services environment and resources. It also provides you with the readiness status of your environment based on controls from supported security standards. Security Hub collects security data from Amazon Web Services accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the Security HubUser Guide.

    When you use operations in the Security Hub API, the requests are executed only in the Amazon Web Services Region that is currently active or in the specific Amazon Web Services Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, run the same command for each Region in which you want to apply the change.

    For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of the member account with the administrator account is created only in the us-west-2 Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from.

    The following throttling limits apply to using Security Hub API operations.

    • BatchEnableStandards - RateLimit of 1 request per second. BurstLimit of 1 request per second.

    • GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests per second.

    • BatchImportFindings - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

    • BatchUpdateFindings - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

    • UpdateStandardsControl - RateLimit of 1 request per second. BurstLimit of 5 requests per second.

    • All other operations - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

    " } diff --git a/services/securitylake/pom.xml b/services/securitylake/pom.xml index a659bd5d11a7..8320243c692f 100644 --- a/services/securitylake/pom.xml +++ b/services/securitylake/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT securitylake AWS Java SDK :: Services :: Security Lake diff --git a/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json index de451521e86e..565deb8ab107 100644 --- a/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/securitylake/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securitylake-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://securitylake-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securitylake-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://securitylake-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securitylake.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://securitylake.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securitylake.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://securitylake.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/securitylake/src/main/resources/codegen-resources/endpoint-tests.json b/services/securitylake/src/main/resources/codegen-resources/endpoint-tests.json index c25bed0b2a3e..391f37669d90 100644 --- a/services/securitylake/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/securitylake/src/main/resources/codegen-resources/endpoint-tests.json @@ -8,9 +8,9 @@ } }, "params": { - "UseDualStack": true, + "UseFIPS": true, "Region": "us-gov-east-1", - "UseFIPS": true + "UseDualStack": true } }, { @@ -21,9 +21,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": true, "Region": "us-gov-east-1", - "UseFIPS": true + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { - "UseDualStack": true, + "UseFIPS": false, "Region": "us-gov-east-1", - "UseFIPS": false + "UseDualStack": true } }, { @@ -47,9 +47,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": false, "Region": "us-gov-east-1", - "UseFIPS": false + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { - "UseDualStack": true, + "UseFIPS": true, "Region": "cn-north-1", - "UseFIPS": true + "UseDualStack": true } }, { @@ -73,9 +73,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": true, "Region": "cn-north-1", - "UseFIPS": true + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { - "UseDualStack": true, + "UseFIPS": false, "Region": "cn-north-1", - "UseFIPS": false + "UseDualStack": true } }, { @@ -99,9 +99,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": false, "Region": "cn-north-1", - "UseFIPS": false + "UseDualStack": false } }, { @@ -110,9 +110,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "UseFIPS": true, "Region": "us-iso-east-1", - "UseFIPS": true + "UseDualStack": true } }, { @@ -123,9 +123,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": true, "Region": "us-iso-east-1", - "UseFIPS": true + "UseDualStack": false } }, { @@ -134,9 +134,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "UseFIPS": false, "Region": "us-iso-east-1", - "UseFIPS": false + "UseDualStack": true } }, { @@ -147,9 +147,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": false, "Region": "us-iso-east-1", - "UseFIPS": false + "UseDualStack": false } }, { @@ -160,9 +160,9 @@ } }, "params": { - "UseDualStack": true, + "UseFIPS": true, "Region": "us-east-1", - "UseFIPS": true + "UseDualStack": true } }, { @@ -173,9 +173,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": true, "Region": "us-east-1", - "UseFIPS": true + "UseDualStack": false } }, { @@ -186,9 +186,9 @@ } }, "params": { - "UseDualStack": true, + "UseFIPS": false, "Region": "us-east-1", - "UseFIPS": false + "UseDualStack": true } }, { @@ -199,9 +199,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": false, "Region": "us-east-1", - "UseFIPS": false + "UseDualStack": false } }, { @@ -210,9 +210,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "UseFIPS": true, "Region": "us-isob-east-1", - "UseFIPS": true + "UseDualStack": true } }, { @@ -223,9 +223,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": true, "Region": "us-isob-east-1", - "UseFIPS": true + "UseDualStack": false } }, { @@ -234,9 +234,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "UseFIPS": false, "Region": "us-isob-east-1", - "UseFIPS": false + "UseDualStack": true } }, { @@ -247,9 +247,9 @@ } }, "params": { - "UseDualStack": false, + "UseFIPS": false, "Region": "us-isob-east-1", - "UseFIPS": false + "UseDualStack": false } }, { @@ -260,9 +260,9 @@ } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -272,9 +272,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -284,9 +284,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, "Endpoint": "https://example.com" } } diff --git a/services/securitylake/src/main/resources/codegen-resources/service-2.json b/services/securitylake/src/main/resources/codegen-resources/service-2.json index c7682ff8a0c0..5ee4b444af8c 100644 --- a/services/securitylake/src/main/resources/codegen-resources/service-2.json +++ b/services/securitylake/src/main/resources/codegen-resources/service-2.json @@ -161,7 +161,7 @@ {"shape":"AccountNotFoundException"}, {"shape":"InvalidInputException"} ], - "documentation":"

    Notifies the subscriber when new data is written to the data lake for the sources that the subscriber consumes in Security Lake.

    " + "documentation":"

    Notifies the subscriber when new data is written to the data lake for the sources that the subscriber consumes in Security Lake. You can create only one subscriber notification per subscriber.

    " }, "DeleteAwsLogSource":{ "name":"DeleteAwsLogSource", @@ -237,7 +237,7 @@ {"shape":"AccessDeniedException"}, {"shape":"AccountNotFoundException"} ], - "documentation":"

    Automatically deletes Amazon Security Lake to stop collecting security data. When you delete Amazon Security Lake from your account, Security Lake is disabled in all Regions. Also, this API automatically takes steps to remove the account from Security Lake .

    This operation disables security data collection from sources, deletes data stored, and stops making data accessible to subscribers. Security Lake also deletes all the existing settings and resources that it stores or maintains for your Amazon Web Services account in the current Region, including security log and event data. The DeleteDatalake operation does not delete the Amazon S3 bucket, which is owned by your Amazon Web Services account. For more information, see the Amazon Security Lake User Guide.

    " + "documentation":"

    DeleteDatalakeAutoEnable removes automatic enablement of configuration settings for new member accounts (but keeps settings for the delegated administrator) from Amazon Security Lake. You must run this API using credentials of the delegated administrator. When you run this API, new member accounts that are added after the organization enables Security Lake won't contribute to the data lake.

    " }, "DeleteDatalakeDelegatedAdmin":{ "name":"DeleteDatalakeDelegatedAdmin", @@ -566,7 +566,7 @@ {"shape":"AccountNotFoundException"}, {"shape":"InvalidInputException"} ], - "documentation":"

    Creates a new subscription notification or adds the existing subscription notification setting for the specified subscription ID.

    " + "documentation":"

    Updates an existing notification method for the subscription (SQS or HTTPs endpoint) or switches the notification subscription endpoint for a subscriber.

    " } }, "shapes":{ @@ -574,6 +574,10 @@ "type":"structure", "required":["message"], "members":{ + "errorCode":{ + "shape":"String", + "documentation":"

    A coded string to provide more information about the access denied exception. You can use the error code to check the exception type.

    " + }, "message":{"shape":"String"} }, "documentation":"

    You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization request. An explicit denial occurs when a policy contains a Deny statement for the specific Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also no applicable Allow statement.

    ", @@ -985,9 +989,17 @@ "type":"structure", "required":["subscriptionId"], "members":{ + "resourceShareArn":{ + "shape":"ResourceShareArn", + "documentation":"

    The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.

    " + }, + "resourceShareName":{ + "shape":"ResourceShareName", + "documentation":"

    The name of the resource share.

    " + }, "roleArn":{ "shape":"RoleArn", - "documentation":"

    The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and how to use them in policies, see IAM identifiers in the Identity and Access Management (IAM) User Guide. .

    " + "documentation":"

    The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and how to use them in policies, see Amazon Security Lake User Guide.

    " }, "s3BucketArn":{ "shape":"S3BucketArn", @@ -1025,7 +1037,7 @@ }, "roleArn":{ "shape":"RoleArn", - "documentation":"

    The Amazon Resource Name (ARN) of the EventBridge API destinations IAM role that you created.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the EventBridge API destinations IAM role that you created. For more information about ARNs and how to use them in policies, see Managing data access and Amazon Web Services Managed Policies in the Amazon Security Lake User Guide.

    " }, "subscriptionEndpoint":{ "shape":"CreateSubscriptionNotificationConfigurationRequestSubscriptionEndpointString", @@ -1033,7 +1045,7 @@ }, "subscriptionId":{ "shape":"UUID", - "documentation":"

    The subscription ID for the notification subscription/

    ", + "documentation":"

    The subscription ID for the notification subscription.

    ", "location":"uri", "locationName":"subscriptionId" } @@ -1119,7 +1131,7 @@ "members":{ "removeFromConfigurationForNewAccounts":{ "shape":"AutoEnableNewRegionConfigurationList", - "documentation":"

    Delete Amazon Security Lake with the specified configuration settings to stop ingesting security data for new accounts in Security Lake.

    " + "documentation":"

    Remove automatic enablement of configuration settings for new member accounts in Security Lake.

    " } } }, @@ -1504,6 +1516,10 @@ "tagsMap":{ "shape":"TagsMap", "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define.

    " + }, + "updateStatus":{ + "shape":"UpdateStatus", + "documentation":"

    The status of the last UpdateDatalake or DeleteDatalake API request.

    " } }, "documentation":"

    Provides details of Amazon Security Lake lake configuration object.

    " @@ -1513,6 +1529,20 @@ "key":{"shape":"Region"}, "value":{"shape":"LakeConfigurationResponse"} }, + "LastUpdateFailure":{ + "type":"structure", + "members":{ + "code":{ + "shape":"String", + "documentation":"

    The reason code for the failure of the last UpdateDatalake or DeleteDatalake API request.

    " + }, + "reason":{ + "shape":"String", + "documentation":"

    The reason for the failure of the last UpdateDatalakeor DeleteDatalake API request.

    " + } + }, + "documentation":"

    The details of the last UpdateDatalake or DeleteDatalake API request which failed.

    " + }, "ListDatalakeExceptionsRequest":{ "type":"structure", "members":{ @@ -1741,6 +1771,11 @@ }, "exception":true }, + "ResourceShareArn":{"type":"string"}, + "ResourceShareName":{ + "type":"string", + "pattern":"^LakeFormation(?:-V[0-9]+)-([a-zA-Z0-9]+)-([\\\\\\w\\-_:/.@=+]*)$" + }, "RetentionSetting":{ "type":"structure", "members":{ @@ -1890,6 +1925,14 @@ "shape":"SafeString", "documentation":"

    The external ID of the subscriber. The external ID lets the user that is assuming the role assert the circumstances in which they are operating. It also provides a way for the account owner to permit the role to be assumed only under specific circumstances.

    " }, + "resourceShareArn":{ + "shape":"ResourceShareArn", + "documentation":"

    The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.

    This field is available only for Lake Formation subscribers created after March 8, 2023.

    " + }, + "resourceShareName":{ + "shape":"ResourceShareName", + "documentation":"

    The name of the resource share.

    " + }, "roleArn":{ "shape":"RoleArn", "documentation":"

    The Amazon Resource Name (ARN) specifying the role of the subscriber.

    " @@ -2063,6 +2106,24 @@ "members":{ } }, + "UpdateStatus":{ + "type":"structure", + "members":{ + "lastUpdateFailure":{ + "shape":"LastUpdateFailure", + "documentation":"

    The details of the last UpdateDatalakeor DeleteDatalake API request which failed.

    " + }, + "lastUpdateRequestId":{ + "shape":"String", + "documentation":"

    The unique ID for the UpdateDatalake or DeleteDatalake API request.

    " + }, + "lastUpdateStatus":{ + "shape":"settingsStatus", + "documentation":"

    The status of the last UpdateDatalake or DeleteDatalake API request that was requested.

    " + } + }, + "documentation":"

    The status of the last UpdateDatalake or DeleteDatalake API request. This is set to Completed after the configuration is updated, or removed if deletion of the data lake is successful.

    " + }, "UpdateSubscriberRequest":{ "type":"structure", "required":[ @@ -2131,7 +2192,7 @@ }, "roleArn":{ "shape":"RoleArn", - "documentation":"

    The Amazon Resource Name (ARN) specifying the role of the subscriber.

    " + "documentation":"

    The Amazon Resource Name (ARN) specifying the role of the subscriber. For more information about ARNs and how to use them in policies, see, see the Managing data access and Amazon Web Services Managed Policiesin the Amazon Security Lake User Guide.

    " }, "subscriptionEndpoint":{ "shape":"UpdateSubscriptionNotificationConfigurationRequestSubscriptionEndpointString", diff --git a/services/serverlessapplicationrepository/pom.xml b/services/serverlessapplicationrepository/pom.xml index 255d17fea65c..884d69591ae7 100644 --- a/services/serverlessapplicationrepository/pom.xml +++ b/services/serverlessapplicationrepository/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 serverlessapplicationrepository diff --git a/services/servicecatalog/pom.xml b/services/servicecatalog/pom.xml index 4a8211581922..95f1688e3b3c 100644 --- a/services/servicecatalog/pom.xml +++ b/services/servicecatalog/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT servicecatalog AWS Java SDK :: Services :: AWS Service Catalog diff --git a/services/servicecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/servicecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json index 91983d9e7725..5c89793f98fe 100644 --- a/services/servicecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/servicecatalog/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://servicecatalog-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://servicecatalog-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://servicecatalog.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://servicecatalog.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://servicecatalog.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/servicecatalog/src/main/resources/codegen-resources/endpoint-tests.json b/services/servicecatalog/src/main/resources/codegen-resources/endpoint-tests.json index 3794c239949f..70b3086095d2 100644 --- a/services/servicecatalog/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/servicecatalog/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1368 +1,632 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-northeast-2.api.aws" + "url": "https://servicecatalog.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "af-south-1", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-northeast-2.amazonaws.com" + "url": "https://servicecatalog.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-northeast-1.api.aws" + "url": "https://servicecatalog.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-northeast-1.amazonaws.com" + "url": "https://servicecatalog.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-northeast-1.api.aws" + "url": "https://servicecatalog.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-northeast-1.amazonaws.com" + "url": "https://servicecatalog.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.me-south-1.api.aws" + "url": "https://servicecatalog.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.me-south-1.amazonaws.com" + "url": "https://servicecatalog.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.me-south-1.api.aws" + "url": "https://servicecatalog.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.me-south-1.amazonaws.com" + "url": "https://servicecatalog.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.sa-east-1.api.aws" + "url": "https://servicecatalog.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.sa-east-1.amazonaws.com" + "url": "https://servicecatalog.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.sa-east-1.api.aws" + "url": "https://servicecatalog.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-south-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.sa-east-1.amazonaws.com" + "url": "https://servicecatalog.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-east-1.api.aws" + "url": "https://servicecatalog.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-east-1.amazonaws.com" + "url": "https://servicecatalog.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-east-1.api.aws" + "url": "https://servicecatalog.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "me-south-1", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-east-1.amazonaws.com" + "url": "https://servicecatalog.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "sa-east-1", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://servicecatalog.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.cn-north-1.amazonaws.com.cn" + "url": "https://servicecatalog-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://servicecatalog.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-2", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.cn-north-1.amazonaws.com.cn" + "url": "https://servicecatalog-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.us-gov-west-1.api.aws" + "url": "https://servicecatalog.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.us-gov-west-1.amazonaws.com" + "url": "https://servicecatalog-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.us-gov-west-1.api.aws" + "url": "https://servicecatalog.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.us-gov-west-1.amazonaws.com" + "url": "https://servicecatalog-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-southeast-1.api.aws" + "url": "https://servicecatalog-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-southeast-1.amazonaws.com" + "url": "https://servicecatalog.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-southeast-1.api.aws" + "url": "https://servicecatalog.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-southeast-1.amazonaws.com" + "url": "https://servicecatalog.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-southeast-2.api.aws" + "url": "https://servicecatalog-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-southeast-2.amazonaws.com" + "url": "https://servicecatalog-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-southeast-2.api.aws" + "url": "https://servicecatalog.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-southeast-2.amazonaws.com" + "url": "https://servicecatalog.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.ap-southeast-3.amazonaws.com" + "url": "https://servicecatalog-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.ap-southeast-3.amazonaws.com" + "url": "https://servicecatalog.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.us-east-1.api.aws" + "url": "https://servicecatalog-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.us-east-1.amazonaws.com" + "url": "https://servicecatalog-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog.us-east-1.api.aws" + "url": "https://servicecatalog.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog.us-east-1.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.us-east-2.api.aws" + "url": "https://servicecatalog-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.us-east-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.us-east-2.api.aws" + "url": "https://servicecatalog.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog.us-east-2.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://servicecatalog-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog-fips.cn-northwest-1.amazonaws.com.cn" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://servicecatalog.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1372,9 +636,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1384,11 +648,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/servicecatalog/src/main/resources/codegen-resources/service-2.json b/services/servicecatalog/src/main/resources/codegen-resources/service-2.json index 0cbfb8e5a475..65f3ed6bc2d0 100644 --- a/services/servicecatalog/src/main/resources/codegen-resources/service-2.json +++ b/services/servicecatalog/src/main/resources/codegen-resources/service-2.json @@ -84,7 +84,8 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"DuplicateResourceException"}, - {"shape":"LimitExceededException"} + {"shape":"LimitExceededException"}, + {"shape":"InvalidParametersException"} ], "documentation":"

    Associates a self-service action with a provisioning artifact.

    " }, @@ -468,7 +469,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"} ], - "documentation":"

    Gets information about the specified product.

    " + "documentation":"

    Gets information about the specified product.

    Running this operation with administrator access results in a failure. DescribeProductAsAdmin should be used instead.

    " }, "DescribeProductAsAdmin":{ "name":"DescribeProductAsAdmin", @@ -779,7 +780,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"} ], - "documentation":"

    Requests the import of a resource as an Service Catalog provisioned product that is associated to an Service Catalog product and provisioning artifact. Once imported, all supported Service Catalog governance actions are supported on the provisioned product.

    Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and non-root nested stacks are not supported.

    The CloudFormation stack must have one of the following statuses to be imported: CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE, IMPORT_ROLLBACK_COMPLETE.

    Import of the resource requires that the CloudFormation stack template matches the associated Service Catalog product provisioning artifact.

    The user or role that performs this operation must have the cloudformation:GetTemplate and cloudformation:DescribeStacks IAM policy permissions.

    " + "documentation":"

    Requests the import of a resource as an Service Catalog provisioned product that is associated to an Service Catalog product and provisioning artifact. Once imported, all supported governance actions are supported on the provisioned product.

    Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets, and non-root nested stacks are not supported.

    The CloudFormation stack must have one of the following statuses to be imported: CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE, and IMPORT_ROLLBACK_COMPLETE.

    Import of the resource requires that the CloudFormation stack template matches the associated Service Catalog product provisioning artifact.

    When you import an existing CloudFormation stack into a portfolio, constraints that are associated with the product aren't applied during the import process. The constraints are applied after you call UpdateProvisionedProduct for the provisioned product.

    The user or role that performs this operation must have the cloudformation:GetTemplate and cloudformation:DescribeStacks IAM policy permissions.

    " }, "ListAcceptedPortfolioShares":{ "name":"ListAcceptedPortfolioShares", @@ -835,7 +836,7 @@ {"shape":"InvalidParametersException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

    Lists the paths to the specified product. A path is how the user has access to a specified product, and is necessary when provisioning a product. A path also determines the constraints put on the product.

    " + "documentation":"

    Lists the paths to the specified product. A path describes how the user gets access to a specified product and is necessary when provisioning a product. A path also determines the constraints that are put on a product. A path is dependent on a specific product, porfolio, and principal.

    When provisioning a product that's been added to a portfolio, you must grant your user, group, or role access to the portfolio. For more information, see Granting users access in the Service Catalog User Guide.

    " }, "ListOrganizationPortfolioAccess":{ "name":"ListOrganizationPortfolioAccess", @@ -1032,6 +1033,48 @@ ], "documentation":"

    Lists the specified TagOptions or all TagOptions.

    " }, + "NotifyProvisionProductEngineWorkflowResult":{ + "name":"NotifyProvisionProductEngineWorkflowResult", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"NotifyProvisionProductEngineWorkflowResultInput"}, + "output":{"shape":"NotifyProvisionProductEngineWorkflowResultOutput"}, + "errors":[ + {"shape":"InvalidParametersException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Notifies the result of the provisioning engine execution.

    " + }, + "NotifyTerminateProvisionedProductEngineWorkflowResult":{ + "name":"NotifyTerminateProvisionedProductEngineWorkflowResult", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"NotifyTerminateProvisionedProductEngineWorkflowResultInput"}, + "output":{"shape":"NotifyTerminateProvisionedProductEngineWorkflowResultOutput"}, + "errors":[ + {"shape":"InvalidParametersException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Notifies the result of the terminate engine execution.

    " + }, + "NotifyUpdateProvisionedProductEngineWorkflowResult":{ + "name":"NotifyUpdateProvisionedProductEngineWorkflowResult", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"NotifyUpdateProvisionedProductEngineWorkflowResultInput"}, + "output":{"shape":"NotifyUpdateProvisionedProductEngineWorkflowResultOutput"}, + "errors":[ + {"shape":"InvalidParametersException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

    Notifies the result of the update engine execution.

    " + }, "ProvisionProduct":{ "name":"ProvisionProduct", "http":{ @@ -1045,7 +1088,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"DuplicateResourceException"} ], - "documentation":"

    Provisions the specified product.

    A provisioned product is a resourced instance of a product. For example, provisioning a product based on a CloudFormation template launches a CloudFormation stack and its underlying resources. You can check the status of this request using DescribeRecord.

    If the request contains a tag key with an empty list of values, there is a tag conflict for that key. Do not include conflicted keys as tags, or this causes the error \"Parameter validation failed: Missing required parameter in Tags[N]:Value\".

    " + "documentation":"

    Provisions the specified product.

    A provisioned product is a resourced instance of a product. For example, provisioning a product that's based on an CloudFormation template launches an CloudFormation stack and its underlying resources. You can check the status of this request using DescribeRecord.

    If the request contains a tag key with an empty list of values, there's a tag conflict for that key. Don't include conflicted keys as tags, or this will cause the error \"Parameter validation failed: Missing required parameter in Tags[N]:Value\".

    When provisioning a product that's been added to a portfolio, you must grant your user, group, or role access to the portfolio. For more information, see Granting users access in the Service Catalog User Guide.

    " }, "RejectPortfolioShare":{ "name":"RejectPortfolioShare", @@ -1111,7 +1154,7 @@ "errors":[ {"shape":"InvalidParametersException"} ], - "documentation":"

    Gets information about the provisioned products that meet the specified criteria.

    To ensure a complete list of provisioned products and remove duplicate products, use sort-by createdTime.

    Here is a CLI example:

    aws servicecatalog search-provisioned-products --sort-by createdTime

    " + "documentation":"

    Gets information about the provisioned products that meet the specified criteria.

    " }, "TerminateProvisionedProduct":{ "name":"TerminateProvisionedProduct", @@ -1272,7 +1315,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -1370,7 +1413,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -1378,7 +1421,7 @@ }, "PrincipalARN":{ "shape":"PrincipalARN", - "documentation":"

    The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if PrincipalType is IAM_PATTERN.

    You can associate multiple IAM patterns even if the account has no principal with that name. This is useful in Principal Name Sharing if you want to share a principal without creating it in the account that owns the portfolio.

    " + "documentation":"

    The ARN of the principal (user, role, or group). This field allows an ARN with no accountID if PrincipalType is IAM_PATTERN.

    You can associate multiple IAM patterns even if the account has no principal with that name. This is useful in Principal Name Sharing if you want to share a principal without creating it in the account that owns the portfolio.

    " }, "PrincipalType":{ "shape":"PrincipalType", @@ -1400,7 +1443,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -1443,7 +1486,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -1485,7 +1528,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -1508,7 +1551,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -1678,7 +1721,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "SourceProductArn":{ "shape":"ProductArn", @@ -1736,7 +1779,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -1792,7 +1835,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "DisplayName":{ "shape":"PortfolioDisplayName", @@ -1836,7 +1879,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -1880,7 +1923,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Name":{ "shape":"ProductViewName", @@ -1963,7 +2006,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PlanName":{ "shape":"ProvisionedProductPlanName", @@ -2043,7 +2086,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -2104,7 +2147,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "IdempotencyToken":{ "shape":"IdempotencyToken", @@ -2157,7 +2200,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2176,7 +2219,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2195,7 +2238,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -2226,7 +2269,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2245,7 +2288,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PlanId":{ "shape":"Id", @@ -2271,7 +2314,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -2298,7 +2341,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -2328,7 +2371,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2359,7 +2402,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "CopyProductToken":{ "shape":"Id", @@ -2390,7 +2433,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2506,7 +2549,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2552,7 +2595,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2591,7 +2634,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2617,7 +2660,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2649,7 +2692,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PlanId":{ "shape":"Id", @@ -2687,7 +2730,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProvisioningArtifactId":{ "shape":"Id", @@ -2733,7 +2776,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -2802,7 +2845,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -2852,7 +2895,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -2875,7 +2918,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -2950,7 +2993,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -2958,7 +3001,7 @@ }, "PrincipalARN":{ "shape":"PrincipalARN", - "documentation":"

    The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if PrincipalType is IAM_PATTERN.

    " + "documentation":"

    The ARN of the principal (user, role, or group). This field allows an ARN with no accountID if PrincipalType is IAM_PATTERN.

    " }, "PrincipalType":{ "shape":"PrincipalType", @@ -2980,7 +3023,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -3019,7 +3062,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -3067,6 +3110,35 @@ "members":{ } }, + "EngineWorkflowFailureReason":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\u0009\\u000a\\u000d\\u0020-\\uD7FF\\uE000-\\uFFFD]*" + }, + "EngineWorkflowResourceIdentifier":{ + "type":"structure", + "members":{ + "UniqueTag":{ + "shape":"UniqueTagResourceIdentifier", + "documentation":"

    The unique key-value pair for a tag that identifies provisioned product resources.

    " + } + }, + "documentation":"

    The ID for the provisioned product resources that are part of a resource group.

    " + }, + "EngineWorkflowStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "FAILED" + ] + }, + "EngineWorkflowToken":{ + "type":"string", + "max":20000, + "min":1, + "pattern":"[0-9A-Za-z+\\/=]+" + }, "Error":{"type":"string"}, "ErrorCode":{"type":"string"}, "ErrorDescription":{"type":"string"}, @@ -3086,7 +3158,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PlanId":{ "shape":"Id", @@ -3131,7 +3203,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Parameters":{ "shape":"ExecutionParameterMap", @@ -3248,7 +3320,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProvisionedProductId":{ "shape":"Id", @@ -3311,7 +3383,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -3451,7 +3523,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PageToken":{ "shape":"PageToken", @@ -3486,7 +3558,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ResourceId":{ "shape":"Id", @@ -3521,7 +3593,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -3560,7 +3632,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -3598,7 +3670,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -3637,7 +3709,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -3676,7 +3748,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -3710,7 +3782,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PageToken":{ "shape":"PageToken", @@ -3741,7 +3813,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -3775,7 +3847,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProvisionProductId":{ "shape":"Id", @@ -3826,7 +3898,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -3849,7 +3921,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -3875,7 +3947,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "AccessLevelFilter":{ "shape":"AccessLevelFilter", @@ -3982,7 +4054,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, @@ -4004,7 +4076,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PageSize":{ "shape":"PageSize", @@ -4035,7 +4107,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProvisionedProductId":{ "shape":"Id", @@ -4130,6 +4202,129 @@ "member":{"shape":"NotificationArn"}, "max":5 }, + "NotifyProvisionProductEngineWorkflowResultInput":{ + "type":"structure", + "required":[ + "WorkflowToken", + "RecordId", + "Status", + "IdempotencyToken" + ], + "members":{ + "WorkflowToken":{ + "shape":"EngineWorkflowToken", + "documentation":"

    The encrypted contents of the provisioning engine execution payload that Service Catalog sends after the Terraform product provisioning workflow starts.

    " + }, + "RecordId":{ + "shape":"Id", + "documentation":"

    The identifier of the record.

    " + }, + "Status":{ + "shape":"EngineWorkflowStatus", + "documentation":"

    The status of the provisioning engine execution.

    " + }, + "FailureReason":{ + "shape":"EngineWorkflowFailureReason", + "documentation":"

    The reason why the provisioning engine execution failed.

    " + }, + "ResourceIdentifier":{ + "shape":"EngineWorkflowResourceIdentifier", + "documentation":"

    The ID for the provisioned product resources that are part of a resource group.

    " + }, + "Outputs":{ + "shape":"RecordOutputs", + "documentation":"

    The output of the provisioning engine execution.

    " + }, + "IdempotencyToken":{ + "shape":"IdempotencyToken", + "documentation":"

    The idempotency token that identifies the provisioning engine execution.

    ", + "idempotencyToken":true + } + } + }, + "NotifyProvisionProductEngineWorkflowResultOutput":{ + "type":"structure", + "members":{ + } + }, + "NotifyTerminateProvisionedProductEngineWorkflowResultInput":{ + "type":"structure", + "required":[ + "WorkflowToken", + "RecordId", + "Status", + "IdempotencyToken" + ], + "members":{ + "WorkflowToken":{ + "shape":"EngineWorkflowToken", + "documentation":"

    The encrypted contents of the terminate engine execution payload that Service Catalog sends after the Terraform product terminate workflow starts.

    " + }, + "RecordId":{ + "shape":"Id", + "documentation":"

    The identifier of the record.

    " + }, + "Status":{ + "shape":"EngineWorkflowStatus", + "documentation":"

    The status of the terminate engine execution.

    " + }, + "FailureReason":{ + "shape":"EngineWorkflowFailureReason", + "documentation":"

    The reason why the terminate engine execution failed.

    " + }, + "IdempotencyToken":{ + "shape":"IdempotencyToken", + "documentation":"

    The idempotency token that identifies the terminate engine execution.

    ", + "idempotencyToken":true + } + } + }, + "NotifyTerminateProvisionedProductEngineWorkflowResultOutput":{ + "type":"structure", + "members":{ + } + }, + "NotifyUpdateProvisionedProductEngineWorkflowResultInput":{ + "type":"structure", + "required":[ + "WorkflowToken", + "RecordId", + "Status", + "IdempotencyToken" + ], + "members":{ + "WorkflowToken":{ + "shape":"EngineWorkflowToken", + "documentation":"

    The encrypted contents of the update engine execution payload that Service Catalog sends after the Terraform product update workflow starts.

    " + }, + "RecordId":{ + "shape":"Id", + "documentation":"

    The identifier of the record.

    " + }, + "Status":{ + "shape":"EngineWorkflowStatus", + "documentation":"

    The status of the update engine execution.

    " + }, + "FailureReason":{ + "shape":"EngineWorkflowFailureReason", + "documentation":"

    The reason why the update engine execution failed.

    " + }, + "Outputs":{ + "shape":"RecordOutputs", + "documentation":"

    The output of the update engine execution.

    " + }, + "IdempotencyToken":{ + "shape":"IdempotencyToken", + "documentation":"

    The idempotency token that identifies the update engine execution.

    ", + "idempotencyToken":true + } + } + }, + "NotifyUpdateProvisionedProductEngineWorkflowResultOutput":{ + "type":"structure", + "members":{ + } + }, "NullableBoolean":{ "type":"boolean", "box":true @@ -4336,7 +4531,7 @@ "members":{ "PrincipalARN":{ "shape":"PrincipalARN", - "documentation":"

    The ARN of the principal (IAM user, role, or group). This field allows for an ARN with no accountID if the PrincipalType is an IAM_PATTERN.

    " + "documentation":"

    The ARN of the principal (user, role, or group). This field allows for an ARN with no accountID if the PrincipalType is an IAM_PATTERN.

    " }, "PrincipalType":{ "shape":"PrincipalType", @@ -4375,7 +4570,8 @@ "type":"string", "enum":[ "CLOUD_FORMATION_TEMPLATE", - "MARKETPLACE" + "MARKETPLACE", + "TERRAFORM_OPEN_SOURCE" ], "max":8191 }, @@ -4556,7 +4752,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -4691,11 +4887,11 @@ }, "UserArn":{ "shape":"UserArn", - "documentation":"

    The Amazon Resource Name (ARN) of the IAM user.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the user.

    " }, "UserArnSession":{ "shape":"UserArnSession", - "documentation":"

    The ARN of the IAM user in the session. This ARN might contain a session ID.

    " + "documentation":"

    The ARN of the user in the session. This ARN might contain a session ID.

    " } }, "documentation":"

    Information about a provisioned product.

    " @@ -5116,7 +5312,7 @@ }, "Type":{ "shape":"ProvisioningArtifactType", - "documentation":"

    The type of provisioning artifact.

    • CLOUD_FORMATION_TEMPLATE - CloudFormation template

    • MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

    • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters and Amazon Web Services Resources

    " + "documentation":"

    The type of provisioning artifact.

    • CLOUD_FORMATION_TEMPLATE - CloudFormation template

    • MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

    • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters and Amazon Web Services Resources

    • TERRAFORM_OPEN_SOURCE - Terraform open source configuration file

    " }, "DisableTemplateValidation":{ "shape":"DisableTemplateValidation", @@ -5165,7 +5361,8 @@ "enum":[ "CLOUD_FORMATION_TEMPLATE", "MARKETPLACE_AMI", - "MARKETPLACE_CAR" + "MARKETPLACE_CAR", + "TERRAFORM_OPEN_SOURCE" ] }, "ProvisioningArtifactView":{ @@ -5393,7 +5590,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -5598,7 +5795,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "AccessLevelFilter":{ "shape":"AccessLevelFilter", @@ -5638,7 +5835,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -5688,7 +5885,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Filters":{ "shape":"ProductViewFilters", @@ -5734,7 +5931,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "AccessLevelFilter":{ "shape":"AccessLevelFilter", @@ -5814,7 +6011,8 @@ "INTERNAL_FAILURE", "LIMIT_EXCEEDED", "RESOURCE_NOT_FOUND", - "THROTTLING" + "THROTTLING", + "INVALID_PARAMETER" ] }, "ServiceActionAssociationErrorMessage":{ @@ -6251,7 +6449,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "RetainPhysicalResources":{ "shape":"RetainPhysicalResources", @@ -6269,13 +6467,39 @@ } }, "TotalResultsCount":{"type":"integer"}, + "UniqueTagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$" + }, + "UniqueTagResourceIdentifier":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"UniqueTagKey", + "documentation":"

    A unique key that's attached to a resource.

    " + }, + "Value":{ + "shape":"UniqueTagValue", + "documentation":"

    A unique value that's attached to a resource.

    " + } + }, + "documentation":"

    The unique key-value pair for a tag that identifies provisioned product resources.

    " + }, + "UniqueTagValue":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$" + }, "UpdateConstraintInput":{ "type":"structure", "required":["Id"], "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -6314,7 +6538,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -6361,7 +6585,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "PortfolioId":{ "shape":"Id", @@ -6401,7 +6625,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "Id":{ "shape":"Id", @@ -6468,7 +6692,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProvisionedProductName":{ "shape":"ProvisionedProductNameOrArn", @@ -6540,7 +6764,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProvisionedProductId":{ "shape":"Id", @@ -6548,7 +6772,7 @@ }, "ProvisionedProductProperties":{ "shape":"ProvisionedProductProperties", - "documentation":"

    A map that contains the provisioned product properties to be updated.

    The LAUNCH_ROLE key accepts role ARNs. This key allows an administrator to call UpdateProvisionedProductProperties to update the launch role that is associated with a provisioned product. This role is used when an end user calls a provisioning operation such as UpdateProvisionedProduct, TerminateProvisionedProduct, or ExecuteProvisionedProductServiceAction. Only a role ARN is valid. A user ARN is invalid.

    The OWNER key accepts IAM user ARNs, IAM role ARNs, and STS assumed-role ARNs. The owner is the user that has permission to see, update, terminate, and execute service actions in the provisioned product.

    The administrator can change the owner of a provisioned product to another IAM or STS entity within the same account. Both end user owners and administrators can see ownership history of the provisioned product using the ListRecordHistory API. The new owner can describe all past records for the provisioned product using the DescribeRecord API. The previous owner can no longer use DescribeRecord, but can still see the product's history from when he was an owner using ListRecordHistory.

    If a provisioned product ownership is assigned to an end user, they can see and perform any action through the API or Service Catalog console such as update, terminate, and execute service actions. If an end user provisions a product and the owner is updated to someone else, they will no longer be able to see or perform any actions through API or the Service Catalog console on that provisioned product.

    " + "documentation":"

    A map that contains the provisioned product properties to be updated.

    The LAUNCH_ROLE key accepts role ARNs. This key allows an administrator to call UpdateProvisionedProductProperties to update the launch role that is associated with a provisioned product. This role is used when an end user calls a provisioning operation such as UpdateProvisionedProduct, TerminateProvisionedProduct, or ExecuteProvisionedProductServiceAction. Only a role ARN is valid. A user ARN is invalid.

    The OWNER key accepts user ARNs, IAM role ARNs, and STS assumed-role ARNs. The owner is the user that has permission to see, update, terminate, and execute service actions in the provisioned product.

    The administrator can change the owner of a provisioned product to another IAM or STS entity within the same account. Both end user owners and administrators can see ownership history of the provisioned product using the ListRecordHistory API. The new owner can describe all past records for the provisioned product using the DescribeRecord API. The previous owner can no longer use DescribeRecord, but can still see the product's history from when he was an owner using ListRecordHistory.

    If a provisioned product ownership is assigned to an end user, they can see and perform any action through the API or Service Catalog console such as update, terminate, and execute service actions. If an end user provisions a product and the owner is updated to someone else, they will no longer be able to see or perform any actions through API or the Service Catalog console on that provisioned product.

    " }, "IdempotencyToken":{ "shape":"IdempotencyToken", @@ -6587,7 +6811,7 @@ "members":{ "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " }, "ProductId":{ "shape":"Id", @@ -6710,7 +6934,7 @@ }, "AcceptLanguage":{ "shape":"AcceptLanguage", - "documentation":"

    The language code.

    • en - English (default)

    • jp - Japanese

    • zh - Chinese

    " + "documentation":"

    The language code.

    • jp - Japanese

    • zh - Chinese

    " } } }, diff --git a/services/servicecatalogappregistry/pom.xml b/services/servicecatalogappregistry/pom.xml index 2647a387dffc..f9e8174bece5 100644 --- a/services/servicecatalogappregistry/pom.xml +++ b/services/servicecatalogappregistry/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT servicecatalogappregistry AWS Java SDK :: Services :: Service Catalog App Registry diff --git a/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-rule-set.json index e2b677e60fbf..c68661173d42 100644 --- a/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://servicecatalog-appregistry.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-tests.json b/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-tests.json index 07278e2be4a4..6f23719cc0f9 100644 --- a/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/servicecatalogappregistry/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,408 +1,5 @@ { "testCases": [ - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, { "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { @@ -411,464 +8,230 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-north-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" + "Region": "af-south-1" } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.eu-north-1.amazonaws.com" + "url": "https://servicecatalog-appregistry.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-west-3.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" + "Region": "ap-east-1" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.eu-west-3.amazonaws.com" + "url": "https://servicecatalog-appregistry.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-west-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.eu-west-2.amazonaws.com" + "url": "https://servicecatalog-appregistry.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.eu-west-1.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" + "Region": "ap-northeast-2" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.eu-west-1.amazonaws.com" + "url": "https://servicecatalog-appregistry.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": true, "Region": "ap-northeast-3" } }, { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-northeast-3.api.aws" + "url": "https://servicecatalog-appregistry.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.ap-northeast-3.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" + "Region": "ap-south-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-northeast-2.amazonaws.com" + "url": "https://servicecatalog-appregistry.ap-southeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-northeast-2.api.aws" + "url": "https://servicecatalog-appregistry.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.ap-northeast-2.amazonaws.com" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "ap-southeast-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-northeast-1.amazonaws.com" + "url": "https://servicecatalog-appregistry.ap-southeast-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" + "Region": "ap-southeast-3" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-northeast-1.api.aws" + "url": "https://servicecatalog-appregistry.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-northeast-1.amazonaws.com" + "url": "https://servicecatalog-appregistry-fips.ca-central-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" + "Region": "ca-central-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.me-south-1.api.aws" + "url": "https://servicecatalog-appregistry.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.me-south-1.amazonaws.com" + "url": "https://servicecatalog-appregistry.eu-north-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" + "Region": "eu-north-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.me-south-1.api.aws" + "url": "https://servicecatalog-appregistry.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.me-south-1.amazonaws.com" + "url": "https://servicecatalog-appregistry.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.sa-east-1.api.aws" + "url": "https://servicecatalog-appregistry.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.sa-east-1.amazonaws.com" + "url": "https://servicecatalog-appregistry.eu-west-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" + "Region": "eu-west-3" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.sa-east-1.api.aws" + "url": "https://servicecatalog-appregistry.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false, + "Region": "me-south-1" } }, { @@ -879,386 +242,378 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Region": "sa-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-east-1.api.aws" + "url": "https://servicecatalog-appregistry.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-east-1.amazonaws.com" + "url": "https://servicecatalog-appregistry-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-east-1" + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-east-1.api.aws" + "url": "https://servicecatalog-appregistry.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-east-1.amazonaws.com" + "url": "https://servicecatalog-appregistry-fips.us-east-2.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "Region": "us-east-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-gov-west-1.api.aws" + "url": "https://servicecatalog-appregistry.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.us-gov-west-1.amazonaws.com" + "url": "https://servicecatalog-appregistry-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.us-gov-west-1.api.aws" + "url": "https://servicecatalog-appregistry.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.us-gov-west-1.amazonaws.com" + "url": "https://servicecatalog-appregistry-fips.us-west-2.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-southeast-1.api.aws" + "url": "https://servicecatalog-appregistry-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-1" + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-southeast-1.amazonaws.com" + "url": "https://servicecatalog-appregistry.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-southeast-1.api.aws" + "url": "https://servicecatalog-appregistry-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-southeast-1.amazonaws.com" + "url": "https://servicecatalog-appregistry-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-southeast-2.api.aws" + "url": "https://servicecatalog-appregistry.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-southeast-2.amazonaws.com" + "url": "https://servicecatalog-appregistry.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-southeast-2.api.aws" + "url": "https://servicecatalog-appregistry.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-southeast-2.amazonaws.com" + "url": "https://servicecatalog-appregistry.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-southeast-3.api.aws" + "url": "https://servicecatalog-appregistry-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.ap-southeast-3.amazonaws.com" + "url": "https://servicecatalog-appregistry.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.ap-southeast-3.api.aws" + "url": "https://servicecatalog-appregistry.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.ap-southeast-3.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-east-1.api.aws" + "url": "https://servicecatalog-appregistry-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-east-1.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.us-east-1.api.aws" + "url": "https://servicecatalog-appregistry.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry.us-east-1.amazonaws.com" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-east-2.api.aws" + "url": "https://servicecatalog-appregistry-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://servicecatalog-appregistry-fips.us-east-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.us-east-2.api.aws" + "url": "https://servicecatalog-appregistry.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://servicecatalog-appregistry.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1268,8 +623,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "UseFIPS": true, + "UseDualStack": false, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -1280,11 +635,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "UseFIPS": false, + "UseDualStack": true, "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/servicecatalogappregistry/src/main/resources/codegen-resources/service-2.json b/services/servicecatalogappregistry/src/main/resources/codegen-resources/service-2.json index 4e7d6cc01d47..e4fc56da9972 100644 --- a/services/servicecatalogappregistry/src/main/resources/codegen-resources/service-2.json +++ b/services/servicecatalogappregistry/src/main/resources/codegen-resources/service-2.json @@ -43,9 +43,10 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ], - "documentation":"

    Associates a resource with an application. Both the resource and the application can be specified either by ID or name.

    " + "documentation":"

    Associates a resource with an application. The resource can be specified by its ARN or name. The application can be specified by ARN, ID, or name.

    " }, "CreateApplication":{ "name":"CreateApplication", @@ -60,7 +61,8 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ], "documentation":"

    Creates a new application that is the top-level node in a hierarchy of related cloud resource abstractions.

    " }, @@ -94,7 +96,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Deletes an application that is specified either by its application ID or name. All associated attribute groups and resources must be disassociated from it before deleting an application.

    " + "documentation":"

    Deletes an application that is specified either by its application ID, name, or ARN. All associated attribute groups and resources must be disassociated from it before deleting an application.

    " }, "DeleteAttributeGroup":{ "name":"DeleteAttributeGroup", @@ -109,7 +111,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Deletes an attribute group, specified either by its attribute group ID or name.

    " + "documentation":"

    Deletes an attribute group, specified either by its attribute group ID, name, or ARN.

    " }, "DisassociateAttributeGroup":{ "name":"DisassociateAttributeGroup", @@ -137,7 +139,8 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ], "documentation":"

    Disassociates a resource from application. Both the resource and the application can be specified either by ID or name.

    " }, @@ -155,7 +158,7 @@ {"shape":"InternalServerException"}, {"shape":"ConflictException"} ], - "documentation":"

    Retrieves metadata information about one of your applications. The application can be specified either by its unique ID or by its name (which is unique within one account in one region at a given point in time). Specify by ID in automated workflows if you want to make sure that the exact same application is returned or a ResourceNotFoundException is thrown, avoiding the ABA addressing problem.

    " + "documentation":"

    Retrieves metadata information about one of your applications. The application can be specified by its ARN, ID, or name (which is unique within one account in one region at a given point in time). Specify by ARN or ID in automated workflows if you want to make sure that the exact same application is returned or a ResourceNotFoundException is thrown, avoiding the ABA addressing problem.

    " }, "GetAssociatedResource":{ "name":"GetAssociatedResource", @@ -187,7 +190,7 @@ {"shape":"InternalServerException"}, {"shape":"ConflictException"} ], - "documentation":"

    Retrieves an attribute group, either by its name or its ID. The attribute group can be specified either by its unique ID or by its name.

    " + "documentation":"

    Retrieves an attribute group by its ARN, ID, or name. The attribute group can be specified by its ARN, ID, or name.

    " }, "GetConfiguration":{ "name":"GetConfiguration", @@ -319,7 +322,9 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, - {"shape":"ConflictException"} + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} ], "documentation":"

    Syncs the resource with current AppRegistry records.

    Specifically, the resource’s AppRegistry system tags sync with its associated application. We remove the resource's AppRegistry system tags if it does not associate with the application. The caller must have permissions to read and update the resource.

    " }, @@ -365,7 +370,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"}, {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} ], "documentation":"

    Updates an existing application with new attributes.

    " }, @@ -395,7 +401,7 @@ "documentation":"

    Includes the definition of a tagQuery.

    " } }, - "documentation":"

    Includes all of the Service Catalog AppRegistry settings.

    " + "documentation":"

    Includes all of the AppRegistry settings.

    " }, "Application":{ "type":"structure", @@ -445,7 +451,7 @@ "type":"string", "max":256, "min":1, - "pattern":"[-.\\w]+" + "pattern":"([-.\\w]+)|(arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[-.\\w]+)" }, "ApplicationSummaries":{ "type":"list", @@ -496,13 +502,13 @@ "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application.

    ", + "documentation":"

    The name, ID, or ARN of the application.

    ", "location":"uri", "locationName":"application" }, "attributeGroup":{ "shape":"AttributeGroupSpecifier", - "documentation":"

    The name or ID of the attribute group that holds the attributes to describe the application.

    ", + "documentation":"

    The name, ID, or ARN of the attribute group that holds the attributes to describe the application.

    ", "location":"uri", "locationName":"attributeGroup" } @@ -531,7 +537,7 @@ "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application.

    ", + "documentation":"

    The name, ID, or ARN of the application.

    ", "location":"uri", "locationName":"application" }, @@ -602,7 +608,7 @@ }, "AttributeGroupArn":{ "type":"string", - "pattern":"arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/attribute-groups/[a-z0-9]+" + "pattern":"arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/attribute-groups/[-.\\w]+" }, "AttributeGroupDetails":{ "type":"structure", @@ -620,6 +626,10 @@ "documentation":"

    This field is no longer supported. We recommend you don't use the field when using ListAttributeGroupsForApplication.

    The name of the attribute group.

    ", "deprecated":true, "deprecatedMessage":"This field is deprecated. We recommend not using the field when using ListAttributeGroupsForApplication." + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

    The service principal that created the attribute group.

    " } }, "documentation":"

    The details related to a specific AttributeGroup.

    " @@ -630,9 +640,9 @@ }, "AttributeGroupId":{ "type":"string", - "max":26, - "min":26, - "pattern":"[a-z0-9]+" + "max":256, + "min":1, + "pattern":"[-.\\w]+" }, "AttributeGroupIds":{ "type":"list", @@ -640,9 +650,9 @@ }, "AttributeGroupSpecifier":{ "type":"string", - "max":256, + "max":512, "min":1, - "pattern":"[-.\\w]+" + "pattern":"([-.\\w]+)|(arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/attribute-groups/[-.\\w]+)" }, "AttributeGroupSummaries":{ "type":"list", @@ -674,6 +684,10 @@ "lastUpdateTime":{ "shape":"Timestamp", "documentation":"

    The ISO-8601 formatted timestamp of the moment the attribute group was last updated. This time is the same as the creationTime for a newly created attribute group.

    " + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

    The service principal that created the attribute group.

    " } }, "documentation":"

    Summary of a Amazon Web Services Service Catalog AppRegistry attribute group.

    " @@ -774,13 +788,19 @@ } } }, + "CreatedBy":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!-)([a-z0-9-]+\\.)+(aws\\.internal|amazonaws\\.com(\\.cn)?)$" + }, "DeleteApplicationRequest":{ "type":"structure", "required":["application"], "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application.

    ", + "documentation":"

    The name, ID, or ARN of the application.

    ", "location":"uri", "locationName":"application" } @@ -801,7 +821,7 @@ "members":{ "attributeGroup":{ "shape":"AttributeGroupSpecifier", - "documentation":"

    The name or ID of the attribute group that holds the attributes to describe the application.

    ", + "documentation":"

    The name, ID, or ARN of the attribute group that holds the attributes to describe the application.

    ", "location":"uri", "locationName":"attributeGroup" } @@ -829,13 +849,13 @@ "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application.

    ", + "documentation":"

    The name, ID, or ARN of the application.

    ", "location":"uri", "locationName":"application" }, "attributeGroup":{ "shape":"AttributeGroupSpecifier", - "documentation":"

    The name or ID of the attribute group that holds the attributes to describe the application.

    ", + "documentation":"

    The name, ID, or ARN of the attribute group that holds the attributes to describe the application.

    ", "location":"uri", "locationName":"attributeGroup" } @@ -901,7 +921,7 @@ "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application.

    ", + "documentation":"

    The name, ID, or ARN of the application.

    ", "location":"uri", "locationName":"application" } @@ -958,7 +978,7 @@ "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application.

    ", + "documentation":"

    The name, ID, or ARN of the application.

    ", "location":"uri", "locationName":"application" }, @@ -991,7 +1011,7 @@ "members":{ "attributeGroup":{ "shape":"AttributeGroupSpecifier", - "documentation":"

    The name or ID of the attribute group that holds the attributes to describe the application.

    ", + "documentation":"

    The name, ID, or ARN of the attribute group that holds the attributes to describe the application.

    ", "location":"uri", "locationName":"attributeGroup" } @@ -1031,6 +1051,10 @@ "tags":{ "shape":"Tags", "documentation":"

    Key-value pairs associated with the attribute group.

    " + }, + "createdBy":{ + "shape":"CreatedBy", + "documentation":"

    The service principal that created the attribute group.

    " } } }, @@ -1138,7 +1162,7 @@ "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application.

    ", + "documentation":"

    The name, ID, or ARN of the application.

    ", "location":"uri", "locationName":"application" }, @@ -1411,7 +1435,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

    The maximum number of resources per account has been reached.

    ", + "documentation":"

    The maximum number of resources per account has been reached.

    ", "error":{"httpStatusCode":402}, "exception":true }, @@ -1529,6 +1553,23 @@ "max":50, "min":0 }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{ + "shape":"String", + "documentation":"

    A message associated with the Throttling exception.

    " + }, + "serviceCode":{ + "shape":"String", + "documentation":"

    The originating service code.

    " + } + }, + "documentation":"

    The maximum number of API requests has been exceeded.

    ", + "error":{"httpStatusCode":429}, + "exception":true + }, "Timestamp":{ "type":"timestamp", "timestampFormat":"iso8601" @@ -1565,7 +1606,7 @@ "members":{ "application":{ "shape":"ApplicationSpecifier", - "documentation":"

    The name or ID of the application that will be updated.

    ", + "documentation":"

    The name, ID, or ARN of the application that will be updated.

    ", "location":"uri", "locationName":"application" }, @@ -1596,7 +1637,7 @@ "members":{ "attributeGroup":{ "shape":"AttributeGroupSpecifier", - "documentation":"

    The name or ID of the attribute group that holds the attributes to describe the application.

    ", + "documentation":"

    The name, ID, or ARN of the attribute group that holds the attributes to describe the application.

    ", "location":"uri", "locationName":"attributeGroup" }, diff --git a/services/servicediscovery/pom.xml b/services/servicediscovery/pom.xml index 58f5fd3c6124..1ebfe880c19d 100644 --- a/services/servicediscovery/pom.xml +++ b/services/servicediscovery/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 servicediscovery diff --git a/services/servicediscovery/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/servicediscovery/src/main/resources/codegen-resources/endpoint-rule-set.json index 0a65be843e10..f26f043db065 100644 --- a/services/servicediscovery/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/servicediscovery/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,212 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicediscovery-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://servicediscovery-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "servicediscovery" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://servicediscovery-fips.ca-central-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ { - "ref": "Region" - }, - "servicediscovery" + "conditions": [], + "endpoint": { + "url": "https://servicediscovery-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://servicediscovery-fips.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, { "conditions": [], - "endpoint": { - "url": "https://servicediscovery-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicediscovery.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://servicediscovery.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicediscovery.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://servicediscovery.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/servicediscovery/src/main/resources/codegen-resources/endpoint-tests.json b/services/servicediscovery/src/main/resources/codegen-resources/endpoint-tests.json index c70740e591ef..ae95943c83da 100644 --- a/services/servicediscovery/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/servicediscovery/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,142 +1,354 @@ { "testCases": [ { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.us-gov-east-1.api.aws" + "url": "https://servicediscovery.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.us-gov-east-1.amazonaws.com" + "url": "https://servicediscovery.ap-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true + "Region": "ap-east-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery.us-gov-east-1.api.aws" + "url": "https://servicediscovery.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery.us-gov-east-1.amazonaws.com" + "url": "https://servicediscovery.ap-northeast-2.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false + "Region": "ap-northeast-2" } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://servicediscovery.ap-south-1.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.us-iso-west-1.c2s.ic.gov" + "url": "https://servicediscovery.ap-southeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": true + "Region": "ap-southeast-1" } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://servicediscovery.ap-southeast-2.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery.us-iso-west-1.c2s.ic.gov" + "url": "https://servicediscovery.ca-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": false + "Region": "ca-central-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://servicediscovery-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.cn-north-1.amazonaws.com.cn" + "url": "https://servicediscovery.eu-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true + "Region": "eu-central-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://servicediscovery.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-west-2.amazonaws.com" } }, "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" } }, { @@ -147,48 +359,87 @@ } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.us-gov-west-1.api.aws" + "url": "https://servicediscovery.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.us-gov-west-1.amazonaws.com" + "url": "https://servicediscovery-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicediscovery.us-gov-west-1.api.aws" + "url": "https://servicediscovery.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { @@ -199,113 +450,170 @@ } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.us-east-1.api.aws" + "url": "https://servicediscovery-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicediscovery.us-east-1.api.aws" + "url": "https://servicediscovery-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://servicediscovery.us-east-1.amazonaws.com" + "url": "https://servicediscovery.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://servicediscovery-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://servicediscovery.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://servicediscovery-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://servicediscovery.cn-northwest-1.amazonaws.com.cn" + "url": "https://servicediscovery.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": false + "Region": "us-isob-east-1" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -315,9 +623,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -327,11 +635,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/servicequotas/pom.xml b/services/servicequotas/pom.xml index 2800b976ee85..9a1706e4ad2d 100644 --- a/services/servicequotas/pom.xml +++ b/services/servicequotas/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT servicequotas AWS Java SDK :: Services :: Service Quotas diff --git a/services/ses/pom.xml b/services/ses/pom.xml index b2f9643f8af1..26ee03dadfbd 100644 --- a/services/ses/pom.xml +++ b/services/ses/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ses AWS Java SDK :: Services :: Amazon SES diff --git a/services/sesv2/pom.xml b/services/sesv2/pom.xml index 195df9a2db10..ab734d565cbd 100644 --- a/services/sesv2/pom.xml +++ b/services/sesv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sesv2 AWS Java SDK :: Services :: SESv2 diff --git a/services/sesv2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sesv2/src/main/resources/codegen-resources/endpoint-rule-set.json index 103753b59b9d..1d567c5f9741 100644 --- a/services/sesv2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sesv2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://email-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://email.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://email.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/sesv2/src/main/resources/codegen-resources/endpoint-tests.json b/services/sesv2/src/main/resources/codegen-resources/endpoint-tests.json index 6fd9c71adeb0..e312a33c9715 100644 --- a/services/sesv2/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sesv2/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,666 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.ap-northeast-2.amazonaws.com" + "url": "https://email.af-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.ap-northeast-2.api.aws" + "url": "https://email.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -671,542 +34,490 @@ } }, "params": { - "UseFIPS": false, "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://email.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://email.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.me-south-1.api.aws" + "url": "https://email.ap-northeast-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.me-south-1.amazonaws.com" + "url": "https://email.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.me-south-1.api.aws" + "url": "https://email.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.me-south-1.amazonaws.com" + "url": "https://email.ap-southeast-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.sa-east-1.api.aws" + "url": "https://email.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.sa-east-1.amazonaws.com" + "url": "https://email.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.sa-east-1.api.aws" + "url": "https://email.eu-north-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.sa-east-1.amazonaws.com" + "url": "https://email.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.us-gov-west-1.api.aws" + "url": "https://email.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.us-gov-west-1.amazonaws.com" + "url": "https://email.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": false + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.us-gov-west-1.api.aws" + "url": "https://email.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.us-gov-west-1.amazonaws.com" + "url": "https://email.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": false + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.ap-southeast-1.api.aws" + "url": "https://email.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.ap-southeast-1.amazonaws.com" + "url": "https://email.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.ap-southeast-1.api.aws" + "url": "https://email-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.ap-southeast-1.amazonaws.com" + "url": "https://email.us-east-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.ap-southeast-2.api.aws" + "url": "https://email.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.ap-southeast-2.amazonaws.com" + "url": "https://email.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.ap-southeast-2.api.aws" + "url": "https://email-fips.us-west-2.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://email.ap-southeast-2.amazonaws.com" + "url": "https://email-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://email-fips.ap-southeast-3.api.aws" + "url": "https://email.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": true + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://email-fips.ap-southeast-3.amazonaws.com" + "url": "https://email-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.ap-southeast-3.api.aws" + "url": "https://email-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://email.ap-southeast-3.amazonaws.com" + "url": "https://email.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": false + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.us-east-1.api.aws" + "url": "https://email.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.us-east-1.amazonaws.com" + "url": "https://email.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.us-east-1.api.aws" + "url": "https://email-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://email.us-east-1.amazonaws.com" + "url": "https://email-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.us-east-2.api.aws" + "url": "https://email-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://email-fips.us-east-2.amazonaws.com" + "url": "https://email.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.us-east-2.api.aws" + "url": "https://email.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.us-east-2.amazonaws.com" + "url": "https://email-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://email.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": true + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://email-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": false + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://email.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://email.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": true + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://email.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -1216,9 +527,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "Region": "us-east-1", "UseDualStack": false, + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1228,9 +539,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "Region": "us-east-1", "UseDualStack": true, + "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/sesv2/src/main/resources/codegen-resources/service-2.json b/services/sesv2/src/main/resources/codegen-resources/service-2.json index e4b1908022d8..80a349b81d27 100644 --- a/services/sesv2/src/main/resources/codegen-resources/service-2.json +++ b/services/sesv2/src/main/resources/codegen-resources/service-2.json @@ -2915,7 +2915,7 @@ }, "MatchingEventTypes":{ "shape":"EventTypes", - "documentation":"

    The types of events that Amazon SES sends to the specified event destinations.

    " + "documentation":"

    The types of events that Amazon SES sends to the specified event destinations.

    • SEND - The send request was successful and SES will attempt to deliver the message to the recipient’s mail server. (If account-level or global suppression is being used, SES will still count it as a send, but delivery is suppressed.)

    • REJECT - SES accepted the email, but determined that it contained a virus and didn’t attempt to deliver it to the recipient’s mail server.

    • BOUNCE - (Hard bounce) The recipient's mail server permanently rejected the email. (Soft bounces are only included when SES fails to deliver the email after retrying for a period of time.)

    • COMPLAINT - The email was successfully delivered to the recipient’s mail server, but the recipient marked it as spam.

    • DELIVERY - SES successfully delivered the email to the recipient's mail server.

    • OPEN - The recipient received the message and opened it in their email client.

    • CLICK - The recipient clicked one or more links in the email.

    • RENDERING_FAILURE - The email wasn't sent because of a template rendering issue. This event type can occur when template data is missing, or when there is a mismatch between template parameters and data. (This event type only occurs when you send email using the SendTemplatedEmail or SendBulkTemplatedEmail API operations.)

    • DELIVERY_DELAY - The email couldn't be delivered to the recipient’s mail server because a temporary issue occurred. Delivery delays can occur, for example, when the recipient's inbox is full, or when the receiving email server experiences a transient issue.

    • SUBSCRIPTION - The email was successfully delivered, but the recipient updated their subscription preferences by clicking on an unsubscribe link as part of your subscription management.

    " }, "KinesisFirehoseDestination":{ "shape":"KinesisFirehoseDestination", @@ -4375,7 +4375,7 @@ }, "ListRecommendationsFilterKey":{ "type":"string", - "documentation":"

    The ListRecommendations filter type. This can be one of the following:

    • TYPE – The recommendation type, with values like DKIM, SPF or DMARC.

    • IMPACT – The recommendation impact, with values like HIGH or LOW.

    • STATUS – The recommendation status, with values like OPEN or FIXED.

    • RESOURCE_ARN – The resource affected by the recommendation, with values like arn:aws:ses:us-east-1:123456789012:identity/example.com.

    ", + "documentation":"

    The ListRecommendations filter type. This can be one of the following:

    • TYPE – The recommendation type, with values like DKIM, SPF, DMARC or BIMI.

    • IMPACT – The recommendation impact, with values like HIGH or LOW.

    • STATUS – The recommendation status, with values like OPEN or FIXED.

    • RESOURCE_ARN – The resource affected by the recommendation, with values like arn:aws:ses:us-east-1:123456789012:identity/example.com.

    ", "enum":[ "TYPE", "IMPACT", @@ -5298,7 +5298,7 @@ }, "Type":{ "shape":"RecommendationType", - "documentation":"

    The recommendation type, with values like DKIM, SPF or DMARC.

    " + "documentation":"

    The recommendation type, with values like DKIM, SPF, DMARC or BIMI.

    " }, "Description":{ "shape":"RecommendationDescription", @@ -5343,7 +5343,8 @@ "enum":[ "DKIM", "DMARC", - "SPF" + "SPF", + "BIMI" ] }, "RecommendationsList":{ diff --git a/services/sfn/pom.xml b/services/sfn/pom.xml index 29fdee1214fb..2f4fb1d58f98 100644 --- a/services/sfn/pom.xml +++ b/services/sfn/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sfn AWS Java SDK :: Services :: AWS Step Functions diff --git a/services/shield/pom.xml b/services/shield/pom.xml index 998f0acce115..55a10ba21916 100644 --- a/services/shield/pom.xml +++ b/services/shield/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT shield AWS Java SDK :: Services :: AWS Shield diff --git a/services/signer/pom.xml b/services/signer/pom.xml index 5e0bb4db322d..fb663de7a2d3 100644 --- a/services/signer/pom.xml +++ b/services/signer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT signer AWS Java SDK :: Services :: Signer diff --git a/services/simspaceweaver/pom.xml b/services/simspaceweaver/pom.xml index 3771dc66f42d..47e52fae4bef 100644 --- a/services/simspaceweaver/pom.xml +++ b/services/simspaceweaver/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT simspaceweaver AWS Java SDK :: Services :: Sim Space Weaver diff --git a/services/sms/pom.xml b/services/sms/pom.xml index 4ba286652f97..cd766a0e743a 100644 --- a/services/sms/pom.xml +++ b/services/sms/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sms AWS Java SDK :: Services :: AWS Server Migration diff --git a/services/sms/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sms/src/main/resources/codegen-resources/endpoint-rule-set.json index 2ccac3a981dd..3083f09e0ace 100644 --- a/services/sms/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sms/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://sms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://sms-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://sms.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://sms.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://sms.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/sms/src/main/resources/codegen-resources/endpoint-tests.json b/services/sms/src/main/resources/codegen-resources/endpoint-tests.json index d9f03353a674..d1028d892b2d 100644 --- a/services/sms/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sms/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,666 +1,42 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ca-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.eu-west-1.amazonaws.com" + "url": "https://sms.af-south-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "af-south-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-northeast-2.amazonaws.com" + "url": "https://sms.ap-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true + "Region": "ap-east-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.ap-northeast-2.api.aws" + "url": "https://sms.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { @@ -671,152 +47,152 @@ } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false + "Region": "ap-northeast-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-northeast-1.api.aws" + "url": "https://sms.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-northeast-1.amazonaws.com" + "url": "https://sms.ap-southeast-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "Region": "ap-southeast-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.ap-northeast-1.api.aws" + "url": "https://sms.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.ap-northeast-1.amazonaws.com" + "url": "https://sms.ca-central-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false + "Region": "ca-central-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.me-south-1.api.aws" + "url": "https://sms.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.me-south-1.amazonaws.com" + "url": "https://sms.eu-north-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": true + "Region": "eu-north-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.me-south-1.api.aws" + "url": "https://sms.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-south-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.me-south-1.amazonaws.com" + "url": "https://sms.eu-west-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "me-south-1", - "UseFIPS": false + "Region": "eu-west-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.sa-east-1.api.aws" + "url": "https://sms.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.sa-east-1.amazonaws.com" + "url": "https://sms.eu-west-3.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true + "Region": "eu-west-3" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.sa-east-1.api.aws" + "url": "https://sms.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" } }, { @@ -827,438 +203,360 @@ } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true + "Region": "sa-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-east-1.amazonaws.com" + "url": "https://sms.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.ap-east-1.amazonaws.com" + "url": "https://sms-fips.us-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://sms.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.cn-north-1.amazonaws.com.cn" + "url": "https://sms-fips.us-east-2.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true + "Region": "us-east-2" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://sms.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.cn-north-1.amazonaws.com.cn" + "url": "https://sms-fips.us-west-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false + "Region": "us-west-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.us-gov-west-1.api.aws" + "url": "https://sms.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.us-gov-west-1.amazonaws.com" + "url": "https://sms-fips.us-west-2.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true + "Region": "us-west-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sms.us-gov-west-1.api.aws" + "url": "https://sms-fips.us-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-southeast-1.api.aws" + "url": "https://sms.us-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-southeast-1.amazonaws.com" + "url": "https://sms.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.ap-southeast-1.amazonaws.com" + "url": "https://sms.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "Region": "cn-northwest-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-southeast-2.api.aws" + "url": "https://sms-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.ap-southeast-2.amazonaws.com" + "url": "https://sms-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sms.ap-southeast-2.api.aws" + "url": "https://sms.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.ap-southeast-2.amazonaws.com" + "url": "https://sms.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.us-east-1.amazonaws.com" + "url": "https://sms-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.us-east-1.api.aws" + "url": "https://sms.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.us-east-1.amazonaws.com" + "url": "https://sms-fips.us-gov-west-1.amazonaws.com" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": false + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sms-fips.us-east-2.api.aws" + "url": "https://sms-fips.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": true, "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sms-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": true + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sms.us-east-2.api.aws" + "url": "https://sms.us-gov-east-1.api.aws" } }, "params": { + "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.us-east-2.amazonaws.com" + "url": "https://sms-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-2", - "UseFIPS": false + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://sms.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://sms-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseFIPS": true, "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": true + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sms.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://sms.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://sms.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { + "UseFIPS": false, "UseDualStack": false, - "Region": "cn-northwest-1", - "UseFIPS": false + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1268,9 +566,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "UseFIPS": true, "UseDualStack": false, "Region": "us-east-1", - "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -1280,9 +578,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "UseFIPS": false, "UseDualStack": true, "Region": "us-east-1", - "UseFIPS": false, "Endpoint": "https://example.com" } } diff --git a/services/sms/src/main/resources/codegen-resources/service-2.json b/services/sms/src/main/resources/codegen-resources/service-2.json index 1ccc9aa556e4..32df9040fa06 100644 --- a/services/sms/src/main/resources/codegen-resources/service-2.json +++ b/services/sms/src/main/resources/codegen-resources/service-2.json @@ -2607,5 +2607,7 @@ "member":{"shape":"VmServerAddress"} } }, - "documentation":"

    Product update

    We recommend Amazon Web Services Application Migration Service (Amazon Web Services MGN) as the primary migration service for lift-and-shift migrations. If Amazon Web Services MGN is unavailable in a specific Amazon Web Services Region, you can use the Server Migration Service APIs through March 2023.

    Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following resources:

    " + "documentation":"

    Product update

    We recommend Amazon Web Services Application Migration Service (Amazon Web Services MGN) as the primary migration service for lift-and-shift migrations. If Amazon Web Services MGN is unavailable in a specific Amazon Web Services Region, you can use the Server Migration Service APIs through March 2023.

    Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following resources:

    ", + "deprecated":true, + "deprecatedMessage":"AWS Server Migration Service is Deprecated." } diff --git a/services/snowball/pom.xml b/services/snowball/pom.xml index c76ee4e56fdf..20ebc2b50c52 100644 --- a/services/snowball/pom.xml +++ b/services/snowball/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT snowball AWS Java SDK :: Services :: Amazon Snowball diff --git a/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json index 85c845f09ab6..3ffead86f13e 100644 --- a/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/snowball/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snowball-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snowball-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://snowball-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snowball.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://snowball-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://snowball.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://snowball.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://snowball.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/snowball/src/main/resources/codegen-resources/endpoint-tests.json b/services/snowball/src/main/resources/codegen-resources/endpoint-tests.json index abf5bc6df039..aa787332291b 100644 --- a/services/snowball/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/snowball/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,454 +1,445 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.ap-south-1.api.aws" + "url": "https://snowball.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.ap-south-1.amazonaws.com" + "url": "https://snowball.ap-east-1.amazonaws.com" } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.ap-south-1.api.aws" + "url": "https://snowball.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ap-south-1", + "Region": "ap-northeast-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.ap-south-1.amazonaws.com" + "url": "https://snowball-fips.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.eu-south-1.api.aws" + "url": "https://snowball.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-south-1", - "UseFIPS": true + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.eu-south-1.amazonaws.com" + "url": "https://snowball-fips.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "Region": "eu-south-1", "UseFIPS": true } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.eu-south-1.api.aws" + "url": "https://snowball.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-south-1", + "Region": "ap-northeast-3", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.eu-south-1.amazonaws.com" + "url": "https://snowball-fips.ap-northeast-3.amazonaws.com" } }, "params": { + "Region": "ap-northeast-3", "UseDualStack": false, - "Region": "eu-south-1", - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-gov-east-1.api.aws" + "url": "https://snowball.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", - "UseFIPS": true + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-gov-east-1.amazonaws.com" + "url": "https://snowball-fips.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "Region": "us-gov-east-1", "UseFIPS": true } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-gov-east-1.api.aws" + "url": "https://snowball.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-gov-east-1", + "Region": "ap-southeast-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-gov-east-1.amazonaws.com" + "url": "https://snowball-fips.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseDualStack": false, - "Region": "us-gov-east-1", - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.me-central-1.api.aws" + "url": "https://snowball.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-central-1", - "UseFIPS": true + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.me-central-1.amazonaws.com" + "url": "https://snowball-fips.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "Region": "me-central-1", "UseFIPS": true } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.me-central-1.api.aws" + "url": "https://snowball.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "me-central-1", + "Region": "ca-central-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.me-central-1.amazonaws.com" + "url": "https://snowball-fips.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "Region": "me-central-1", - "UseFIPS": false + "UseFIPS": true } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.ca-central-1.api.aws" + "url": "https://snowball.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", - "UseFIPS": true + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.ca-central-1.amazonaws.com" + "url": "https://snowball-fips.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseDualStack": false, - "Region": "ca-central-1", "UseFIPS": true } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.ca-central-1.api.aws" + "url": "https://snowball.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "ca-central-1", + "Region": "eu-north-1", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.ca-central-1.amazonaws.com" + "url": "https://snowball.eu-south-1.amazonaws.com" } }, "params": { + "Region": "eu-south-1", "UseDualStack": false, - "Region": "ca-central-1", "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.eu-central-1.api.aws" + "url": "https://snowball.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.eu-central-1.amazonaws.com" + "url": "https://snowball-fips.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "Region": "eu-central-1", "UseFIPS": true } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.eu-central-1.api.aws" + "url": "https://snowball.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", + "Region": "eu-west-2", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.eu-central-1.amazonaws.com" + "url": "https://snowball-fips.eu-west-2.amazonaws.com" } }, "params": { + "Region": "eu-west-2", "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", "UseFIPS": true } }, { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-iso-west-1.c2s.ic.gov" + "url": "https://snowball.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "Region": "us-iso-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" + "endpoint": { + "url": "https://snowball-fips.eu-west-3.amazonaws.com" + } }, "params": { - "UseDualStack": true, - "Region": "us-iso-west-1", - "UseFIPS": false + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-iso-west-1.c2s.ic.gov" + "url": "https://snowball.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "Region": "us-iso-west-1", "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-west-1.api.aws" + "url": "https://snowball-fips.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-1", + "Region": "sa-east-1", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-west-1.amazonaws.com" + "url": "https://snowball.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-west-1", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-west-1.api.aws" + "url": "https://snowball-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-1", - "UseFIPS": false + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-west-1.amazonaws.com" + "url": "https://snowball.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "Region": "us-west-1", "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-west-2.api.aws" + "url": "https://snowball-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", + "Region": "us-east-2", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-west-2.amazonaws.com" + "url": "https://snowball.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true + "UseFIPS": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-west-2.api.aws" + "url": "https://snowball-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true } }, { @@ -459,1006 +450,245 @@ } }, "params": { - "UseDualStack": false, "Region": "us-west-2", + "UseDualStack": false, "UseFIPS": false } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.af-south-1.api.aws" + "url": "https://snowball-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "af-south-1", + "Region": "us-west-2", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://snowball-fips.af-south-1.amazonaws.com" + "url": "https://snowball-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "af-south-1", + "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": true } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://snowball.af-south-1.api.aws" + "url": "https://snowball.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "Region": "af-south-1", "UseFIPS": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "af-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-3", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-3", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "sa-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "Region": "cn-north-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.us-gov-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-gov-west-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-southeast-1.amazonaws.com" + "url": "https://snowball.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-southeast-1", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.ap-southeast-2.amazonaws.com" + "url": "https://snowball-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.ap-southeast-2.amazonaws.com" + "url": "https://snowball.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "Region": "ap-southeast-2", "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://snowball-fips.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "Region": "us-iso-east-1", "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-iso-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball.us-iso-east-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "Region": "us-iso-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://snowball-fips.ap-southeast-3.api.aws" + "url": "https://snowball-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-southeast-3", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.ap-southeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "ap-southeast-3", "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://snowball.ap-southeast-3.api.aws" + "url": "https://snowball.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "Region": "ap-southeast-3", "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.ap-southeast-3.amazonaws.com" + "url": "https://snowball.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "ap-southeast-3", "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-east-1.amazonaws.com" + "url": "https://snowball-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-east-1.amazonaws.com" + "url": "https://snowball.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-east-2.api.aws" + "url": "https://snowball-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-east-2", + "Region": "us-gov-west-1", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://snowball-fips.us-east-2.amazonaws.com" + "url": "https://snowball-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "Region": "us-east-2", + "Region": "us-gov-east-1", + "UseDualStack": true, "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://snowball.us-east-2.api.aws" + "url": "https://snowball.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-east-2.amazonaws.com" + "url": "https://snowball.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "us-east-2", "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": true - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://snowball-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://snowball.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "Region": "cn-northwest-1", - "UseFIPS": false - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://snowball.cn-northwest-1.amazonaws.com.cn" + "url": "https://snowball.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "Region": "cn-northwest-1", "UseFIPS": false } }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": true - } - }, { "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { @@ -1467,37 +697,27 @@ } }, "params": { - "UseDualStack": false, "Region": "us-isob-east-1", + "UseDualStack": false, "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "Region": "us-isob-east-1", - "UseFIPS": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://snowball.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "Region": "us-isob-east-1", - "UseFIPS": false + "UseFIPS": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1505,7 +725,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -1516,8 +735,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -1528,8 +747,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/snowball/src/main/resources/codegen-resources/service-2.json b/services/snowball/src/main/resources/codegen-resources/service-2.json index 917203ea3ba4..4b159d399019 100644 --- a/services/snowball/src/main/resources/codegen-resources/service-2.json +++ b/services/snowball/src/main/resources/codegen-resources/service-2.json @@ -88,7 +88,7 @@ {"shape":"ClusterLimitExceededException"}, {"shape":"Ec2RequestFailedException"} ], - "documentation":"

    Creates a job to import or export data between Amazon S3 and your on-premises data center. Your Amazon Web Services account must have the right trust policies and permissions in place to create a job for a Snow device. If you're creating a job for a node in a cluster, you only need to provide the clusterId value; the other job attributes are inherited from the cluster.

    Only the Snowball; Edge device type is supported when ordering clustered jobs.

    The device capacity is optional.

    Availability of device types differ by Amazon Web Services Region. For more information about Region availability, see Amazon Web Services Regional Services.

    Snow Family devices and their capacities.

    • Snow Family device type: SNC1_SSD

      • Capacity: T14

      • Description: Snowcone

    • Snow Family device type: SNC1_HDD

      • Capacity: T8

      • Description: Snowcone

    • Device type: EDGE_S

      • Capacity: T98

      • Description: Snowball Edge Storage Optimized for data transfer only

    • Device type: EDGE_CG

      • Capacity: T42

      • Description: Snowball Edge Compute Optimized with GPU

    • Device type: EDGE_C

      • Capacity: T42

      • Description: Snowball Edge Compute Optimized without GPU

    • Device type: EDGE

      • Capacity: T100

      • Description: Snowball Edge Storage Optimized with EC2 Compute

    • Device type: V3_5C

      • Capacity: T32

      • Description: Snowball Edge Compute Optimized without GPU

    • Device type: STANDARD

      • Capacity: T50

      • Description: Original Snowball device

        This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region

    • Device type: STANDARD

      • Capacity: T80

      • Description: Original Snowball device

        This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region.

    " + "documentation":"

    Creates a job to import or export data between Amazon S3 and your on-premises data center. Your Amazon Web Services account must have the right trust policies and permissions in place to create a job for a Snow device. If you're creating a job for a node in a cluster, you only need to provide the clusterId value; the other job attributes are inherited from the cluster.

    Only the Snowball; Edge device type is supported when ordering clustered jobs.

    The device capacity is optional.

    Availability of device types differ by Amazon Web Services Region. For more information about Region availability, see Amazon Web Services Regional Services.

    Snow Family devices and their capacities.

    • Snow Family device type: SNC1_SSD

      • Capacity: T14

      • Description: Snowcone

    • Snow Family device type: SNC1_HDD

      • Capacity: T8

      • Description: Snowcone

    • Device type: EDGE_S

      • Capacity: T98

      • Description: Snowball Edge Storage Optimized for data transfer only

    • Device type: EDGE_CG

      • Capacity: T42

      • Description: Snowball Edge Compute Optimized with GPU

    • Device type: EDGE_C

      • Capacity: T42

      • Description: Snowball Edge Compute Optimized without GPU

    • Device type: EDGE

      • Capacity: T100

      • Description: Snowball Edge Storage Optimized with EC2 Compute

    • Device type: STANDARD

      • Capacity: T50

      • Description: Original Snowball device

        This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region

    • Device type: STANDARD

      • Capacity: T80

      • Description: Original Snowball device

        This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region.

    " }, "CreateLongTermPricing":{ "name":"CreateLongTermPricing", @@ -308,6 +308,20 @@ ], "documentation":"

    Lists all long-term pricing types.

    " }, + "ListServiceVersions":{ + "name":"ListServiceVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListServiceVersionsRequest"}, + "output":{"shape":"ListServiceVersionsResult"}, + "errors":[ + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidResourceException"} + ], + "documentation":"

    Lists all supported versions for Snow on-device services. Returns an array of ServiceVersion object containing the supported versions for a particular service.

    " + }, "UpdateCluster":{ "name":"UpdateCluster", "http":{ @@ -812,7 +826,7 @@ }, "IsLongTermPricingAutoRenew":{ "shape":"JavaBoolean", - "documentation":"

    snowballty

    Specifies whether the current long-term pricing type for the device should be renewed.

    " + "documentation":"

    Specifies whether the current long-term pricing type for the device should be renewed.

    " }, "SnowballType":{ "shape":"SnowballType", @@ -874,6 +888,24 @@ }, "documentation":"

    Defines the real-time status of a Snow device's data transfer while the device is at Amazon Web Services. This data is only available while a job has a JobState value of InProgress, for both import and export jobs.

    " }, + "DependentService":{ + "type":"structure", + "members":{ + "ServiceName":{ + "shape":"ServiceName", + "documentation":"

    The name of the dependent service.

    " + }, + "ServiceVersion":{ + "shape":"ServiceVersion", + "documentation":"

    The version of the dependent service.

    " + } + }, + "documentation":"

    The name and version of the service dependant on the requested service.

    " + }, + "DependentServiceList":{ + "type":"list", + "member":{"shape":"DependentService"} + }, "DescribeAddressRequest":{ "type":"structure", "required":["AddressId"], @@ -1005,6 +1037,20 @@ "S3_ON_DEVICE_SERVICE" ] }, + "EKSOnDeviceServiceConfiguration":{ + "type":"structure", + "members":{ + "KubernetesVersion":{ + "shape":"String", + "documentation":"

    The Kubernetes version for EKS Anywhere on the Snow Family device.

    " + }, + "EKSAnywhereVersion":{ + "shape":"String", + "documentation":"

    The version of EKS Anywhere on the Snow Family device.

    " + } + }, + "documentation":"

    An object representing the metadata and configuration settings of EKS Anywhere on the Snow Family device.

    " + }, "Ec2AmiResource":{ "type":"structure", "required":["AmiId"], @@ -1573,6 +1619,53 @@ } } }, + "ListServiceVersionsRequest":{ + "type":"structure", + "required":["ServiceName"], + "members":{ + "ServiceName":{ + "shape":"ServiceName", + "documentation":"

    The name of the service for which you're requesting supported versions.

    " + }, + "DependentServices":{ + "shape":"DependentServiceList", + "documentation":"

    A list of names and versions of dependant services of the requested service.

    " + }, + "MaxResults":{ + "shape":"ListLimit", + "documentation":"

    The maximum number of ListServiceVersions objects to return.

    " + }, + "NextToken":{ + "shape":"String", + "documentation":"

    Because HTTP requests are stateless, this is the starting point for the next list of returned ListServiceVersionsRequest versions.

    " + } + } + }, + "ListServiceVersionsResult":{ + "type":"structure", + "required":[ + "ServiceVersions", + "ServiceName" + ], + "members":{ + "ServiceVersions":{ + "shape":"ServiceVersionList", + "documentation":"

    A list of supported versions.

    " + }, + "ServiceName":{ + "shape":"ServiceName", + "documentation":"

    The name of the service for which the system provided supported versions.

    " + }, + "DependentServices":{ + "shape":"DependentServiceList", + "documentation":"

    A list of names and versions of dependant services of the service for which the system provided supported versions.

    " + }, + "NextToken":{ + "shape":"String", + "documentation":"

    Because HTTP requests are stateless, this is the starting point of the next list of returned ListServiceVersionsResult results.

    " + } + } + }, "Long":{"type":"long"}, "LongTermPricingAssociatedJobIdList":{ "type":"list", @@ -1683,6 +1776,10 @@ "TGWOnDeviceService":{ "shape":"TGWOnDeviceServiceConfiguration", "documentation":"

    Represents the Storage Gateway service Tape Gateway type on a Snow Family device.

    " + }, + "EKSOnDeviceService":{ + "shape":"EKSOnDeviceServiceConfiguration", + "documentation":"

    The configuration of EKS Anywhere on the Snow Family device.

    " } }, "documentation":"

    An object that represents the metadata and configuration settings for services on an Amazon Web Services Snow Family device.

    " @@ -1734,6 +1831,27 @@ "type":"list", "member":{"shape":"S3Resource"} }, + "ServiceName":{ + "type":"string", + "enum":[ + "KUBERNETES", + "EKS_ANYWHERE" + ] + }, + "ServiceVersion":{ + "type":"structure", + "members":{ + "Version":{ + "shape":"String", + "documentation":"

    The version number of the requested service.

    " + } + }, + "documentation":"

    The version of the requested service.

    " + }, + "ServiceVersionList":{ + "type":"list", + "member":{"shape":"ServiceVersion"} + }, "Shipment":{ "type":"structure", "members":{ @@ -1801,8 +1919,8 @@ "T98", "T8", "T14", - "NoPreference", - "T32" + "T32", + "NoPreference" ] }, "SnowballType":{ diff --git a/services/snowdevicemanagement/pom.xml b/services/snowdevicemanagement/pom.xml index 3cfece6ffc2b..430b5e6fe149 100644 --- a/services/snowdevicemanagement/pom.xml +++ b/services/snowdevicemanagement/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT snowdevicemanagement AWS Java SDK :: Services :: Snow Device Management diff --git a/services/sns/pom.xml b/services/sns/pom.xml index 2026cdbcfb0b..e466ab0699d2 100644 --- a/services/sns/pom.xml +++ b/services/sns/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sns AWS Java SDK :: Services :: Amazon SNS diff --git a/services/sns/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/sns/src/main/resources/codegen-resources/endpoint-rule-set.json index 7d8106e3864d..5c5ec25deeee 100644 --- a/services/sns/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/sns/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,212 +111,276 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sns-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://sns-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "Region" - }, - "us-gov-east-1" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] } ], - "endpoint": { - "url": "https://sns.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + "type": "tree", + "rules": [ { - "fn": "stringEquals", - "argv": [ + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://sns.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { - "ref": "Region" + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://sns.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" }, - "us-gov-west-1" + { + "conditions": [], + "endpoint": { + "url": "https://sns-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } ] } - ], - "endpoint": { - "url": "https://sns.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ] }, { "conditions": [], - "endpoint": { - "url": "https://sns-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sns.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://sns.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sns.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://sns.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/sns/src/main/resources/codegen-resources/endpoint-tests.json b/services/sns/src/main/resources/codegen-resources/endpoint-tests.json index 6d9b9f34aa3b..c9c0005404d8 100644 --- a/services/sns/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/sns/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1182 +1,16 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-2" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-south-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-2" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.us-gov-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.me-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.me-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.ca-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-west-1" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-central-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-2" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.us-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.us-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.us-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.us-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.af-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.af-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-north-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-west-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-west-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://sns-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ap-east-1.api.aws" + "url": "https://sns.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { @@ -1187,588 +21,542 @@ } }, "params": { + "Region": "ap-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://sns.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.cn-north-1.amazonaws.com.cn" + "url": "https://sns.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://sns.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-north-1" + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.cn-north-1.amazonaws.com.cn" + "url": "https://sns.ap-south-1.amazonaws.com" } }, "params": { + "Region": "ap-south-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-north-1" + "UseFIPS": false } }, { - "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ca-west-1.api.aws" + "url": "https://sns.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-west-1" + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ca-west-1.amazonaws.com" + "url": "https://sns.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "ca-west-1" + "UseFIPS": false } }, { - "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ca-west-1.api.aws" + "url": "https://sns.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ca-west-1" + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ca-west-1.amazonaws.com" + "url": "https://sns.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.us-gov-west-1.api.aws" + "url": "https://sns.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.us-gov-west-1.amazonaws.com" + "url": "https://sns.eu-north-1.amazonaws.com" } }, "params": { + "Region": "eu-north-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.us-gov-west-1.api.aws" + "url": "https://sns.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.us-gov-west-1.amazonaws.com" + "url": "https://sns.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-1.api.aws" + "url": "https://sns.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-1.amazonaws.com" + "url": "https://sns.eu-west-3.amazonaws.com" } }, "params": { + "Region": "eu-west-3", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-1.api.aws" + "url": "https://sns.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-1.amazonaws.com" + "url": "https://sns.sa-east-1.amazonaws.com" } }, "params": { + "Region": "sa-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-2.api.aws" + "url": "https://sns.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-2.amazonaws.com" + "url": "https://sns-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-2.api.aws" + "url": "https://sns.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-2.amazonaws.com" + "url": "https://sns-fips.us-east-2.amazonaws.com" } }, "params": { + "Region": "us-east-2", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-iso-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://sns.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-iso-east-1" - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.us-iso-east-1.c2s.ic.gov" + "url": "https://sns-fips.us-west-1.amazonaws.com" } }, "params": { + "Region": "us-west-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-iso-east-1" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-3.api.aws" + "url": "https://sns.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-3" + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-3.amazonaws.com" + "url": "https://sns-fips.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-3" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-3.api.aws" + "url": "https://sns-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-3.amazonaws.com" + "url": "https://sns.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-3" + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-4.api.aws" + "url": "https://sns.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-4" + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.ap-southeast-4.amazonaws.com" + "url": "https://sns.cn-northwest-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-northwest-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-4" + "UseFIPS": false } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-4.api.aws" + "url": "https://sns-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-4" + "UseFIPS": true } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.ap-southeast-4.amazonaws.com" + "url": "https://sns-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-4" + "UseFIPS": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sns-fips.us-east-1.api.aws" + "url": "https://sns.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.us-east-1.amazonaws.com" + "url": "https://sns.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://sns.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.us-east-1.amazonaws.com" + "url": "https://sns.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.us-east-2.api.aws" + "url": "https://sns.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-east-2" + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.us-east-2.amazonaws.com" + "url": "https://sns.us-gov-west-1.amazonaws.com" } }, "params": { + "Region": "us-gov-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sns.us-east-2.api.aws" + "url": "https://sns-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": true, - "UseFIPS": false, - "Region": "us-east-2" + "UseFIPS": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://sns.us-east-2.amazonaws.com" + "url": "https://sns.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-east-2" + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://sns.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://sns.us-iso-west-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-west-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" + "UseFIPS": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://sns-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "cn-northwest-1" + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://sns.cn-northwest-1.amazonaws.com.cn" + "url": "https://sns.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-isob-east-1" + "UseFIPS": false } }, { @@ -1779,37 +567,27 @@ } }, "params": { + "Region": "us-isob-east-1", "UseDualStack": false, - "UseFIPS": true, - "Region": "us-isob-east-1" - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-isob-east-1" + "UseFIPS": true } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://sns.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1818,7 +596,6 @@ "params": { "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1828,9 +605,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": false, "UseFIPS": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1840,9 +617,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseDualStack": true, "UseFIPS": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/sns/src/main/resources/codegen-resources/service-2.json b/services/sns/src/main/resources/codegen-resources/service-2.json index 408a7ebececc..d7a01771ab11 100644 --- a/services/sns/src/main/resources/codegen-resources/service-2.json +++ b/services/sns/src/main/resources/codegen-resources/service-2.json @@ -1093,7 +1093,7 @@ }, "Attributes":{ "shape":"TopicAttributesMap", - "documentation":"

    A map of attributes with their corresponding values.

    The following lists the names, descriptions, and values of the special request parameters that the CreateTopic action uses:

    • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

    • DisplayName – The display name to use for a topic with SMS subscriptions.

    • FifoTopic – Set to true to create a FIFO topic.

    • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

    • SignatureVersion – The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. By default, SignatureVersion is set to 1.

    The following attribute applies only to server-side encryption:

    • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

    The following attributes apply only to FIFO topics:

    • FifoTopic – When this is set to true, a FIFO topic is created.

    • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

      • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

      • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

        (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

    " + "documentation":"

    A map of attributes with their corresponding values.

    The following lists the names, descriptions, and values of the special request parameters that the CreateTopic action uses:

    • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

    • DisplayName – The display name to use for a topic with SMS subscriptions.

    • FifoTopic – Set to true to create a FIFO topic.

    • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

    • SignatureVersion – The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. By default, SignatureVersion is set to 1.

    • TracingConfig – Tracing mode of an Amazon SNS topic. By default TracingConfig is set to PassThrough, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to Active, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. This is only supported on standard topics.

    The following attribute applies only to server-side encryption:

    • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

    The following attributes apply only to FIFO topics:

    • FifoTopic – When this is set to true, a FIFO topic is created.

    • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

      • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

      • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

        (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

    " }, "Tags":{ "shape":"TagList", @@ -1356,7 +1356,7 @@ "members":{ "Attributes":{ "shape":"TopicAttributesMap", - "documentation":"

    A map of the topic's attributes. Attributes in this map include the following:

    • DeliveryPolicy – The JSON serialization of the topic's delivery policy.

    • DisplayName – The human-readable name used in the From field for notifications to email and email-json endpoints.

    • EffectiveDeliveryPolicy – The JSON serialization of the effective delivery policy, taking system defaults into account.

    • Owner – The Amazon Web Services account ID of the topic's owner.

    • Policy – The JSON serialization of the topic's access control policy.

    • SignatureVersion – The version of the Amazon SNS signature used for the topic.

      • By default, SignatureVersion is set to 1. The signature is a Base64-encoded SHA1withRSA signature.

      • When you set SignatureVersion to 2. Amazon SNS uses a Base64-encoded SHA256withRSA signature.

        If the API response does not include the SignatureVersion attribute, it means that the SignatureVersion for the topic has value 1.

    • SubscriptionsConfirmed – The number of confirmed subscriptions for the topic.

    • SubscriptionsDeleted – The number of deleted subscriptions for the topic.

    • SubscriptionsPending – The number of subscriptions pending confirmation for the topic.

    • TopicArn – The topic's ARN.

    The following attribute applies only to server-side-encryption:

    • KmsMasterKeyId - The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

    The following attributes apply only to FIFO topics:

    • FifoTopic – When this is set to true, a FIFO topic is created.

    • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

      • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

      • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

        (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

    " + "documentation":"

    A map of the topic's attributes. Attributes in this map include the following:

    • DeliveryPolicy – The JSON serialization of the topic's delivery policy.

    • DisplayName – The human-readable name used in the From field for notifications to email and email-json endpoints.

    • EffectiveDeliveryPolicy – The JSON serialization of the effective delivery policy, taking system defaults into account.

    • Owner – The Amazon Web Services account ID of the topic's owner.

    • Policy – The JSON serialization of the topic's access control policy.

    • SignatureVersion – The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.

      • By default, SignatureVersion is set to 1. The signature is a Base64-encoded SHA1withRSA signature.

      • When you set SignatureVersion to 2. Amazon SNS uses a Base64-encoded SHA256withRSA signature.

        If the API response does not include the SignatureVersion attribute, it means that the SignatureVersion for the topic has value 1.

    • SubscriptionsConfirmed – The number of confirmed subscriptions for the topic.

    • SubscriptionsDeleted – The number of deleted subscriptions for the topic.

    • SubscriptionsPending – The number of subscriptions pending confirmation for the topic.

    • TopicArn – The topic's ARN.

    • TracingConfig – Tracing mode of an Amazon SNS topic. By default TracingConfig is set to PassThrough, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to Active, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. This is only supported on standard topics.

    The following attribute applies only to server-side-encryption:

    • KmsMasterKeyId - The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

    The following attributes apply only to FIFO topics:

    • FifoTopic – When this is set to true, a FIFO topic is created.

    • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

      • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

      • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

        (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

    " } }, "documentation":"

    Response for GetTopicAttributes action.

    " @@ -2275,7 +2275,7 @@ }, "AttributeName":{ "shape":"attributeName", - "documentation":"

    A map of attributes with their corresponding values.

    The following lists the names, descriptions, and values of the special request parameters that the SetTopicAttributes action uses:

    • ApplicationSuccessFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to a platform application endpoint.

    • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

    • DisplayName – The display name to use for a topic with SMS subscriptions.

    • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

    • HTTP

      • HTTPSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an HTTP endpoint.

      • HTTPSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an HTTP endpoint.

      • HTTPFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an HTTP endpoint.

    • Amazon Kinesis Data Firehose

      • FirehoseSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

      • FirehoseSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

      • FirehoseFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

    • Lambda

      • LambdaSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Lambda endpoint.

      • LambdaSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Lambda endpoint.

      • LambdaFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Lambda endpoint.

    • Platform application endpoint

      • ApplicationSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon Web Services application endpoint.

      • ApplicationSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Amazon Web Services application endpoint.

      • ApplicationFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon Web Services application endpoint.

      In addition to being able to configure topic attributes for message delivery status of notification messages sent to Amazon SNS application endpoints, you can also configure application attributes for the delivery status of push notification messages sent to push notification services.

      For example, For more information, see Using Amazon SNS Application Attributes for Message Delivery Status.

    • Amazon SQS

      • SQSSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

      • SQSSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

      • SQSFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

    The <ENDPOINT>SuccessFeedbackRoleArn and <ENDPOINT>FailureFeedbackRoleArn attributes are used to give Amazon SNS write access to use CloudWatch Logs on your behalf. The <ENDPOINT>SuccessFeedbackSampleRate attribute is for specifying the sample rate percentage (0-100) of successfully delivered messages. After you configure the <ENDPOINT>FailureFeedbackRoleArn attribute, then all failed message deliveries generate CloudWatch Logs.

    The following attribute applies only to server-side-encryption:

    • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

    • SignatureVersion – The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.

    The following attribute applies only to FIFO topics:

    • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

      • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

      • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

        (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

    " + "documentation":"

    A map of attributes with their corresponding values.

    The following lists the names, descriptions, and values of the special request parameters that the SetTopicAttributes action uses:

    • ApplicationSuccessFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to a platform application endpoint.

    • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

    • DisplayName – The display name to use for a topic with SMS subscriptions.

    • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

    • TracingConfig – Tracing mode of an Amazon SNS topic. By default TracingConfig is set to PassThrough, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to Active, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. This is only supported on standard topics.

    • HTTP

      • HTTPSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an HTTP endpoint.

      • HTTPSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an HTTP endpoint.

      • HTTPFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an HTTP endpoint.

    • Amazon Kinesis Data Firehose

      • FirehoseSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

      • FirehoseSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

      • FirehoseFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

    • Lambda

      • LambdaSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Lambda endpoint.

      • LambdaSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Lambda endpoint.

      • LambdaFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Lambda endpoint.

    • Platform application endpoint

      • ApplicationSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon Web Services application endpoint.

      • ApplicationSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Amazon Web Services application endpoint.

      • ApplicationFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon Web Services application endpoint.

      In addition to being able to configure topic attributes for message delivery status of notification messages sent to Amazon SNS application endpoints, you can also configure application attributes for the delivery status of push notification messages sent to push notification services.

      For example, For more information, see Using Amazon SNS Application Attributes for Message Delivery Status.

    • Amazon SQS

      • SQSSuccessFeedbackRoleArn – Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

      • SQSSuccessFeedbackSampleRate – Indicates percentage of successful messages to sample for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

      • SQSFailureFeedbackRoleArn – Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

    The <ENDPOINT>SuccessFeedbackRoleArn and <ENDPOINT>FailureFeedbackRoleArn attributes are used to give Amazon SNS write access to use CloudWatch Logs on your behalf. The <ENDPOINT>SuccessFeedbackSampleRate attribute is for specifying the sample rate percentage (0-100) of successfully delivered messages. After you configure the <ENDPOINT>FailureFeedbackRoleArn attribute, then all failed message deliveries generate CloudWatch Logs.

    The following attribute applies only to server-side-encryption:

    • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

    • SignatureVersion – The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. By default, SignatureVersion is set to 1.

    The following attribute applies only to FIFO topics:

    • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

      • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

      • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

        (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

    " }, "AttributeValue":{ "shape":"attributeValue", diff --git a/services/sqs/pom.xml b/services/sqs/pom.xml index dacc7b0fdf80..676455a09bfd 100644 --- a/services/sqs/pom.xml +++ b/services/sqs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sqs AWS Java SDK :: Services :: Amazon SQS diff --git a/services/ssm/pom.xml b/services/ssm/pom.xml index 28652c12ed4f..8c84d2781e28 100644 --- a/services/ssm/pom.xml +++ b/services/ssm/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ssm AWS Java SDK :: Services :: AWS Simple Systems Management (SSM) diff --git a/services/ssm/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ssm/src/main/resources/codegen-resources/endpoint-rule-set.json index 69b689a1f43a..67ec4003d086 100644 --- a/services/ssm/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ssm/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,199 +111,263 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsDualStack" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ssm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws-us-gov", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsFIPS" ] } ] } ], - "endpoint": { - "url": "https://ssm.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ssm.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ssm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] }, { "conditions": [], - "endpoint": { - "url": "https://ssm-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://ssm.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://ssm.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ssm/src/main/resources/codegen-resources/endpoint-tests.json b/services/ssm/src/main/resources/codegen-resources/endpoint-tests.json index fd49dce08065..e8f367530171 100644 --- a/services/ssm/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ssm/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,1722 +1,562 @@ { "testCases": [ { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-south-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-south-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-south-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.me-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.me-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-iso-west-1.c2s.ic.gov" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-central-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-central-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-northeast-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-3", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.sa-east-1.amazonaws.com" + "url": "https://ssm.af-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-east-1.api.aws" + "url": "https://ssm.ap-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-east-1.amazonaws.com" + "url": "https://ssm.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-east-1.api.aws" + "url": "https://ssm.ap-northeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-northeast-2" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-east-1.amazonaws.com" + "url": "https://ssm.ap-northeast-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-northeast-3" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://ssm.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.cn-north-1.amazonaws.com.cn" + "url": "https://ssm.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://ssm.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.cn-north-1.amazonaws.com.cn" + "url": "https://ssm.ap-southeast-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-southeast-3" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.us-gov-west-1.api.aws" + "url": "https://ssm.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-gov-west-1.amazonaws.com" + "url": "https://ssm-fips.ca-central-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-gov-west-1.api.aws" + "url": "https://ssm.eu-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-gov-west-1.amazonaws.com" + "url": "https://ssm.eu-north-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-southeast-1.amazonaws.com" + "url": "https://ssm.eu-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-1.api.aws" + "url": "https://ssm.eu-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-1.amazonaws.com" + "url": "https://ssm.eu-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-southeast-2.api.aws" + "url": "https://ssm.eu-west-3.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-southeast-2.amazonaws.com" + "url": "https://ssm.me-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-2.api.aws" + "url": "https://ssm.sa-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-2.amazonaws.com" + "url": "https://ssm.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://ssm-fips.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-iso-east-1.c2s.ic.gov" + "url": "https://ssm.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-southeast-3.api.aws" + "url": "https://ssm-fips.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-southeast-3.amazonaws.com" + "url": "https://ssm.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-southeast-3", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-3.api.aws" + "url": "https://ssm-fips.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": true + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-3.amazonaws.com" + "url": "https://ssm.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-3", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-southeast-4.api.aws" + "url": "https://ssm-fips.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-4", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-fips.ap-southeast-4.amazonaws.com" + "url": "https://ssm-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-4", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-4.api.aws" + "url": "https://ssm.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-4", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.ap-southeast-4.amazonaws.com" + "url": "https://ssm.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-4", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.us-east-1.api.aws" + "url": "https://ssm.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-fips.us-east-1.amazonaws.com" + "url": "https://ssm-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-east-1.api.aws" + "url": "https://ssm-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm.us-east-1.amazonaws.com" + "url": "https://ssm.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.us-east-2.api.aws" + "url": "https://ssm.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-fips.us-east-2.amazonaws.com" + "url": "https://ssm.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-east-2.api.aws" + "url": "https://ssm.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-east-2.amazonaws.com" + "url": "https://ssm.us-gov-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://ssm-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://ssm.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://ssm.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm.cn-northwest-1.amazonaws.com.cn" + "url": "https://ssm-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + "endpoint": { + "url": "https://ssm.us-isob-east-1.sc2s.sgov.gov" + } }, "params": { - "UseFIPS": true, - "Region": "us-isob-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { @@ -1728,36 +568,26 @@ }, "params": { "UseFIPS": true, - "Region": "us-isob-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://ssm.us-isob-east-1.sc2s.sgov.gov" + "url": "https://example.com" } }, "params": { "UseFIPS": false, - "Region": "us-isob-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1765,7 +595,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1777,8 +606,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1789,8 +618,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/ssm/src/main/resources/codegen-resources/service-2.json b/services/ssm/src/main/resources/codegen-resources/service-2.json index a1d39099d831..ba53681576a7 100644 --- a/services/ssm/src/main/resources/codegen-resources/service-2.json +++ b/services/ssm/src/main/resources/codegen-resources/service-2.json @@ -1601,7 +1601,7 @@ {"shape":"DocumentPermissionLimit"}, {"shape":"DocumentLimitExceeded"} ], - "documentation":"

    Shares a Amazon Web Services Systems Manager document (SSM document)publicly or privately. If you share a document privately, you must specify the Amazon Web Services user account IDs for those people who can use the document. If you share a document publicly, you must specify All as the account ID.

    " + "documentation":"

    Shares a Amazon Web Services Systems Manager document (SSM document)publicly or privately. If you share a document privately, you must specify the Amazon Web Services user IDs for those people who can use the document. If you share a document publicly, you must specify All as the account ID.

    " }, "PutComplianceItems":{ "name":"PutComplianceItems", @@ -1972,7 +1972,7 @@ {"shape":"AssociationVersionLimitExceeded"}, {"shape":"InvalidTargetMaps"} ], - "documentation":"

    Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon Simple Storage Service (Amazon S3) output. When you call UpdateAssociation, the system removes all optional parameters from the request and overwrites the association with null values for those parameters. This is by design. You must specify all optional parameters in the call, even if you are not changing the parameters. This includes the Name parameter. Before calling this API action, we recommend that you call the DescribeAssociation API operation and make a note of all optional parameters required for your UpdateAssociation call.

    In order to call this API operation, your Identity and Access Management (IAM) user account, group, or role must be configured with permission to call the DescribeAssociation API operation. If you don't have permission to call DescribeAssociation, then you receive the following error: An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: <user_arn> isn't authorized to perform: ssm:DescribeAssociation on resource: <resource_arn>

    When you update an association, the association immediately runs against the specified targets. You can add the ApplyOnlyAtCronInterval parameter to run the association during the next schedule run.

    " + "documentation":"

    Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon Simple Storage Service (Amazon S3) output. When you call UpdateAssociation, the system removes all optional parameters from the request and overwrites the association with null values for those parameters. This is by design. You must specify all optional parameters in the call, even if you are not changing the parameters. This includes the Name parameter. Before calling this API action, we recommend that you call the DescribeAssociation API operation and make a note of all optional parameters required for your UpdateAssociation call.

    In order to call this API operation, a user, group, or role must be granted permission to call the DescribeAssociation API operation. If you don't have permission to call DescribeAssociation, then you receive the following error: An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: <user_arn> isn't authorized to perform: ssm:DescribeAssociation on resource: <resource_arn>

    When you update an association, the association immediately runs against the specified targets. You can add the ApplyOnlyAtCronInterval parameter to run the association during the next schedule run.

    " }, "UpdateAssociationStatus":{ "name":"UpdateAssociationStatus", @@ -2332,7 +2332,7 @@ "members":{ "IgnorePollAlarmFailure":{ "shape":"Boolean", - "documentation":"

    If you specify true for this value, your automation or command continue to run even if we can't gather information about the state of your CloudWatch alarm. The default value is false.

    " + "documentation":"

    When this value is true, your automation or command continues to run in cases where we can’t retrieve alarm status information from CloudWatch. In cases where we successfully retrieve an alarm status of OK or INSUFFICIENT_DATA, the automation or command continues to run, regardless of this value. Default is false.

    " }, "Alarms":{ "shape":"AlarmList", @@ -4566,7 +4566,7 @@ "members":{ "Name":{ "shape":"DocumentARN", - "documentation":"

    The name of the SSM Command document or Automation runbook that contains the configuration information for the managed node.

    You can specify Amazon Web Services-predefined documents, documents you created, or a document that is shared with you from another account.

    For Systems Manager documents (SSM documents) that are shared with you from other Amazon Web Services accounts, you must specify the complete SSM document ARN, in the following format:

    arn:partition:ssm:region:account-id:document/document-name

    For example:

    arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

    For Amazon Web Services-predefined documents and SSM documents you created in your account, you only need to specify the document name. For example, AWS-ApplyPatchBaseline or My-Document.

    " + "documentation":"

    The name of the SSM Command document or Automation runbook that contains the configuration information for the managed node.

    You can specify Amazon Web Services-predefined documents, documents you created, or a document that is shared with you from another Amazon Web Services account.

    For Systems Manager documents (SSM documents) that are shared with you from other Amazon Web Services accounts, you must specify the complete SSM document ARN, in the following format:

    arn:partition:ssm:region:account-id:document/document-name

    For example:

    arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

    For Amazon Web Services-predefined documents and SSM documents you created in your account, you only need to specify the document name. For example, AWS-ApplyPatchBaseline or My-Document.

    " }, "DocumentVersion":{ "shape":"DocumentVersion", @@ -4664,7 +4664,7 @@ "members":{ "Content":{ "shape":"DocumentContent", - "documentation":"

    The content for the new SSM document in JSON or YAML format. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.

    For examples, see the following topics in the Amazon Web Services Systems Manager User Guide.

    " + "documentation":"

    The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.

    For examples, see the following topics in the Amazon Web Services Systems Manager User Guide.

    " }, "Requires":{ "shape":"DocumentRequiresList", @@ -6630,7 +6630,7 @@ }, "Owner":{ "shape":"DocumentOwner", - "documentation":"

    The Amazon Web Services user account that created the document.

    " + "documentation":"

    The Amazon Web Services user that created the document.

    " }, "CreatedDate":{ "shape":"DateTime", @@ -6804,7 +6804,7 @@ }, "Owner":{ "shape":"DocumentOwner", - "documentation":"

    The Amazon Web Services user account that created the document.

    " + "documentation":"

    The Amazon Web Services user that created the document.

    " }, "VersionName":{ "shape":"DocumentVersionName", @@ -6938,7 +6938,7 @@ "documentation":"

    If specified, the default values for the parameters. Parameters without a default value are required. Parameters with a default value are optional.

    " } }, - "documentation":"

    Parameters specified in a System Manager document that run on the server when the command is run.

    " + "documentation":"

    Parameters specified in a Systems Manager document that run on the server when the command is run.

    " }, "DocumentParameterDefaultValue":{"type":"string"}, "DocumentParameterDescrption":{"type":"string"}, @@ -6959,7 +6959,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

    The document can't be shared with more Amazon Web Services user accounts. You can specify a maximum of 20 accounts per API operation to share a private document.

    By default, you can share a private document with a maximum of 1,000 accounts and publicly share up to five documents.

    If you need to increase the quota for privately or publicly shared Systems Manager documents, contact Amazon Web Services Support.

    ", + "documentation":"

    The document can't be shared with more Amazon Web Services accounts. You can specify a maximum of 20 accounts per API operation to share a private document.

    By default, you can share a private document with a maximum of 1,000 accounts and publicly share up to five documents.

    If you need to increase the quota for privately or publicly shared Systems Manager documents, contact Amazon Web Services Support.

    ", "exception":true }, "DocumentPermissionMaxResults":{ @@ -8490,7 +8490,7 @@ "members":{ "SettingId":{ "shape":"ServiceSettingId", - "documentation":"

    The ID of the service setting to get. The setting ID can be one of the following.

    • /ssm/automation/customer-script-log-destination

    • /ssm/automation/customer-script-log-group-name

    • /ssm/documents/console/public-sharing-permission

    • /ssm/managed-instance/activation-tier

    • /ssm/opsinsights/opscenter

    • /ssm/parameter-store/default-parameter-tier

    • /ssm/parameter-store/high-throughput-enabled

    " + "documentation":"

    The ID of the service setting to get. The setting ID can be one of the following.

    • /ssm/managed-instance/default-ec2-instance-management-role

    • /ssm/automation/customer-script-log-destination

    • /ssm/automation/customer-script-log-group-name

    • /ssm/documents/console/public-sharing-permission

    • /ssm/managed-instance/activation-tier

    • /ssm/opsinsights/opscenter

    • /ssm/parameter-store/default-parameter-tier

    • /ssm/parameter-store/high-throughput-enabled

    " } }, "documentation":"

    The request body of the GetServiceSetting API operation.

    " @@ -11327,11 +11327,11 @@ }, "AccountIdsToAdd":{ "shape":"AccountIdList", - "documentation":"

    The Amazon Web Services user accounts that should have access to the document. The account IDs can either be a group of account IDs or All.

    " + "documentation":"

    The Amazon Web Services users that should have access to the document. The account IDs can either be a group of account IDs or All.

    " }, "AccountIdsToRemove":{ "shape":"AccountIdList", - "documentation":"

    The Amazon Web Services user accounts that should no longer have access to the document. The Amazon Web Services user account can either be a group of account IDs or All. This action has a higher priority than AccountIdsToAdd. If you specify an account ID to add and the same ID to remove, the system removes access to the document.

    " + "documentation":"

    The Amazon Web Services users that should no longer have access to the document. The Amazon Web Services user can either be a group of account IDs or All. This action has a higher priority than AccountIdsToAdd. If you specify an ID to add and the same ID to remove, the system removes access to the document.

    " }, "SharedDocumentVersion":{ "shape":"SharedDocumentVersion", @@ -11420,7 +11420,9 @@ "DEBIAN", "MACOS", "RASPBIAN", - "ROCKY_LINUX" + "ROCKY_LINUX", + "ALMA_LINUX", + "AMAZON_LINUX_2023" ] }, "OpsAggregator":{ @@ -13554,7 +13556,7 @@ }, "KeyId":{ "shape":"ParameterKeyId", - "documentation":"

    The Key Management Service (KMS) ID that you want to use to encrypt a parameter. Either the default KMS key automatically assigned to your Amazon Web Services account or a custom key. Required for parameters that use the SecureString data type.

    If you don't specify a key ID, the system uses the default key associated with your Amazon Web Services account.

    • To use your default KMS key, choose the SecureString data type, and do not specify the Key ID when you create the parameter. The system automatically populates Key ID with your default KMS key.

    • To use a custom KMS key, choose the SecureString data type with the Key ID parameter.

    " + "documentation":"

    The Key Management Service (KMS) ID that you want to use to encrypt a parameter. Use a custom key for better security. Required for parameters that use the SecureString data type.

    If you don't specify a key ID, the system uses the default key associated with your Amazon Web Services account which is not as secure as using a custom key.

    • To use a custom KMS key, choose the SecureString data type with the Key ID parameter.

    " }, "Overwrite":{ "shape":"Boolean", @@ -13579,7 +13581,7 @@ }, "DataType":{ "shape":"ParameterDataType", - "documentation":"

    The data type for a String parameter. Supported data types include plain text and Amazon Machine Image (AMI) IDs.

    The following data type values are supported.

    • text

    • aws:ec2:image

    • aws:ssm:integration

    When you create a String parameter and specify aws:ec2:image, Amazon Web Services Systems Manager validates the parameter value is in the required format, such as ami-12345abcdeEXAMPLE, and that the specified AMI is available in your Amazon Web Services account. For more information, see Native parameter support for Amazon Machine Image (AMI) IDs in the Amazon Web Services Systems Manager User Guide.

    " + "documentation":"

    The data type for a String parameter. Supported data types include plain text and Amazon Machine Image (AMI) IDs.

    The following data type values are supported.

    • text

    • aws:ec2:image

    • aws:ssm:integration

    When you create a String parameter and specify aws:ec2:image, Amazon Web Services Systems Manager validates the parameter value is in the required format, such as ami-12345abcdeEXAMPLE, and that the specified AMI is available in your Amazon Web Services account.

    If the action is successful, the service sends back an HTTP 200 response which indicates a successful PutParameter call for all cases except for data type aws:ec2:image. If you call PutParameter with aws:ec2:image data type, a successful HTTP 200 response does not guarantee that your parameter was successfully created or updated. The aws:ec2:image value is validated asynchronously, and the PutParameter call returns before the validation is complete. If you submit an invalid AMI value, the PutParameter operation will return success, but the asynchronous validation will fail and the parameter will not be created or updated. To monitor whether your aws:ec2:image parameters are created successfully, see Setting up notifications or trigger actions based on Parameter Store events. For more information about AMI format validation , see Native parameter support for Amazon Machine Image (AMI) IDs.

    " } } }, @@ -13932,7 +13934,7 @@ "members":{ "SettingId":{ "shape":"ServiceSettingId", - "documentation":"

    The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of the following.

    • /ssm/automation/customer-script-log-destination

    • /ssm/automation/customer-script-log-group-name

    • /ssm/documents/console/public-sharing-permission

    • /ssm/managed-instance/activation-tier

    • /ssm/opsinsights/opscenter

    • /ssm/parameter-store/default-parameter-tier

    • /ssm/parameter-store/high-throughput-enabled

    " + "documentation":"

    The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of the following.

    • /ssm/managed-instance/default-ec2-instance-management-role

    • /ssm/automation/customer-script-log-destination

    • /ssm/automation/customer-script-log-group-name

    • /ssm/documents/console/public-sharing-permission

    • /ssm/managed-instance/activation-tier

    • /ssm/opsinsights/opscenter

    • /ssm/parameter-store/default-parameter-tier

    • /ssm/parameter-store/high-throughput-enabled

    " } }, "documentation":"

    The request body of the ResetServiceSetting API operation.

    " @@ -14786,7 +14788,7 @@ }, "Owner":{ "shape":"SessionOwner", - "documentation":"

    The ID of the Amazon Web Services user account that started the session.

    " + "documentation":"

    The ID of the Amazon Web Services user that started the session.

    " }, "Reason":{ "shape":"SessionReason", @@ -14825,7 +14827,7 @@ }, "value":{ "shape":"SessionFilterValue", - "documentation":"

    The filter value. Valid values for each filter key are as follows:

    • InvokedAfter: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started August 29, 2018, and later.

    • InvokedBefore: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started before August 29, 2018.

    • Target: Specify a managed node to which session connections have been made.

    • Owner: Specify an Amazon Web Services user account to see a list of sessions started by that user.

    • Status: Specify a valid session status to see a list of all sessions with that status. Status values you can specify include:

      • Connected

      • Connecting

      • Disconnected

      • Terminated

      • Terminating

      • Failed

    • SessionId: Specify a session ID to return details about the session.

    " + "documentation":"

    The filter value. Valid values for each filter key are as follows:

    • InvokedAfter: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started August 29, 2018, and later.

    • InvokedBefore: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started before August 29, 2018.

    • Target: Specify a managed node to which session connections have been made.

    • Owner: Specify an Amazon Web Services user to see a list of sessions started by that user.

    • Status: Specify a valid session status to see a list of all sessions with that status. Status values you can specify include:

      • Connected

      • Connecting

      • Disconnected

      • Terminated

      • Terminating

      • Failed

    • SessionId: Specify a session ID to return details about the session.

    " } }, "documentation":"

    Describes a filter for Session Manager information.

    " @@ -14975,7 +14977,7 @@ }, "SharedDocumentVersion":{ "type":"string", - "documentation":"

    The document version shared with other accounts. You can share Latest, Default or All versions.

    ", + "documentation":"

    The document version shared with other Amazon Web Services accounts. You can share Latest, Default or All versions.

    ", "max":8, "pattern":"([$]LATEST|[$]DEFAULT|[$]ALL)" }, @@ -16569,11 +16571,11 @@ "members":{ "SettingId":{ "shape":"ServiceSettingId", - "documentation":"

    The Amazon Resource Name (ARN) of the service setting to reset. For example, arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled. The setting ID can be one of the following.

    • /ssm/automation/customer-script-log-destination

    • /ssm/automation/customer-script-log-group-name

    • /ssm/documents/console/public-sharing-permission

    • /ssm/managed-instance/activation-tier

    • /ssm/opsinsights/opscenter

    • /ssm/parameter-store/default-parameter-tier

    • /ssm/parameter-store/high-throughput-enabled

    " + "documentation":"

    The Amazon Resource Name (ARN) of the service setting to update. For example, arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled. The setting ID can be one of the following.

    • /ssm/managed-instance/default-ec2-instance-management-role

    • /ssm/automation/customer-script-log-destination

    • /ssm/automation/customer-script-log-group-name

    • /ssm/documents/console/public-sharing-permission

    • /ssm/managed-instance/activation-tier

    • /ssm/opsinsights/opscenter

    • /ssm/parameter-store/default-parameter-tier

    • /ssm/parameter-store/high-throughput-enabled

    Permissions to update the /ssm/managed-instance/default-ec2-instance-management-role setting should only be provided to administrators. Implement least privilege access when allowing individuals to configure or modify the Default Host Management Configuration.

    " }, "SettingValue":{ "shape":"ServiceSettingValue", - "documentation":"

    The new value to specify for the service setting. The following list specifies the available values for each setting.

    • /ssm/automation/customer-script-log-destination: CloudWatch

    • /ssm/automation/customer-script-log-group-name: the name of an Amazon CloudWatch Logs log group

    • /ssm/documents/console/public-sharing-permission: Enable or Disable

    • /ssm/managed-instance/activation-tier: standard or advanced

    • /ssm/opsinsights/opscenter: Enabled or Disabled

    • /ssm/parameter-store/default-parameter-tier: Standard, Advanced, Intelligent-Tiering

    • /ssm/parameter-store/high-throughput-enabled: true or false

    " + "documentation":"

    The new value to specify for the service setting. The following list specifies the available values for each setting.

    • /ssm/managed-instance/default-ec2-instance-management-role: The name of an IAM role

    • /ssm/automation/customer-script-log-destination: CloudWatch

    • /ssm/automation/customer-script-log-group-name: The name of an Amazon CloudWatch Logs log group

    • /ssm/documents/console/public-sharing-permission: Enable or Disable

    • /ssm/managed-instance/activation-tier: standard or advanced

    • /ssm/opsinsights/opscenter: Enabled or Disabled

    • /ssm/parameter-store/default-parameter-tier: Standard, Advanced, Intelligent-Tiering

    • /ssm/parameter-store/high-throughput-enabled: true or false

    " } }, "documentation":"

    The request body of the UpdateServiceSetting API operation.

    " diff --git a/services/ssmcontacts/pom.xml b/services/ssmcontacts/pom.xml index f89d82e9ae30..84cabd73c1c7 100644 --- a/services/ssmcontacts/pom.xml +++ b/services/ssmcontacts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ssmcontacts AWS Java SDK :: Services :: SSM Contacts diff --git a/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-rule-set.json index ae305170aa1d..dc2786c871b0 100644 --- a/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ssm-contacts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ssm-contacts-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://ssm-contacts.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://ssm-contacts.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-tests.json b/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-tests.json index 91c92af29cd0..739c38c65fad 100644 --- a/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ssmcontacts/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,15 +1,236 @@ { "testCases": [ { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://example.com" + "url": "https://ssm-contacts-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-contacts.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" } @@ -20,8 +241,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, "Region": "us-east-1", + "UseDualStack": false, "UseFIPS": true, "Endpoint": "https://example.com" } @@ -32,8 +253,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, "Region": "us-east-1", + "UseDualStack": true, "UseFIPS": false, "Endpoint": "https://example.com" } diff --git a/services/ssmcontacts/src/main/resources/codegen-resources/paginators-1.json b/services/ssmcontacts/src/main/resources/codegen-resources/paginators-1.json index cf5a75c7d862..6d2795a1df2e 100644 --- a/services/ssmcontacts/src/main/resources/codegen-resources/paginators-1.json +++ b/services/ssmcontacts/src/main/resources/codegen-resources/paginators-1.json @@ -24,6 +24,11 @@ "output_token": "NextToken", "result_key": "Receipts" }, + "ListPageResolutions": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "PageResolutions" + }, "ListPagesByContact": { "input_token": "NextToken", "limit_key": "MaxResults", @@ -35,6 +40,30 @@ "limit_key": "MaxResults", "output_token": "NextToken", "result_key": "Pages" + }, + "ListPreviewRotationShifts": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "RotationShifts" + }, + "ListRotationOverrides": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "RotationOverrides" + }, + "ListRotationShifts": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "RotationShifts" + }, + "ListRotations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Rotations" } } } \ No newline at end of file diff --git a/services/ssmcontacts/src/main/resources/codegen-resources/service-2.json b/services/ssmcontacts/src/main/resources/codegen-resources/service-2.json index 2c8bc78bbce2..b9e93f81c15d 100644 --- a/services/ssmcontacts/src/main/resources/codegen-resources/service-2.json +++ b/services/ssmcontacts/src/main/resources/codegen-resources/service-2.json @@ -65,7 +65,7 @@ {"shape":"ValidationException"}, {"shape":"DataEncryptionException"} ], - "documentation":"

    Contacts are either the contacts that Incident Manager engages during an incident or the escalation plans that Incident Manager uses to engage contacts in phases during an incident.

    " + "documentation":"

    Contacts are either the contacts that Incident Manager engages during an incident or the escalation plans that Incident Manager uses to engage contacts in phases during an incident.

    " }, "CreateContactChannel":{ "name":"CreateContactChannel", @@ -85,6 +85,42 @@ ], "documentation":"

    A contact channel is the method that Incident Manager uses to engage your contact.

    " }, + "CreateRotation":{ + "name":"CreateRotation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRotationRequest"}, + "output":{"shape":"CreateRotationResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Creates a rotation in an on-call schedule.

    " + }, + "CreateRotationOverride":{ + "name":"CreateRotationOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRotationOverrideRequest"}, + "output":{"shape":"CreateRotationOverrideResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Creates an override for a rotation in an on-call schedule.

    " + }, "DeactivateContactChannel":{ "name":"DeactivateContactChannel", "http":{ @@ -115,6 +151,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, {"shape":"ValidationException"} ], "documentation":"

    To remove a contact from Incident Manager, you can delete the contact. Deleting a contact removes them from all escalation plans and related response plans. Deleting an escalation plan removes it from all related response plans. You will have to recreate the contact and its contact channels before you can use it again.

    " @@ -136,6 +173,41 @@ ], "documentation":"

    To no longer receive engagements on a contact channel, you can delete the channel from a contact. Deleting the contact channel removes it from the contact's engagement plan. If you delete the only contact channel for a contact, you won't be able to engage that contact during an incident.

    " }, + "DeleteRotation":{ + "name":"DeleteRotation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRotationRequest"}, + "output":{"shape":"DeleteRotationResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Deletes a rotation from the system. If a rotation belongs to more than one on-call schedule, this operation deletes it from all of them.

    " + }, + "DeleteRotationOverride":{ + "name":"DeleteRotationOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRotationOverrideRequest"}, + "output":{"shape":"DeleteRotationOverrideResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Deletes an existing override for an on-call rotation.

    " + }, "DescribeEngagement":{ "name":"DescribeEngagement", "http":{ @@ -225,6 +297,40 @@ ], "documentation":"

    Retrieves the resource policies attached to the specified contact or escalation plan.

    " }, + "GetRotation":{ + "name":"GetRotation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRotationRequest"}, + "output":{"shape":"GetRotationResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Retrieves information about an on-call rotation.

    " + }, + "GetRotationOverride":{ + "name":"GetRotationOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRotationOverrideRequest"}, + "output":{"shape":"GetRotationOverrideResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Retrieves information about an override to an on-call rotation.

    " + }, "ListContactChannels":{ "name":"ListContactChannels", "http":{ @@ -290,7 +396,24 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

    Lists all of the engagements to contact channels that have been acknowledged.

    " + "documentation":"

    Lists all of the engagements to contact channels that have been acknowledged.

    " + }, + "ListPageResolutions":{ + "name":"ListPageResolutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPageResolutionsRequest"}, + "output":{"shape":"ListPageResolutionsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Returns the resolution path of an engagement. For example, the escalation plan engaged in an incident might target an on-call schedule that includes several contacts in a rotation, but just one contact on-call when the incident starts. The resolution path indicates the hierarchy of escalation plan > on-call schedule > contact.

    " }, "ListPagesByContact":{ "name":"ListPagesByContact", @@ -326,6 +449,74 @@ ], "documentation":"

    Lists the engagements to contact channels that occurred by engaging a contact.

    " }, + "ListPreviewRotationShifts":{ + "name":"ListPreviewRotationShifts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPreviewRotationShiftsRequest"}, + "output":{"shape":"ListPreviewRotationShiftsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Returns a list of shifts based on rotation configuration parameters.

    The Incident Manager primarily uses this operation to populate the Preview calendar. It is not typically run by end users.

    " + }, + "ListRotationOverrides":{ + "name":"ListRotationOverrides", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRotationOverridesRequest"}, + "output":{"shape":"ListRotationOverridesResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Retrieves a list of overrides currently specified for an on-call rotation.

    " + }, + "ListRotationShifts":{ + "name":"ListRotationShifts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRotationShiftsRequest"}, + "output":{"shape":"ListRotationShiftsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Returns a list of shifts generated by an existing rotation in the system.

    " + }, + "ListRotations":{ + "name":"ListRotations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRotationsRequest"}, + "output":{"shape":"ListRotationsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Retrieves a list of on-call rotations.

    " + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -431,7 +622,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"ValidationException"} ], - "documentation":"

    Tags a contact or escalation plan. You can tag only contacts and escalation plans in the first region of your replication set.

    " + "documentation":"

    Tags a contact or escalation plan. You can tag only contacts and escalation plans in the first region of your replication set.

    " }, "UntagResource":{ "name":"UntagResource", @@ -448,7 +639,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Removes tags from the specified resource.

    " + "documentation":"

    Removes tags from the specified resource.

    " }, "UpdateContact":{ "name":"UpdateContact", @@ -467,7 +658,7 @@ {"shape":"ValidationException"}, {"shape":"DataEncryptionException"} ], - "documentation":"

    Updates the contact or escalation plan specified.

    " + "documentation":"

    Updates the contact or escalation plan specified.

    " }, "UpdateContactChannel":{ "name":"UpdateContactChannel", @@ -487,6 +678,24 @@ {"shape":"ValidationException"} ], "documentation":"

    Updates a contact's contact channel.

    " + }, + "UpdateRotation":{ + "name":"UpdateRotation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRotationRequest"}, + "output":{"shape":"UpdateRotationResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Updates the information specified for an on-call rotation.

    " } }, "shapes":{ @@ -529,7 +738,7 @@ }, "AcceptCode":{ "shape":"AcceptCode", - "documentation":"

    The accept code is a 6-digit code used to acknowledge the page.

    " + "documentation":"

    A 6-digit code used to acknowledge the page.

    " }, "AcceptCodeValidation":{ "shape":"AcceptCodeValidation", @@ -571,7 +780,7 @@ }, "ActivationCode":{ "shape":"ActivationCode", - "documentation":"

    The code sent to the contact channel when it was created in the contact.

    " + "documentation":"

    The code sent to the contact channel when it was created in the contact.

    " } } }, @@ -642,7 +851,11 @@ }, "ResourceType":{ "shape":"String", - "documentation":"ype of the resource in use" + "documentation":"Type of the resource in use" + }, + "DependentEntities":{ + "shape":"DependentEntityList", + "documentation":"List of dependent entities containing information on relation type and resourceArns linked to the resource in use" } }, "documentation":"

    Updating or deleting a resource causes an inconsistent state.

    ", @@ -713,7 +926,7 @@ }, "ActivationStatus":{ "shape":"ActivationStatus", - "documentation":"

    A Boolean value describing if the contact channel has been activated or not. If the contact channel isn't activated, Incident Manager can't engage the contact through it.

    " + "documentation":"

    A Boolean value describing if the contact channel has been activated or not. If the contact channel isn't activated, Incident Manager can't engage the contact through it.

    " } }, "documentation":"

    The method that Incident Manager uses to engage a contact.

    " @@ -726,7 +939,7 @@ "documentation":"

    The format is dependent on the type of the contact channel. The following are the expected formats:

    • SMS - '+' followed by the country code and phone number

    • VOICE - '+' followed by the country code and phone number

    • EMAIL - any standard email format

    " } }, - "documentation":"

    The details that Incident Manager uses when trying to engage the contact channel.

    " + "documentation":"

    The details that Incident Manager uses when trying to engage the contact channel.

    " }, "ContactChannelList":{ "type":"list", @@ -757,7 +970,8 @@ "type":"string", "enum":[ "PERSONAL", - "ESCALATION" + "ESCALATION", + "ONCALL_SCHEDULE" ] }, "ContactsList":{ @@ -770,6 +984,24 @@ "min":1, "pattern":"^[.\\s\\S]*$" }, + "CoverageTime":{ + "type":"structure", + "members":{ + "Start":{ + "shape":"HandOffTime", + "documentation":"

    Information about when the on-call rotation shift begins.

    " + }, + "End":{ + "shape":"HandOffTime", + "documentation":"

    Information about when the on-call rotation shift ends.

    " + } + }, + "documentation":"

    Information about when an on-call shift begins and ends.

    " + }, + "CoverageTimes":{ + "type":"list", + "member":{"shape":"CoverageTime"} + }, "CreateContactChannelRequest":{ "type":"structure", "required":[ @@ -826,11 +1058,11 @@ "members":{ "Alias":{ "shape":"ContactAlias", - "documentation":"

    The short name to quickly identify a contact or escalation plan. The contact alias must be unique and identifiable.

    " + "documentation":"

    The short name to quickly identify a contact or escalation plan. The contact alias must be unique and identifiable.

    " }, "DisplayName":{ "shape":"ContactName", - "documentation":"

    The full name of the contact or escalation plan.

    " + "documentation":"

    The full name of the contact or escalation plan.

    " }, "Type":{ "shape":"ContactType", @@ -838,11 +1070,11 @@ }, "Plan":{ "shape":"Plan", - "documentation":"

    A list of stages. A contact has an engagement plan with stages that contact specified contact channels. An escalation plan uses stages that contact specified contacts.

    " + "documentation":"

    A list of stages. A contact has an engagement plan with stages that contact specified contact channels. An escalation plan uses stages that contact specified contacts.

    " }, "Tags":{ "shape":"TagsList", - "documentation":"

    Adds a tag to the target. You can only tag resources created in the first Region of your replication set.

    " + "documentation":"

    Adds a tag to the target. You can only tag resources created in the first Region of your replication set.

    " }, "IdempotencyToken":{ "shape":"IdempotencyToken", @@ -861,6 +1093,100 @@ } } }, + "CreateRotationOverrideRequest":{ + "type":"structure", + "required":[ + "RotationId", + "NewContactIds", + "StartTime", + "EndTime" + ], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rotation to create an override for.

    " + }, + "NewContactIds":{ + "shape":"RotationOverrideContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts to replace those in the current on-call rotation with.

    If you want to include any current team members in the override shift, you must include their ARNs in the new contact ID list.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time when the override goes into effect.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    The date and time when the override ends.

    " + }, + "IdempotencyToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A token that ensures that the operation is called only once with the specified details.

    " + } + } + }, + "CreateRotationOverrideResult":{ + "type":"structure", + "required":["RotationOverrideId"], + "members":{ + "RotationOverrideId":{ + "shape":"Uuid", + "documentation":"

    The Amazon Resource Name (ARN) of the created rotation override.

    " + } + } + }, + "CreateRotationRequest":{ + "type":"structure", + "required":[ + "Name", + "ContactIds", + "TimeZoneId", + "Recurrence" + ], + "members":{ + "Name":{ + "shape":"RotationName", + "documentation":"

    The name of the rotation.

    " + }, + "ContactIds":{ + "shape":"RotationContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts to add to the rotation.

    The order that you list the contacts in is their shift order in the rotation schedule. To change the order of the contact's shifts, use the UpdateRotation operation.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time that the rotation goes into effect.

    " + }, + "TimeZoneId":{ + "shape":"TimeZoneId", + "documentation":"

    The time zone to base the rotation’s activity on in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"UTC\", or \"Asia/Seoul\". For more information, see the Time Zone Database on the IANA website.

    Designators for time zones that don’t support Daylight Savings Time rules, such as Pacific Standard Time (PST) and Pacific Daylight Time (PDT), are not supported.

    " + }, + "Recurrence":{ + "shape":"RecurrenceSettings", + "documentation":"

    Information about the rule that specifies when a shift's team members rotate.

    " + }, + "Tags":{ + "shape":"TagsList", + "documentation":"

    Optional metadata to assign to the rotation. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For more information, see Tagging Incident Manager resources in the Incident Manager User Guide.

    " + }, + "IdempotencyToken":{ + "shape":"IdempotencyToken", + "documentation":"

    A token that ensures that the operation is called only once with the specified details.

    " + } + } + }, + "CreateRotationResult":{ + "type":"structure", + "required":["RotationArn"], + "members":{ + "RotationArn":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the created rotation.

    " + } + } + }, + "DailySettings":{ + "type":"list", + "member":{"shape":"HandOffTime"} + }, "DataEncryptionException":{ "type":"structure", "required":["Message"], @@ -871,6 +1197,23 @@ "exception":true }, "DateTime":{"type":"timestamp"}, + "DayOfMonth":{ + "type":"integer", + "max":31, + "min":1 + }, + "DayOfWeek":{ + "type":"string", + "enum":[ + "MON", + "TUE", + "WED", + "THU", + "FRI", + "SAT", + "SUN" + ] + }, "DeactivateContactChannelRequest":{ "type":"structure", "required":["ContactChannelId"], @@ -920,6 +1263,65 @@ "members":{ } }, + "DeleteRotationOverrideRequest":{ + "type":"structure", + "required":[ + "RotationId", + "RotationOverrideId" + ], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rotation that was overridden.

    " + }, + "RotationOverrideId":{ + "shape":"Uuid", + "documentation":"

    The Amazon Resource Name (ARN) of the on-call rotation override to delete.

    " + } + } + }, + "DeleteRotationOverrideResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteRotationRequest":{ + "type":"structure", + "required":["RotationId"], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the on-call rotation to delete.

    " + } + } + }, + "DeleteRotationResult":{ + "type":"structure", + "members":{ + } + }, + "DependentEntity":{ + "type":"structure", + "required":[ + "RelationType", + "DependentResourceIds" + ], + "members":{ + "RelationType":{ + "shape":"String", + "documentation":"

    The type of relationship between one resource and the other resource that it is related to or depends on.

    " + }, + "DependentResourceIds":{ + "shape":"SsmContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the dependent resources.

    " + } + }, + "documentation":"

    Information about a resource that another resource is related to or depends on.

    For example, if a contact is a member of a rotation, the rotation is a dependent entity of the contact.

    " + }, + "DependentEntityList":{ + "type":"list", + "member":{"shape":"DependentEntity"} + }, "DescribeEngagementRequest":{ "type":"structure", "required":["EngagementId"], @@ -1130,7 +1532,7 @@ }, "DeliveryAddress":{ "shape":"ContactChannelAddress", - "documentation":"

    The details that Incident Manager uses when trying to engage the contact channel.

    " + "documentation":"

    The details that Incident Manager uses when trying to engage the contact channel.

    " }, "ActivationStatus":{ "shape":"ActivationStatus", @@ -1194,7 +1596,7 @@ }, "Type":{ "shape":"ContactType", - "documentation":"

    The type of contact, either PERSONAL or ESCALATION.

    " + "documentation":"

    The type of contact, either PERSONAL or ESCALATION.

    " }, "Plan":{ "shape":"Plan", @@ -1202,9 +1604,125 @@ } } }, - "IdempotencyToken":{ - "type":"string", - "max":2048, + "GetRotationOverrideRequest":{ + "type":"structure", + "required":[ + "RotationId", + "RotationOverrideId" + ], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the overridden rotation to retrieve information about.

    " + }, + "RotationOverrideId":{ + "shape":"Uuid", + "documentation":"

    The Amazon Resource Name (ARN) of the on-call rotation override to retrieve information about.

    " + } + } + }, + "GetRotationOverrideResult":{ + "type":"structure", + "members":{ + "RotationOverrideId":{ + "shape":"Uuid", + "documentation":"

    The Amazon Resource Name (ARN) of the override to an on-call rotation.

    " + }, + "RotationArn":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the on-call rotation that was overridden.

    " + }, + "NewContactIds":{ + "shape":"SsmContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts assigned to the override of the on-call rotation.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time when the override goes into effect.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    The date and time when the override ends.

    " + }, + "CreateTime":{ + "shape":"DateTime", + "documentation":"

    The date and time when the override was created.

    " + } + } + }, + "GetRotationRequest":{ + "type":"structure", + "required":["RotationId"], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the on-call rotation to retrieve information about.

    " + } + } + }, + "GetRotationResult":{ + "type":"structure", + "required":[ + "RotationArn", + "Name", + "ContactIds", + "StartTime", + "TimeZoneId", + "Recurrence" + ], + "members":{ + "RotationArn":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the on-call rotation.

    " + }, + "Name":{ + "shape":"RotationName", + "documentation":"

    The name of the on-call rotation.

    " + }, + "ContactIds":{ + "shape":"RotationContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts assigned to the on-call rotation team.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The specified start time for the on-call rotation.

    " + }, + "TimeZoneId":{ + "shape":"TimeZoneId", + "documentation":"

    The time zone that the rotation’s activity is based on, in Internet Assigned Numbers Authority (IANA) format.

    " + }, + "Recurrence":{ + "shape":"RecurrenceSettings", + "documentation":"

    Specifies how long a rotation lasts before restarting at the beginning of the shift order.

    " + } + } + }, + "HandOffTime":{ + "type":"structure", + "required":[ + "HourOfDay", + "MinuteOfHour" + ], + "members":{ + "HourOfDay":{ + "shape":"HourOfDay", + "documentation":"

    The hour when an on-call rotation shift begins or ends.

    " + }, + "MinuteOfHour":{ + "shape":"MinuteOfHour", + "documentation":"

    The minute when an on-call rotation shift begins or ends.

    " + } + }, + "documentation":"

    Details about when an on-call rotation shift begins or ends.

    " + }, + "HourOfDay":{ + "type":"integer", + "max":23, + "min":0 + }, + "IdempotencyToken":{ + "type":"string", + "max":2048, "pattern":"^[\\\\\\/a-zA-Z0-9_+=\\-]*$" }, "IncidentId":{ @@ -1236,7 +1754,7 @@ "members":{ "ContactId":{ "shape":"SsmContactsArn", - "documentation":"

    The Amazon Resource Name (ARN) of the contact.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the contact.

    " }, "NextToken":{ "shape":"PaginationToken", @@ -1244,7 +1762,8 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    The maximum number of contact channels per page.

    " + "documentation":"

    The maximum number of contact channels per page.

    ", + "box":true } } }, @@ -1271,7 +1790,8 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    The maximum number of contacts and escalation plans per page of results.

    " + "documentation":"

    The maximum number of contacts and escalation plans per page of results.

    ", + "box":true }, "AliasPrefix":{ "shape":"ContactAlias", @@ -1305,7 +1825,8 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    The maximum number of engagements per page of results.

    " + "documentation":"

    The maximum number of engagements per page of results.

    ", + "box":true }, "IncidentId":{ "shape":"IncidentId", @@ -1345,7 +1866,8 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    The maximum number of acknowledgements per page of results.

    " + "documentation":"

    The maximum number of acknowledgements per page of results.

    ", + "box":true } } }, @@ -1362,6 +1884,34 @@ } } }, + "ListPageResolutionsRequest":{ + "type":"structure", + "required":["PageId"], + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    A token to start the list. Use this token to get the next set of results.

    " + }, + "PageId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the contact engaged for the incident.

    " + } + } + }, + "ListPageResolutionsResult":{ + "type":"structure", + "required":["PageResolutions"], + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next set of items to return. Use this token to get the next set of results.

    " + }, + "PageResolutions":{ + "shape":"ResolutionList", + "documentation":"

    Information about the resolution for an engagement.

    " + } + } + }, "ListPagesByContactRequest":{ "type":"structure", "required":["ContactId"], @@ -1376,7 +1926,8 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    The maximum number of engagements to contact channels to list per page of results.

    " + "documentation":"

    The maximum number of engagements to contact channels to list per page of results.

    ", + "box":true } } }, @@ -1408,7 +1959,8 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

    The maximum number of engagements to contact channels to list per page of results.

    " + "documentation":"

    The maximum number of engagements to contact channels to list per page of results.

    ", + "box":true } } }, @@ -1426,6 +1978,186 @@ } } }, + "ListPreviewRotationShiftsRequest":{ + "type":"structure", + "required":[ + "EndTime", + "Members", + "TimeZoneId", + "Recurrence" + ], + "members":{ + "RotationStartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time a rotation would begin. The first shift is calculated from this date and time.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    Used to filter the range of calculated shifts before sending the response back to the user.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    The date and time a rotation shift would end.

    " + }, + "Members":{ + "shape":"RotationPreviewMemberList", + "documentation":"

    The contacts that would be assigned to a rotation.

    " + }, + "TimeZoneId":{ + "shape":"TimeZoneId", + "documentation":"

    The time zone the rotation’s activity would be based on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"UTC\", or \"Asia/Seoul\".

    " + }, + "Recurrence":{ + "shape":"RecurrenceSettings", + "documentation":"

    Information about how long a rotation would last before restarting at the beginning of the shift order.

    " + }, + "Overrides":{ + "shape":"OverrideList", + "documentation":"

    Information about changes that would be made in a rotation override.

    " + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    A token to start the list. This token is used to get the next set of results.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of items to return for this call. The call also returns a token that can be specified in a subsequent call to get the next set of results.

    ", + "box":true + } + } + }, + "ListPreviewRotationShiftsResult":{ + "type":"structure", + "members":{ + "RotationShifts":{ + "shape":"RotationShifts", + "documentation":"

    Details about a rotation shift, including times, types, and contacts.

    " + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next set of items to return. This token is used to get the next set of results.

    " + } + } + }, + "ListRotationOverridesRequest":{ + "type":"structure", + "required":[ + "RotationId", + "StartTime", + "EndTime" + ], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rotation to retrieve information about.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time for the beginning of a time range for listing overrides.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    The date and time for the end of a time range for listing overrides.

    " + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    A token to start the list. Use this token to get the next set of results.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

    ", + "box":true + } + } + }, + "ListRotationOverridesResult":{ + "type":"structure", + "members":{ + "RotationOverrides":{ + "shape":"RotationOverrides", + "documentation":"

    A list of rotation overrides in the specified time range.

    " + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next set of items to return. Use this token to get the next set of results.

    " + } + } + }, + "ListRotationShiftsRequest":{ + "type":"structure", + "required":[ + "RotationId", + "EndTime" + ], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rotation to retrieve shift information about.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time for the beginning of the time range to list shifts for.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    The date and time for the end of the time range to list shifts for.

    " + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    A token to start the list. Use this token to get the next set of results.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

    ", + "box":true + } + } + }, + "ListRotationShiftsResult":{ + "type":"structure", + "members":{ + "RotationShifts":{ + "shape":"RotationShifts", + "documentation":"

    Information about shifts that meet the filter criteria.

    " + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next set of items to return. Use this token to get the next set of results.

    " + } + } + }, + "ListRotationsRequest":{ + "type":"structure", + "members":{ + "RotationNamePrefix":{ + "shape":"RotationName", + "documentation":"

    A filter to include rotations in list results based on their common prefix. For example, entering prod returns a list of all rotation names that begin with prod, such as production and prod-1.

    " + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    A token to start the list. Use this token to get the next set of results.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

    ", + "box":true + } + } + }, + "ListRotationsResult":{ + "type":"structure", + "required":["Rotations"], + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next set of items to return. Use this token to get the next set of results.

    " + }, + "Rotations":{ + "shape":"Rotations", + "documentation":"

    Information about rotations that meet the filter criteria.

    " + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceARN"], @@ -1451,6 +2183,47 @@ "max":1024, "min":0 }, + "Member":{ + "type":"string", + "max":512, + "min":1, + "pattern":".*\\S.*" + }, + "MinuteOfHour":{ + "type":"integer", + "max":59, + "min":0 + }, + "MonthlySetting":{ + "type":"structure", + "required":[ + "DayOfMonth", + "HandOffTime" + ], + "members":{ + "DayOfMonth":{ + "shape":"DayOfMonth", + "documentation":"

    The day of the month when monthly recurring on-call rotations begin.

    " + }, + "HandOffTime":{ + "shape":"HandOffTime", + "documentation":"

    The time of day when a monthly recurring on-call shift rotation begins.

    " + } + }, + "documentation":"

    Information about on-call rotations that recur monthly.

    " + }, + "MonthlySettings":{ + "type":"list", + "member":{"shape":"MonthlySetting"} + }, + "NumberOfOnCalls":{ + "type":"integer", + "min":1 + }, + "OverrideList":{ + "type":"list", + "member":{"shape":"PreviewOverride"} + }, "Page":{ "type":"structure", "required":[ @@ -1506,14 +2279,17 @@ }, "Plan":{ "type":"structure", - "required":["Stages"], "members":{ "Stages":{ "shape":"StagesList", "documentation":"

    A list of stages that the escalation plan or engagement plan uses to engage contacts and contact methods.

    " + }, + "RotationIds":{ + "shape":"SsmContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the on-call rotations associated with the plan.

    " } }, - "documentation":"

    The stages that an escalation plan or engagement plan engages contacts and contact methods in.

    " + "documentation":"

    Information about the stages and on-call rotation teams associated with an escalation plan or engagement plan.

    " }, "Policy":{ "type":"string", @@ -1521,6 +2297,24 @@ "min":1, "pattern":".*\\S.*" }, + "PreviewOverride":{ + "type":"structure", + "members":{ + "NewMembers":{ + "shape":"RotationOverridePreviewMemberList", + "documentation":"

    Information about contacts to add to an on-call rotation override.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    Information about the time a rotation override would begin.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    Information about the time a rotation override would end.

    " + } + }, + "documentation":"

    Information about contacts and times that an on-call override replaces.

    " + }, "PublicContent":{ "type":"string", "max":8192, @@ -1601,6 +2395,74 @@ "type":"list", "member":{"shape":"Receipt"} }, + "RecurrenceMultiplier":{ + "type":"integer", + "max":100, + "min":1 + }, + "RecurrenceSettings":{ + "type":"structure", + "required":[ + "NumberOfOnCalls", + "RecurrenceMultiplier" + ], + "members":{ + "MonthlySettings":{ + "shape":"MonthlySettings", + "documentation":"

    Information about on-call rotations that recur monthly.

    " + }, + "WeeklySettings":{ + "shape":"WeeklySettings", + "documentation":"

    Information about on-call rotations that recur weekly.

    " + }, + "DailySettings":{ + "shape":"DailySettings", + "documentation":"

    Information about on-call rotations that recur daily.

    " + }, + "NumberOfOnCalls":{ + "shape":"NumberOfOnCalls", + "documentation":"

    The number of contacts, or shift team members designated to be on call concurrently during a shift. For example, in an on-call schedule containing ten contacts, a value of 2 designates that two of them are on call at any given time.

    ", + "box":true + }, + "ShiftCoverages":{ + "shape":"ShiftCoveragesMap", + "documentation":"

    Information about the days of the week included in on-call rotation coverage.

    " + }, + "RecurrenceMultiplier":{ + "shape":"RecurrenceMultiplier", + "documentation":"

    The number of days, weeks, or months a single rotation lasts.

    ", + "box":true + } + }, + "documentation":"

    Information about when an on-call rotation is in effect and how long the rotation period lasts.

    " + }, + "ResolutionContact":{ + "type":"structure", + "required":[ + "ContactArn", + "Type" + ], + "members":{ + "ContactArn":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of a contact in the engagement resolution process.

    " + }, + "Type":{ + "shape":"ContactType", + "documentation":"

    The type of contact for a resolution step.

    " + }, + "StageIndex":{ + "shape":"StageIndex", + "documentation":"

    The stage in the escalation plan that resolves to this contact.

    ", + "box":true + } + }, + "documentation":"

    Information about the engagement resolution steps. The resolution starts from the first contact, which can be an escalation plan, then resolves to an on-call rotation, and finally to a personal contact.

    The ResolutionContact structure describes the information for each node or step in that process. It contains information about different contact types, such as the escalation, rotation, and personal contacts.

    " + }, + "ResolutionList":{ + "type":"list", + "member":{"shape":"ResolutionContact"} + }, "ResourceNotFoundException":{ "type":"structure", "required":[ @@ -1629,6 +2491,145 @@ "max":60, "min":0 }, + "Rotation":{ + "type":"structure", + "required":[ + "RotationArn", + "Name" + ], + "members":{ + "RotationArn":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rotation.

    " + }, + "Name":{ + "shape":"RotationName", + "documentation":"

    The name of the rotation.

    " + }, + "ContactIds":{ + "shape":"SsmContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts assigned to the rotation team.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time the rotation becomes active.

    " + }, + "TimeZoneId":{ + "shape":"TimeZoneId", + "documentation":"

    The time zone the rotation’s activity is based on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"UTC\", or \"Asia/Seoul\".

    " + }, + "Recurrence":{ + "shape":"RecurrenceSettings", + "documentation":"

    Information about when an on-call rotation is in effect and how long the rotation period lasts.

    " + } + }, + "documentation":"

    Information about a rotation in an on-call schedule.

    " + }, + "RotationContactsArnList":{ + "type":"list", + "member":{"shape":"SsmContactsArn"}, + "max":30, + "min":1 + }, + "RotationName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[a-zA-Z0-9_\\-\\s\\.]*$" + }, + "RotationOverride":{ + "type":"structure", + "required":[ + "RotationOverrideId", + "NewContactIds", + "StartTime", + "EndTime", + "CreateTime" + ], + "members":{ + "RotationOverrideId":{ + "shape":"Uuid", + "documentation":"

    The Amazon Resource Name (ARN) of the override to an on-call rotation.

    " + }, + "NewContactIds":{ + "shape":"SsmContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts assigned to the override of the on-call rotation.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The time a rotation override begins.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    The time a rotation override ends.

    " + }, + "CreateTime":{ + "shape":"DateTime", + "documentation":"

    The time a rotation override was created.

    " + } + }, + "documentation":"

    Information about an override specified for an on-call rotation.

    " + }, + "RotationOverrideContactsArnList":{ + "type":"list", + "member":{"shape":"SsmContactsArn"}, + "max":30, + "min":0 + }, + "RotationOverridePreviewMemberList":{ + "type":"list", + "member":{"shape":"Member"}, + "max":30, + "min":0 + }, + "RotationOverrides":{ + "type":"list", + "member":{"shape":"RotationOverride"} + }, + "RotationPreviewMemberList":{ + "type":"list", + "member":{"shape":"Member"}, + "max":30, + "min":1 + }, + "RotationShift":{ + "type":"structure", + "required":[ + "StartTime", + "EndTime" + ], + "members":{ + "ContactIds":{ + "shape":"SsmContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts who are part of the shift rotation.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The time a shift rotation begins.

    " + }, + "EndTime":{ + "shape":"DateTime", + "documentation":"

    The time a shift rotation ends.

    " + }, + "Type":{ + "shape":"ShiftType", + "documentation":"

    The type of shift rotation.

    " + }, + "ShiftDetails":{ + "shape":"ShiftDetails", + "documentation":"

    Additional information about an on-call rotation shift.

    " + } + }, + "documentation":"

    Information about a shift that belongs to an on-call rotation.

    " + }, + "RotationShifts":{ + "type":"list", + "member":{"shape":"RotationShift"} + }, + "Rotations":{ + "type":"list", + "member":{"shape":"Rotation"} + }, "SendActivationCodeRequest":{ "type":"structure", "required":["ContactChannelId"], @@ -1678,6 +2679,29 @@ "documentation":"

    Request would cause a service quota to be exceeded.

    ", "exception":true }, + "ShiftCoveragesMap":{ + "type":"map", + "key":{"shape":"DayOfWeek"}, + "value":{"shape":"CoverageTimes"} + }, + "ShiftDetails":{ + "type":"structure", + "required":["OverriddenContactIds"], + "members":{ + "OverriddenContactIds":{ + "shape":"SsmContactsArnList", + "documentation":"

    The Amazon Resources Names (ARNs) of the contacts who were replaced in a shift when an override was created. If the override is deleted, these contacts are restored to the shift.

    " + } + }, + "documentation":"

    Information about overrides to an on-call rotation shift.

    " + }, + "ShiftType":{ + "type":"string", + "enum":[ + "REGULAR", + "OVERRIDDEN" + ] + }, "SimpleAddress":{ "type":"string", "max":320, @@ -1689,6 +2713,12 @@ "min":1, "pattern":"arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*" }, + "SsmContactsArnList":{ + "type":"list", + "member":{"shape":"SsmContactsArn"}, + "max":25, + "min":0 + }, "Stage":{ "type":"structure", "required":[ @@ -1713,6 +2743,11 @@ "max":30, "min":0 }, + "StageIndex":{ + "type":"integer", + "max":100, + "min":0 + }, "StagesList":{ "type":"list", "member":{"shape":"Stage"} @@ -1781,7 +2816,7 @@ }, "Reason":{ "shape":"StopReason", - "documentation":"

    The reason that you're stopping the engagement.

    " + "documentation":"

    The reason that you're stopping the engagement.

    " } } }, @@ -1915,6 +2950,12 @@ }, "documentation":"

    A range of between two set times

    " }, + "TimeZoneId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[:a-zA-Z0-9_\\-\\s\\.\\\\/]*$" + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -1951,7 +2992,7 @@ }, "DeliveryAddress":{ "shape":"ContactChannelAddress", - "documentation":"

    The details that Incident Manager uses when trying to engage the contact channel.

    " + "documentation":"

    The details that Incident Manager uses when trying to engage the contact channel.

    " } } }, @@ -1974,7 +3015,7 @@ }, "Plan":{ "shape":"Plan", - "documentation":"

    A list of stages. A contact has an engagement plan with stages for specified contact channels. An escalation plan uses these stages to contact specified contacts.

    " + "documentation":"

    A list of stages. A contact has an engagement plan with stages for specified contact channels. An escalation plan uses these stages to contact specified contacts.

    " } } }, @@ -1983,6 +3024,46 @@ "members":{ } }, + "UpdateRotationRequest":{ + "type":"structure", + "required":[ + "RotationId", + "Recurrence" + ], + "members":{ + "RotationId":{ + "shape":"SsmContactsArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rotation to update.

    " + }, + "ContactIds":{ + "shape":"RotationContactsArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the contacts to include in the updated rotation.

    The order in which you list the contacts is their shift order in the rotation schedule.

    " + }, + "StartTime":{ + "shape":"DateTime", + "documentation":"

    The date and time the rotation goes into effect.

    " + }, + "TimeZoneId":{ + "shape":"TimeZoneId", + "documentation":"

    The time zone to base the updated rotation’s activity on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"UTC\", or \"Asia/Seoul\". For more information, see the Time Zone Database on the IANA website.

    Designators for time zones that don’t support Daylight Savings Time Rules, such as Pacific Standard Time (PST) and Pacific Daylight Time (PDT), aren't supported.

    " + }, + "Recurrence":{ + "shape":"RecurrenceSettings", + "documentation":"

    Information about how long the updated rotation lasts before restarting at the beginning of the shift order.

    " + } + } + }, + "UpdateRotationResult":{ + "type":"structure", + "members":{ + } + }, + "Uuid":{ + "type":"string", + "max":39, + "min":36, + "pattern":"([a-fA-Z0-9]{8,11}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}" + }, "ValidationException":{ "type":"structure", "required":["Message"], @@ -2030,7 +3111,29 @@ "FIELD_VALIDATION_FAILED", "OTHER" ] + }, + "WeeklySetting":{ + "type":"structure", + "required":[ + "DayOfWeek", + "HandOffTime" + ], + "members":{ + "DayOfWeek":{ + "shape":"DayOfWeek", + "documentation":"

    The day of the week when weekly recurring on-call shift rotations begins.

    " + }, + "HandOffTime":{ + "shape":"HandOffTime", + "documentation":"

    The time of day when a weekly recurring on-call shift rotation begins.

    " + } + }, + "documentation":"

    Information about rotations that recur weekly.

    " + }, + "WeeklySettings":{ + "type":"list", + "member":{"shape":"WeeklySetting"} } }, - "documentation":"

    Systems Manager Incident Manager is an incident management console designed to help users mitigate and recover from incidents affecting their Amazon Web Services-hosted applications. An incident is any unplanned interruption or reduction in quality of services.

    Incident Manager increases incident resolution by notifying responders of impact, highlighting relevant troubleshooting data, and providing collaboration tools to get services back up and running. To achieve the primary goal of reducing the time-to-resolution of critical incidents, Incident Manager automates response plans and enables responder team escalation.

    " + "documentation":"

    Systems Manager Incident Manager is an incident management console designed to help users mitigate and recover from incidents affecting their Amazon Web Services-hosted applications. An incident is any unplanned interruption or reduction in quality of services.

    Incident Manager increases incident resolution by notifying responders of impact, highlighting relevant troubleshooting data, and providing collaboration tools to get services back up and running. To achieve the primary goal of reducing the time-to-resolution of critical incidents, Incident Manager automates response plans and enables responder team escalation.

    " } diff --git a/services/ssmincidents/pom.xml b/services/ssmincidents/pom.xml index 5dce566ac7c6..657fc3c8640c 100644 --- a/services/ssmincidents/pom.xml +++ b/services/ssmincidents/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ssmincidents AWS Java SDK :: Services :: SSM Incidents diff --git a/services/ssmincidents/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/ssmincidents/src/main/resources/codegen-resources/endpoint-rule-set.json index 575ce3d8c28e..5f7f42b0b308 100644 --- a/services/ssmincidents/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/ssmincidents/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-incidents-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-incidents-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ssm-incidents-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-incidents.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://ssm-incidents-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://ssm-incidents.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ssm-incidents.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://ssm-incidents.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/ssmincidents/src/main/resources/codegen-resources/endpoint-tests.json b/services/ssmincidents/src/main/resources/codegen-resources/endpoint-tests.json index 9be57ba056a7..de782db5e9cc 100644 --- a/services/ssmincidents/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/ssmincidents/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.ap-south-1.amazonaws.com" + "url": "https://ssm-incidents.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ap-south-1.api.aws" + "url": "https://ssm-incidents.ap-northeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-northeast-2" } }, { @@ -48,47 +35,34 @@ }, "params": { "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.ca-central-1.amazonaws.com" + "url": "https://ssm-incidents.ap-southeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ca-central-1.api.aws" + "url": "https://ssm-incidents.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { @@ -100,47 +74,8 @@ }, "params": { "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ca-central-1" } }, { @@ -152,151 +87,8 @@ }, "params": { "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-central-1" } }, { @@ -308,47 +100,34 @@ }, "params": { "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-north-1" } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.eu-west-3.amazonaws.com" + "url": "https://ssm-incidents.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.eu-west-3.api.aws" + "url": "https://ssm-incidents.eu-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-west-2" } }, { @@ -360,480 +139,330 @@ }, "params": { "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.eu-west-2.amazonaws.com" + "url": "https://ssm-incidents.sa-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.eu-west-1.api.aws" + "url": "https://ssm-incidents.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.eu-west-1.amazonaws.com" + "url": "https://ssm-incidents.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ap-northeast-2.api.aws" + "url": "https://ssm-incidents.us-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ap-northeast-2.amazonaws.com" + "url": "https://ssm-incidents.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.ap-northeast-1.api.aws" + "url": "https://ssm-incidents-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.ap-northeast-1.amazonaws.com" + "url": "https://ssm-incidents-fips.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ap-northeast-1.amazonaws.com" + "url": "https://ssm-incidents.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.sa-east-1.api.aws" + "url": "https://ssm-incidents-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.sa-east-1.amazonaws.com" + "url": "https://ssm-incidents-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.sa-east-1.api.aws" + "url": "https://ssm-incidents.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.sa-east-1.amazonaws.com" + "url": "https://ssm-incidents.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.ap-southeast-1.api.aws" + "url": "https://ssm-incidents-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.ap-southeast-1.amazonaws.com" + "url": "https://ssm-incidents-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ap-southeast-1.api.aws" + "url": "https://ssm-incidents.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ap-southeast-1.amazonaws.com" + "url": "https://ssm-incidents.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.ap-southeast-2.amazonaws.com" + "url": "https://ssm-incidents-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://ssm-incidents.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.ap-southeast-2.amazonaws.com" + "url": "https://ssm-incidents.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents-fips.us-east-1.amazonaws.com" + "url": "https://ssm-incidents-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://ssm-incidents.us-east-1.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://ssm-incidents-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.us-east-2.api.aws" + "url": "https://ssm-incidents.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://ssm-incidents.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -841,7 +470,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -853,8 +481,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -865,10 +493,16 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/ssmincidents/src/main/resources/codegen-resources/service-2.json b/services/ssmincidents/src/main/resources/codegen-resources/service-2.json index e4033dd2de63..c20c94eeb25a 100644 --- a/services/ssmincidents/src/main/resources/codegen-resources/service-2.json +++ b/services/ssmincidents/src/main/resources/codegen-resources/service-2.json @@ -69,7 +69,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

    Creates a custom timeline event on the incident details page of an incident record. Timeline events are automatically created by Incident Manager, marking key moment during an incident. You can create custom timeline events to mark important events that are automatically detected by Incident Manager.

    ", + "documentation":"

    Creates a custom timeline event on the incident details page of an incident record. Incident Manager automatically creates timeline events that mark key moments during an incident. You can create custom timeline events to mark important events that Incident Manager can detect automatically.

    ", "idempotent":true }, "DeleteIncidentRecord":{ @@ -805,7 +805,7 @@ "members":{ "clientToken":{ "shape":"ClientToken", - "documentation":"

    A token ensuring that the action is called only once with the specified details.

    ", + "documentation":"

    A token that ensures that a client calls the action only once with the specified details.

    ", "idempotencyToken":true }, "eventData":{ @@ -814,7 +814,7 @@ }, "eventReferences":{ "shape":"EventReferenceList", - "documentation":"

    Adds one or more references to the TimelineEvent. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.

    " + "documentation":"

    Adds one or more references to the TimelineEvent. A reference is an Amazon Web Services resource involved or associated with the incident. To specify a reference, enter its Amazon Resource Name (ARN). You can also specify a related item associated with a resource. For example, to specify an Amazon DynamoDB (DynamoDB) table as a resource, use the table's ARN. You can also specify an Amazon CloudWatch metric associated with the DynamoDB table as a related item.

    " }, "eventTime":{ "shape":"Timestamp", @@ -822,11 +822,11 @@ }, "eventType":{ "shape":"TimelineEventType", - "documentation":"

    The type of the event. You can create timeline events of type Custom Event.

    " + "documentation":"

    The type of event. You can create timeline events of type Custom Event.

    " }, "incidentRecordArn":{ "shape":"Arn", - "documentation":"

    The Amazon Resource Name (ARN) of the incident record to which the event will be added.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the incident record that the action adds the incident to.

    " } } }, @@ -941,7 +941,7 @@ "members":{ "eventId":{ "shape":"UUID", - "documentation":"

    The ID of the event you are updating. You can find this by using ListTimelineEvents.

    " + "documentation":"

    The ID of the event to update. You can use ListTimelineEvents to find an event's ID.

    " }, "incidentRecordArn":{ "shape":"Arn", @@ -1424,7 +1424,7 @@ }, "IncidentSummary":{ "type":"string", - "max":4000, + "max":8000, "min":0 }, "IncidentTemplate":{ @@ -1564,7 +1564,7 @@ "members":{ "filters":{ "shape":"FilterList", - "documentation":"

    Filters the list of incident records through which you are searching. You can filter on the following keys:

    • creationTime

    • impact

    • status

    • createdBy

    Note the following when deciding how to use Filters:

    • If you don't specify a Filter, the response includes all incident records.

    • If you specify more than one filter in a single request, the response returns incident records that match all filters.

    • If you specify a filter with more than one value, the response returns incident records that match any of the values provided.

    " + "documentation":"

    Filters the list of incident records you want to search through. You can filter on the following keys:

    • creationTime

    • impact

    • status

    • createdBy

    Note the following when when you use Filters:

    • If you don't specify a Filter, the response includes all incident records.

    • If you specify more than one filter in a single request, the response returns incident records that match all filters.

    • If you specify a filter with more than one value, the response returns incident records that match any of the values provided.

    " }, "maxResults":{ "shape":"MaxResults", @@ -1704,7 +1704,7 @@ "members":{ "filters":{ "shape":"FilterList", - "documentation":"

    Filters the timeline events based on the provided conditional values. You can filter timeline events using the following keys:

    • eventTime

    • eventType

    Note the following when deciding how to use Filters:

    • If you don't specify a Filter, the response includes all timeline events.

    • If you specify more than one filter in a single request, the response returns timeline events that match all filters.

    • If you specify a filter with more than one value, the response returns timeline events that match any of the values provided.

    " + "documentation":"

    Filters the timeline events based on the provided conditional values. You can filter timeline events with the following keys:

    • eventTime

    • eventType

    Note the following when deciding how to use Filters:

    • If you don't specify a Filter, the response includes all timeline events.

    • If you specify more than one filter in a single request, the response returns timeline events that match all filters.

    • If you specify a filter with more than one value, the response returns timeline events that match any of the values provided.

    " }, "incidentRecordArn":{ "shape":"Arn", @@ -1720,7 +1720,7 @@ }, "sortBy":{ "shape":"TimelineEventSort", - "documentation":"

    Sort by the specified key value pair.

    " + "documentation":"

    Sort timeline events by the specified key value pair.

    " }, "sortOrder":{ "shape":"SortOrder", @@ -1892,7 +1892,7 @@ }, "RawData":{ "type":"string", - "max":4000, + "max":10000, "min":0 }, "RegionInfo":{ @@ -2321,7 +2321,7 @@ }, "relatedItems":{ "shape":"RelatedItemList", - "documentation":"

    Add related items to the incident for other responders to use. Related items are AWS resources, external links, or files uploaded to an Amazon S3 bucket.

    " + "documentation":"

    Add related items to the incident for other responders to use. Related items are Amazon Web Services resources, external links, or files uploaded to an Amazon S3 bucket.

    " }, "responsePlanArn":{ "shape":"Arn", @@ -2590,20 +2590,20 @@ }, "clientToken":{ "shape":"ClientToken", - "documentation":"

    A token that ensures that the operation is called only once with the specified details.

    ", + "documentation":"

    A token that ensures that a client calls the operation only once with the specified details.

    ", "idempotencyToken":true }, "impact":{ "shape":"Impact", - "documentation":"

    Defines the impact of the incident to customers and applications. Providing an impact overwrites the impact provided by the response plan.

    Possible impacts:

    • 1 - Critical impact, full application failure that impacts many to all customers.

    • 2 - High impact, partial application failure with impact to many customers.

    • 3 - Medium impact, the application is providing reduced service to customers.

    • 4 - Low impact, customer aren't impacted by the problem yet.

    • 5 - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.

    " + "documentation":"

    Defines the impact of the incident to customers and applications. If you provide an impact for an incident, it overwrites the impact provided by the response plan.

    Possible impacts:

    • 1 - Critical impact, full application failure that impacts many to all customers.

    • 2 - High impact, partial application failure with impact to many customers.

    • 3 - Medium impact, the application is providing reduced service to customers.

    • 4 - Low impact, customer aren't impacted by the problem yet.

    • 5 - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.

    " }, "notificationTargets":{ "shape":"NotificationTargetSet", - "documentation":"

    The Amazon SNS targets that are notified when updates are made to an incident.

    Using multiple SNS topics creates redundancy in the event that a Region is down during the incident.

    " + "documentation":"

    The Amazon SNS targets that Incident Manager notifies when a client updates an incident.

    Using multiple SNS topics creates redundancy in the event that a Region is down during the incident.

    " }, "status":{ "shape":"IncidentRecordStatus", - "documentation":"

    The status of the incident. An incident can be Open or Resolved.

    " + "documentation":"

    The status of the incident. Possible statuses are Open or Resolved.

    " }, "summary":{ "shape":"IncidentSummary", @@ -2629,16 +2629,16 @@ "members":{ "clientToken":{ "shape":"ClientToken", - "documentation":"

    A token ensuring that the operation is called only once with the specified details.

    ", + "documentation":"

    A token that ensures that a client calls the operation only once with the specified details.

    ", "idempotencyToken":true }, "incidentRecordArn":{ "shape":"Arn", - "documentation":"

    The Amazon Resource Name (ARN) of the incident record containing the related items you are updating.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the incident record that contains the related items that you update.

    " }, "relatedItemsUpdate":{ "shape":"RelatedItemsUpdate", - "documentation":"

    Details about the item you are adding or deleting.

    " + "documentation":"

    Details about the item that you are add to, or delete from, an incident.

    " } } }, @@ -2768,7 +2768,7 @@ "members":{ "clientToken":{ "shape":"ClientToken", - "documentation":"

    A token ensuring that the operation is called only once with the specified details.

    ", + "documentation":"

    A token that ensures that a client calls the operation only once with the specified details.

    ", "idempotencyToken":true }, "eventData":{ @@ -2777,11 +2777,11 @@ }, "eventId":{ "shape":"UUID", - "documentation":"

    The ID of the event you are updating. You can find this by using ListTimelineEvents.

    " + "documentation":"

    The ID of the event to update. You can use ListTimelineEvents to find an event's ID.

    " }, "eventReferences":{ "shape":"EventReferenceList", - "documentation":"

    Updates all existing references in a TimelineEvent. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.

    This update action overrides all existing references. If you want to keep existing references, you must specify them in the call. If you don't, this action removes them and enters only new references.

    " + "documentation":"

    Updates all existing references in a TimelineEvent. A reference is an Amazon Web Services resource involved or associated with the incident. To specify a reference, enter its Amazon Resource Name (ARN). You can also specify a related item associated with that resource. For example, to specify an Amazon DynamoDB (DynamoDB) table as a resource, use its ARN. You can also specify an Amazon CloudWatch metric associated with the DynamoDB table as a related item.

    This update action overrides all existing references. If you want to keep existing references, you must specify them in the call. If you don't, this action removes any existing references and enters only new references.

    " }, "eventTime":{ "shape":"Timestamp", @@ -2789,7 +2789,7 @@ }, "eventType":{ "shape":"TimelineEventType", - "documentation":"

    The type of the event. You can update events of type Custom Event.

    " + "documentation":"

    The type of event. You can update events of type Custom Event.

    " }, "incidentRecordArn":{ "shape":"Arn", diff --git a/services/ssmsap/pom.xml b/services/ssmsap/pom.xml index fa68deb1be1e..14cad7245521 100644 --- a/services/ssmsap/pom.xml +++ b/services/ssmsap/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ssmsap AWS Java SDK :: Services :: Ssm Sap diff --git a/services/sso/pom.xml b/services/sso/pom.xml index 8adc9a21d841..71de12031cde 100644 --- a/services/sso/pom.xml +++ b/services/sso/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sso AWS Java SDK :: Services :: SSO diff --git a/services/ssoadmin/pom.xml b/services/ssoadmin/pom.xml index 89d3311fc4a0..c192962970c5 100644 --- a/services/ssoadmin/pom.xml +++ b/services/ssoadmin/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ssoadmin AWS Java SDK :: Services :: SSO Admin diff --git a/services/ssooidc/pom.xml b/services/ssooidc/pom.xml index acf30848fea1..e328e7b6a4be 100644 --- a/services/ssooidc/pom.xml +++ b/services/ssooidc/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ssooidc AWS Java SDK :: Services :: SSO OIDC diff --git a/services/storagegateway/pom.xml b/services/storagegateway/pom.xml index 4f1e0b52aba2..943be395021c 100644 --- a/services/storagegateway/pom.xml +++ b/services/storagegateway/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT storagegateway AWS Java SDK :: Services :: AWS Storage Gateway diff --git a/services/sts/pom.xml b/services/sts/pom.xml index cc99327639a3..5bae9be8eb63 100644 --- a/services/sts/pom.xml +++ b/services/sts/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT sts AWS Java SDK :: Services :: AWS STS diff --git a/services/support/pom.xml b/services/support/pom.xml index 26f8cccc7ade..f89345067f24 100644 --- a/services/support/pom.xml +++ b/services/support/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT support AWS Java SDK :: Services :: AWS Support diff --git a/services/supportapp/pom.xml b/services/supportapp/pom.xml index 2c11e7e5cacd..f456177eae55 100644 --- a/services/supportapp/pom.xml +++ b/services/supportapp/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT supportapp AWS Java SDK :: Services :: Support App diff --git a/services/swf/pom.xml b/services/swf/pom.xml index 602ad82a26ed..33457d0873d3 100644 --- a/services/swf/pom.xml +++ b/services/swf/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT swf AWS Java SDK :: Services :: Amazon SWF diff --git a/services/synthetics/pom.xml b/services/synthetics/pom.xml index efd486693b2a..eea93ca0f111 100644 --- a/services/synthetics/pom.xml +++ b/services/synthetics/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT synthetics AWS Java SDK :: Services :: Synthetics diff --git a/services/textract/pom.xml b/services/textract/pom.xml index e22661c60641..851e894d8574 100644 --- a/services/textract/pom.xml +++ b/services/textract/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT textract AWS Java SDK :: Services :: Textract diff --git a/services/textract/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/textract/src/main/resources/codegen-resources/endpoint-rule-set.json index 8a897a503514..cf0040e78ad0 100644 --- a/services/textract/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/textract/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://textract-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://textract-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://textract.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://textract.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://textract.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/textract/src/main/resources/codegen-resources/endpoint-tests.json b/services/textract/src/main/resources/codegen-resources/endpoint-tests.json index 87bf32c01ad3..a711008edd05 100644 --- a/services/textract/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/textract/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,16 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.ap-south-1.api.aws" - } - }, - "params": { - "Region": "ap-south-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-south-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.ap-south-1.api.aws" + "url": "https://textract.ap-northeast-2.amazonaws.com" } }, "params": { - "Region": "ap-south-1", + "Region": "ap-northeast-2", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { @@ -53,68 +27,42 @@ } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.us-gov-east-1.api.aws" + "url": "https://textract.ap-southeast-1.amazonaws.com" } }, "params": { - "Region": "us-gov-east-1", + "Region": "ap-southeast-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.us-gov-east-1.amazonaws.com" + "url": "https://textract.ap-southeast-2.amazonaws.com" } }, "params": { - "Region": "us-gov-east-1", + "Region": "ap-southeast-2", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.ca-central-1.api.aws" + "url": "https://textract.ca-central-1.amazonaws.com" } }, "params": { "Region": "ca-central-1", - "UseFIPS": true, - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false } }, { @@ -131,120 +79,107 @@ } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.ca-central-1.api.aws" + "url": "https://textract.eu-central-1.amazonaws.com" } }, "params": { - "Region": "ca-central-1", + "Region": "eu-central-1", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.ca-central-1.amazonaws.com" + "url": "https://textract.eu-west-1.amazonaws.com" } }, "params": { - "Region": "ca-central-1", + "Region": "eu-west-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.eu-central-1.api.aws" - } - }, - "params": { - "Region": "eu-central-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.eu-central-1.amazonaws.com" + "url": "https://textract.eu-west-2.amazonaws.com" } }, "params": { - "Region": "eu-central-1", - "UseFIPS": true, + "Region": "eu-west-2", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.eu-central-1.api.aws" + "url": "https://textract.eu-west-3.amazonaws.com" } }, "params": { - "Region": "eu-central-1", + "Region": "eu-west-3", "UseFIPS": false, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.eu-central-1.amazonaws.com" + "url": "https://textract.us-east-1.amazonaws.com" } }, "params": { - "Region": "eu-central-1", + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.us-west-1.api.aws" + "url": "https://textract-fips.us-east-1.amazonaws.com" } }, "params": { - "Region": "us-west-1", + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": true + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.us-west-1.amazonaws.com" + "url": "https://textract.us-east-2.amazonaws.com" } }, "params": { - "Region": "us-west-1", - "UseFIPS": true, + "Region": "us-east-2", + "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.us-west-1.api.aws" + "url": "https://textract-fips.us-east-2.amazonaws.com" } }, "params": { - "Region": "us-west-1", - "UseFIPS": false, - "UseDualStack": true + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false } }, { @@ -261,44 +196,18 @@ } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.us-west-2.amazonaws.com" + "url": "https://textract-fips.us-west-1.amazonaws.com" } }, "params": { - "Region": "us-west-2", + "Region": "us-west-1", "UseFIPS": true, "UseDualStack": false } }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.us-west-2.api.aws" - } - }, - "params": { - "Region": "us-west-2", - "UseFIPS": false, - "UseDualStack": true - } - }, { "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { @@ -313,252 +222,122 @@ } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.eu-west-3.amazonaws.com" + "url": "https://textract-fips.us-west-2.amazonaws.com" } }, "params": { - "Region": "eu-west-3", + "Region": "us-west-2", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.eu-west-3.api.aws" - } - }, - "params": { - "Region": "eu-west-3", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract.eu-west-3.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-3", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://textract-fips.eu-west-2.api.aws" + "url": "https://textract-fips.us-east-1.api.aws" } }, "params": { - "Region": "eu-west-2", + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-2", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://textract.eu-west-2.api.aws" + "url": "https://textract.us-east-1.api.aws" } }, "params": { - "Region": "eu-west-2", + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract.eu-west-2.amazonaws.com" - } - }, - "params": { - "Region": "eu-west-2", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://textract-fips.eu-west-1.api.aws" + "url": "https://textract-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "eu-west-1", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.eu-west-1.amazonaws.com" + "url": "https://textract-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "eu-west-1", + "Region": "cn-north-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://textract.eu-west-1.api.aws" + "url": "https://textract.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "Region": "eu-west-1", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.eu-west-1.amazonaws.com" + "url": "https://textract.cn-north-1.amazonaws.com.cn" } }, "params": { - "Region": "eu-west-1", + "Region": "cn-north-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.ap-northeast-2.api.aws" - } - }, - "params": { - "Region": "ap-northeast-2", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.ap-northeast-2.amazonaws.com" + "url": "https://textract.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "ap-northeast-2", + "Region": "us-gov-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.us-gov-west-1.amazonaws.com" + "url": "https://textract-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "Region": "us-gov-west-1", + "Region": "us-gov-east-1", "UseFIPS": true, "UseDualStack": false } }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.us-gov-west-1.api.aws" - } - }, - "params": { - "Region": "us-gov-west-1", - "UseFIPS": false, - "UseDualStack": true - } - }, { "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { @@ -573,117 +352,41 @@ } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.ap-southeast-1.amazonaws.com" + "url": "https://textract-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "Region": "ap-southeast-1", + "Region": "us-gov-west-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.ap-southeast-1.api.aws" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "Region": "ap-southeast-1", - "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "Region": "ap-southeast-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://textract-fips.ap-southeast-2.amazonaws.com" + "url": "https://textract-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "ap-southeast-2", + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.ap-southeast-2.api.aws" - } - }, - "params": { - "Region": "ap-southeast-2", - "UseFIPS": false, "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://textract.ap-southeast-2.amazonaws.com" + "url": "https://textract.us-gov-east-1.api.aws" } }, "params": { - "Region": "ap-southeast-2", + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, - "params": { - "Region": "us-iso-east-1", - "UseFIPS": true, "UseDualStack": true } }, @@ -700,17 +403,6 @@ "UseDualStack": false } }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "Region": "us-iso-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, { "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { @@ -725,118 +417,53 @@ } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.us-east-1.api.aws" + "url": "https://textract-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-1", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-east-1", + "Region": "us-isob-east-1", "UseFIPS": true, "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.us-east-1.api.aws" - } - }, - "params": { - "Region": "us-east-1", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://textract.us-east-1.amazonaws.com" + "url": "https://textract.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "Region": "us-east-1", + "Region": "us-isob-east-1", "UseFIPS": false, "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://textract-fips.us-east-2.api.aws" - } - }, - "params": { - "Region": "us-east-2", - "UseFIPS": true, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "Region": "us-east-2", - "UseFIPS": true, - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://textract.us-east-2.api.aws" - } - }, - "params": { - "Region": "us-east-2", - "UseFIPS": false, - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://textract.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { - "Region": "us-east-2", + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false + "UseDualStack": false, + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, "Endpoint": "https://example.com" diff --git a/services/textract/src/main/resources/codegen-resources/service-2.json b/services/textract/src/main/resources/codegen-resources/service-2.json index 424cb8084088..415e7ababc66 100644 --- a/services/textract/src/main/resources/codegen-resources/service-2.json +++ b/services/textract/src/main/resources/codegen-resources/service-2.json @@ -74,7 +74,7 @@ {"shape":"InternalServerError"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Analyzes identity documents for relevant information. This information is extracted and returned as IdentityDocumentFields, which records both the normalized field and value of the extracted text.Unlike other Amazon Textract operations, AnalyzeID doesn't return any Geometry data.

    " + "documentation":"

    Analyzes identity documents for relevant information. This information is extracted and returned as IdentityDocumentFields, which records both the normalized field and value of the extracted text. Unlike other Amazon Textract operations, AnalyzeID doesn't return any Geometry data.

    " }, "DetectDocumentText":{ "name":"DetectDocumentText", @@ -420,7 +420,7 @@ "members":{ "BlockType":{ "shape":"BlockType", - "documentation":"

    The type of text item that's recognized. In operations for text detection, the following types are returned:

    • PAGE - Contains a list of the LINE Block objects that are detected on a document page.

    • WORD - A word detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

    • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

    In text analysis operations, the following types are returned:

    • PAGE - Contains a list of child Block objects that are detected on a document page.

    • KEY_VALUE_SET - Stores the KEY and VALUE Block objects for linked text that's detected on a document page. Use the EntityType field to determine if a KEY_VALUE_SET object is a KEY Block object or a VALUE Block object.

    • WORD - A word that's detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

    • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

    • TABLE - A table that's detected on a document page. A table is grid-based information with two or more rows or columns, with a cell span of one row and one column each.

    • CELL - A cell within a detected table. The cell is the parent of the block that contains the text in the cell.

    • SELECTION_ELEMENT - A selection element such as an option button (radio button) or a check box that's detected on a document page. Use the value of SelectionStatus to determine the status of the selection element.

    • SIGNATURE - The location and confidene score of a signature detected on a document page. Can be returned as part of a Key-Value pair or a detected cell.

    • QUERY - A question asked during the call of AnalyzeDocument. Contains an alias and an ID that attaches it to its answer.

    • QUERY_RESULT - A response to a question asked during the call of analyze document. Comes with an alias and ID for ease of locating in a response. Also contains location and confidence score.

    " + "documentation":"

    The type of text item that's recognized. In operations for text detection, the following types are returned:

    • PAGE - Contains a list of the LINE Block objects that are detected on a document page.

    • WORD - A word detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

    • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

    In text analysis operations, the following types are returned:

    • PAGE - Contains a list of child Block objects that are detected on a document page.

    • KEY_VALUE_SET - Stores the KEY and VALUE Block objects for linked text that's detected on a document page. Use the EntityType field to determine if a KEY_VALUE_SET object is a KEY Block object or a VALUE Block object.

    • WORD - A word that's detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

    • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

    • TABLE - A table that's detected on a document page. A table is grid-based information with two or more rows or columns, with a cell span of one row and one column each.

    • TABLE_TITLE - The title of a table. A title is typically a line of text above or below a table, or embedded as the first row of a table.

    • TABLE_FOOTER - The footer associated with a table. A footer is typically a line or lines of text below a table or embedded as the last row of a table.

    • CELL - A cell within a detected table. The cell is the parent of the block that contains the text in the cell.

    • MERGED_CELL - A cell in a table whose content spans more than one row or column. The Relationships array for this cell contain data from individual cells.

    • SELECTION_ELEMENT - A selection element such as an option button (radio button) or a check box that's detected on a document page. Use the value of SelectionStatus to determine the status of the selection element.

    • SIGNATURE - The location and confidene score of a signature detected on a document page. Can be returned as part of a Key-Value pair or a detected cell.

    • QUERY - A question asked during the call of AnalyzeDocument. Contains an alias and an ID that attaches it to its answer.

    • QUERY_RESULT - A response to a question asked during the call of analyze document. Comes with an alias and ID for ease of locating in a response. Also contains location and confidence score.

    " }, "Confidence":{ "shape":"Percent", @@ -444,11 +444,11 @@ }, "RowSpan":{ "shape":"UInteger", - "documentation":"

    The number of rows that a table cell spans. Currently this value is always 1, even if the number of rows spanned is greater than 1. RowSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

    " + "documentation":"

    The number of rows that a table cell spans. RowSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

    " }, "ColumnSpan":{ "shape":"UInteger", - "documentation":"

    The number of columns that a table cell spans. Currently this value is always 1, even if the number of columns spanned is greater than 1. ColumnSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

    " + "documentation":"

    The number of columns that a table cell spans. ColumnSpan isn't returned by DetectDocumentText and GetDocumentTextDetection.

    " }, "Geometry":{ "shape":"Geometry", @@ -460,11 +460,11 @@ }, "Relationships":{ "shape":"RelationshipList", - "documentation":"

    A list of child blocks of the current block. For example, a LINE object has child blocks for each WORD block that's part of the line of text. There aren't Relationship objects in the list for relationships that don't exist, such as when the current block has no child blocks. The list size can be the following:

    • 0 - The block has no child blocks.

    • 1 - The block has child blocks.

    " + "documentation":"

    A list of relationship objects that describe how blocks are related to each other. For example, a LINE block object contains a CHILD relationship type with the WORD blocks that make up the line of text. There aren't Relationship objects in the list for relationships that don't exist, such as when the current block has no child blocks.

    " }, "EntityTypes":{ "shape":"EntityTypes", - "documentation":"

    The type of entity. The following can be returned:

    • KEY - An identifier for a field on the document.

    • VALUE - The field text.

    EntityTypes isn't returned by DetectDocumentText and GetDocumentTextDetection.

    " + "documentation":"

    The type of entity.

    The following entity types can be returned by FORMS analysis:

    • KEY - An identifier for a field on the document.

    • VALUE - The field text.

    The following entity types can be returned by TABLES analysis:

    • COLUMN_HEADER - Identifies a cell that is a header of a column.

    • TABLE_TITLE - Identifies a cell that is a title within the table.

    • TABLE_SECTION_TITLE - Identifies a cell that is a title of a section within a table. A section title is a cell that typically spans an entire row above a section.

    • TABLE_FOOTER - Identifies a cell that is a footer of a table.

    • TABLE_SUMMARY - Identifies a summary cell of a table. A summary cell can be a row of a table or an additional, smaller table that contains summary information for another table.

    • STRUCTURED_TABLE - Identifies a table with column headers where the content of each row corresponds to the headers.

    • SEMI_STRUCTURED_TABLE - Identifies a non-structured table.

    EntityTypes isn't returned by DetectDocumentText and GetDocumentTextDetection.

    " }, "SelectionStatus":{ "shape":"SelectionStatus", @@ -472,7 +472,7 @@ }, "Page":{ "shape":"UInteger", - "documentation":"

    The page on which a block was detected. Page is returned by synchronous and asynchronous operations. Page values greater than 1 are only returned for multipage documents that are in PDF or TIFF format. A scanned image (JPEG/PNG) provided to an asynchronous operation, even if it contains multiple document pages, is considered a single-page document. This means that for scanned images the value of Page is always 1. Synchronous operations operations will also return a Page value of 1 because every input document is considered to be a single-page document.

    " + "documentation":"

    The page on which a block was detected. Page is returned by synchronous and asynchronous operations. Page values greater than 1 are only returned for multipage documents that are in PDF or TIFF format. A scanned image (JPEG/PNG) provided to an asynchronous operation, even if it contains multiple document pages, is considered a single-page document. This means that for scanned images the value of Page is always 1. Synchronous operations will also return a Page value of 1 because every input document is considered to be a single-page document.

    " }, "Query":{ "shape":"Query", @@ -499,7 +499,9 @@ "TITLE", "QUERY", "QUERY_RESULT", - "SIGNATURE" + "SIGNATURE", + "TABLE_TITLE", + "TABLE_FOOTER" ] }, "BoundingBox":{ @@ -602,7 +604,7 @@ "members":{ "Type":{ "shape":"NonEmptyString", - "documentation":"

    The type of document that Amazon Textract has detected. See LINK for a list of all types returned by Textract.

    " + "documentation":"

    The type of document that Amazon Textract has detected. See Analyze Lending Response Objects for a list of all types returned by Textract.

    " }, "SplitDocuments":{ "shape":"SplitDocumentList", @@ -661,7 +663,13 @@ "enum":[ "KEY", "VALUE", - "COLUMN_HEADER" + "COLUMN_HEADER", + "TABLE_TITLE", + "TABLE_FOOTER", + "TABLE_SECTION_TITLE", + "TABLE_SUMMARY", + "STRUCTURED_TABLE", + "SEMI_STRUCTURED_TABLE" ] }, "EntityTypes":{ @@ -1601,7 +1609,7 @@ "members":{ "Type":{ "shape":"RelationshipType", - "documentation":"

    The type of relationship that the blocks in the IDs array have with the current block. The relationship can be VALUE or CHILD. A relationship of type VALUE is a list that contains the ID of the VALUE block that's associated with the KEY of a key-value pair. A relationship of type CHILD is a list of IDs that identify WORD blocks in the case of lines Cell blocks in the case of Tables, and WORD blocks in the case of Selection Elements.

    " + "documentation":"

    The type of relationship between the blocks in the IDs array and the current block. The following list describes the relationship types that can be returned.

    • VALUE - A list that contains the ID of the VALUE block that's associated with the KEY of a key-value pair.

    • CHILD - A list of IDs that identify blocks found within the current block object. For example, WORD blocks have a CHILD relationship to the LINE block type.

    • MERGED_CELL - A list of IDs that identify each of the MERGED_CELL block types in a table.

    • ANSWER - A list that contains the ID of the QUERY_RESULT block that’s associated with the corresponding QUERY block.

    • TABLE - A list of IDs that identify associated TABLE block types.

    • TABLE_TITLE - A list that contains the ID for the TABLE_TITLE block type in a table.

    • TABLE_FOOTER - A list of IDs that identify the TABLE_FOOTER block types in a table.

    " }, "Ids":{ "shape":"IdList", @@ -1622,7 +1630,10 @@ "COMPLEX_FEATURES", "MERGED_CELL", "TITLE", - "ANSWER" + "ANSWER", + "TABLE", + "TABLE_TITLE", + "TABLE_FOOTER" ] }, "RoleArn":{ diff --git a/services/timestreamquery/pom.xml b/services/timestreamquery/pom.xml index a7a18a281932..9a9d12bed796 100644 --- a/services/timestreamquery/pom.xml +++ b/services/timestreamquery/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT timestreamquery AWS Java SDK :: Services :: Timestream Query diff --git a/services/timestreamwrite/pom.xml b/services/timestreamwrite/pom.xml index 416ba97dd78f..2b9ff6904fc5 100644 --- a/services/timestreamwrite/pom.xml +++ b/services/timestreamwrite/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT timestreamwrite AWS Java SDK :: Services :: Timestream Write diff --git a/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-rule-set.json index 303ad20c6472..77212ec373e1 100644 --- a/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,168 +111,238 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ingest.timestream-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://ingest.timestream-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], - "endpoint": { - "url": "https://ingest.timestream.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://ingest.timestream.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-tests.json b/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-tests.json index 91c92af29cd0..21efa51ffd86 100644 --- a/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/timestreamwrite/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,7 +1,215 @@ { "testCases": [ { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ingest.timestream.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -9,7 +217,20 @@ }, "params": { "UseDualStack": false, + "UseFIPS": false, "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, "UseFIPS": false, "Endpoint": "https://example.com" } @@ -21,8 +242,8 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -33,8 +254,8 @@ }, "params": { "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/timestreamwrite/src/main/resources/codegen-resources/paginators-1.json b/services/timestreamwrite/src/main/resources/codegen-resources/paginators-1.json index 45728c71e593..c6aa1b7a7a05 100644 --- a/services/timestreamwrite/src/main/resources/codegen-resources/paginators-1.json +++ b/services/timestreamwrite/src/main/resources/codegen-resources/paginators-1.json @@ -1,5 +1,10 @@ { "pagination": { + "ListBatchLoadTasks": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListDatabases": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/timestreamwrite/src/main/resources/codegen-resources/service-2.json b/services/timestreamwrite/src/main/resources/codegen-resources/service-2.json index 64a6866b423f..86bfc0adae31 100644 --- a/services/timestreamwrite/src/main/resources/codegen-resources/service-2.json +++ b/services/timestreamwrite/src/main/resources/codegen-resources/service-2.json @@ -14,6 +14,27 @@ "uid":"timestream-write-2018-11-01" }, "operations":{ + "CreateBatchLoadTask":{ + "name":"CreateBatchLoadTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateBatchLoadTaskRequest"}, + "output":{"shape":"CreateBatchLoadTaskResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InvalidEndpointException"} + ], + "documentation":"

    Creates a new Timestream batch load task. A batch load task processes data from a CSV source in an S3 location and writes to a Timestream table. A mapping from source to target is defined in a batch load task. Errors and events are written to a report at an S3 location. For the report, if the KMS key is not specified, the batch load task will be encrypted with a Timestream managed KMS key located in your account. For more information, see Amazon Web Services managed keys. Service quotas apply. For details, see code sample.

    ", + "endpointdiscovery":{"required":true} + }, "CreateDatabase":{ "name":"CreateDatabase", "http":{ @@ -32,7 +53,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    Creates a new Timestream database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. Refer to Amazon Web Services managed KMS keys for more info. Service quotas apply. See code sample for details.

    ", + "documentation":"

    Creates a new Timestream database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. For more information, see Amazon Web Services managed keys. Service quotas apply. For details, see code sample.

    ", "endpointdiscovery":{"required":true} }, "CreateTable":{ @@ -54,7 +75,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    The CreateTable operation adds a new table to an existing database in your account. In an Amazon Web Services account, table names must be at least unique within each Region if they are in the same database. You may have identical table names in the same Region if the tables are in separate databases. While creating the table, you must specify the table name, database name, and the retention properties. Service quotas apply. See code sample for details.

    ", + "documentation":"

    Adds a new table to an existing database in your account. In an Amazon Web Services account, table names must be at least unique within each Region if they are in the same database. You might have identical table names in the same Region if the tables are in separate databases. While creating the table, you must specify the table name, database name, and the retention properties. Service quotas apply. See code sample for details.

    ", "endpointdiscovery":{"required":true} }, "DeleteDatabase":{ @@ -72,7 +93,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    Deletes a given Timestream database. This is an irreversible operation. After a database is deleted, the time series data from its tables cannot be recovered.

    All tables in the database must be deleted first, or a ValidationException error will be thrown.

    Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. Clients should consider them equivalent.

    See code sample for details.

    ", + "documentation":"

    Deletes a given Timestream database. This is an irreversible operation. After a database is deleted, the time-series data from its tables cannot be recovered.

    All tables in the database must be deleted first, or a ValidationException error will be thrown.

    Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. Clients should consider them equivalent.

    See code sample for details.

    ", "endpointdiscovery":{"required":true} }, "DeleteTable":{ @@ -90,7 +111,25 @@ {"shape":"AccessDeniedException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    Deletes a given Timestream table. This is an irreversible operation. After a Timestream database table is deleted, the time series data stored in the table cannot be recovered.

    Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. Clients should consider them equivalent.

    See code sample for details.

    ", + "documentation":"

    Deletes a given Timestream table. This is an irreversible operation. After a Timestream database table is deleted, the time-series data stored in the table cannot be recovered.

    Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. Clients should consider them equivalent.

    See code sample for details.

    ", + "endpointdiscovery":{"required":true} + }, + "DescribeBatchLoadTask":{ + "name":"DescribeBatchLoadTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBatchLoadTaskRequest"}, + "output":{"shape":"DescribeBatchLoadTaskResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidEndpointException"} + ], + "documentation":"

    Returns information about the batch load task, including configurations, mappings, progress, and other details. Service quotas apply. See code sample for details.

    ", "endpointdiscovery":{"required":true} }, "DescribeDatabase":{ @@ -125,7 +164,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    DescribeEndpoints returns a list of available endpoints to make Timestream API calls against. This API is available through both Write and Query.

    Because the Timestream SDKs are designed to transparently work with the service’s architecture, including the management and mapping of the service endpoints, it is not recommended that you use this API unless:

    For detailed information on how and when to use and implement DescribeEndpoints, see The Endpoint Discovery Pattern.

    ", + "documentation":"

    Returns a list of available endpoints to make Timestream API calls against. This API operation is available through both the Write and Query APIs.

    Because the Timestream SDKs are designed to transparently work with the service’s architecture, including the management and mapping of the service endpoints, we don't recommend that you use this API operation unless:

    For detailed information on how and when to use and implement DescribeEndpoints, see The Endpoint Discovery Pattern.

    ", "endpointoperation":true }, "DescribeTable":{ @@ -147,6 +186,24 @@ "documentation":"

    Returns information about the table, including the table name, database name, retention duration of the memory store and the magnetic store. Service quotas apply. See code sample for details.

    ", "endpointdiscovery":{"required":true} }, + "ListBatchLoadTasks":{ + "name":"ListBatchLoadTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListBatchLoadTasksRequest"}, + "output":{"shape":"ListBatchLoadTasksResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidEndpointException"} + ], + "documentation":"

    Provides a list of batch load tasks, along with the name, status, when the task is resumable until, and other details. See code sample for details.

    ", + "endpointdiscovery":{"required":true} + }, "ListDatabases":{ "name":"ListDatabases", "http":{ @@ -181,7 +238,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    A list of tables, along with the name, status and retention properties of each table. See code sample for details.

    ", + "documentation":"

    Provides a list of tables, along with the name, status, and retention properties of each table. See code sample for details.

    ", "endpointdiscovery":{"required":true} }, "ListTagsForResource":{ @@ -198,7 +255,26 @@ {"shape":"ValidationException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    List all tags on a Timestream resource.

    ", + "documentation":"

    Lists all tags on a Timestream resource.

    ", + "endpointdiscovery":{"required":true} + }, + "ResumeBatchLoadTask":{ + "name":"ResumeBatchLoadTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResumeBatchLoadTaskRequest"}, + "output":{"shape":"ResumeBatchLoadTaskResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidEndpointException"} + ], + "documentation":"

    ", "endpointdiscovery":{"required":true} }, "TagResource":{ @@ -216,7 +292,7 @@ {"shape":"ValidationException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    Associate a set of tags with a Timestream resource. You can then activate these user-defined tags so that they appear on the Billing and Cost Management console for cost allocation tracking.

    ", + "documentation":"

    Associates a set of tags with a Timestream resource. You can then activate these user-defined tags so that they appear on the Billing and Cost Management console for cost allocation tracking.

    ", "endpointdiscovery":{"required":true} }, "UntagResource":{ @@ -293,7 +369,7 @@ {"shape":"RejectedRecordsException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

    The WriteRecords operation enables you to write your time series data into Timestream. You can specify a single data point or a batch of data points to be inserted into the system. Timestream offers you with a flexible schema that auto detects the column names and data types for your Timestream tables based on the dimension names and data types of the data points you specify when invoking writes into the database. Timestream support eventual consistency read semantics. This means that when you query data immediately after writing a batch of data into Timestream, the query results might not reflect the results of a recently completed write operation. The results may also include some stale data. If you repeat the query request after a short time, the results should return the latest data. Service quotas apply.

    See code sample for details.

    Upserts

    You can use the Version parameter in a WriteRecords request to update data points. Timestream tracks a version number with each record. Version defaults to 1 when not specified for the record in the request. Timestream will update an existing record’s measure value along with its Version upon receiving a write request with a higher Version number for that record. Upon receiving an update request where the measure value is the same as that of the existing record, Timestream still updates Version, if it is greater than the existing value of Version. You can update a data point as many times as desired, as long as the value of Version continuously increases.

    For example, suppose you write a new record without indicating Version in the request. Timestream will store this record, and set Version to 1. Now, suppose you try to update this record with a WriteRecords request of the same record with a different measure value but, like before, do not provide Version. In this case, Timestream will reject this update with a RejectedRecordsException since the updated record’s version is not greater than the existing value of Version. However, if you were to resend the update request with Version set to 2, Timestream would then succeed in updating the record’s value, and the Version would be set to 2. Next, suppose you sent a WriteRecords request with this same record and an identical measure value, but with Version set to 3. In this case, Timestream would only update Version to 3. Any further updates would need to send a version number greater than 3, or the update requests would receive a RejectedRecordsException.

    ", + "documentation":"

    Enables you to write your time-series data into Timestream. You can specify a single data point or a batch of data points to be inserted into the system. Timestream offers you a flexible schema that auto detects the column names and data types for your Timestream tables based on the dimension names and data types of the data points you specify when invoking writes into the database.

    Timestream supports eventual consistency read semantics. This means that when you query data immediately after writing a batch of data into Timestream, the query results might not reflect the results of a recently completed write operation. The results may also include some stale data. If you repeat the query request after a short time, the results should return the latest data. Service quotas apply.

    See code sample for details.

    Upserts

    You can use the Version parameter in a WriteRecords request to update data points. Timestream tracks a version number with each record. Version defaults to 1 when it's not specified for the record in the request. Timestream updates an existing record’s measure value along with its Version when it receives a write request with a higher Version number for that record. When it receives an update request where the measure value is the same as that of the existing record, Timestream still updates Version, if it is greater than the existing value of Version. You can update a data point as many times as desired, as long as the value of Version continuously increases.

    For example, suppose you write a new record without indicating Version in the request. Timestream stores this record, and set Version to 1. Now, suppose you try to update this record with a WriteRecords request of the same record with a different measure value but, like before, do not provide Version. In this case, Timestream will reject this update with a RejectedRecordsException since the updated record’s version is not greater than the existing value of Version.

    However, if you were to resend the update request with Version set to 2, Timestream would then succeed in updating the record’s value, and the Version would be set to 2. Next, suppose you sent a WriteRecords request with this same record and an identical measure value, but with Version set to 3. In this case, Timestream would only update Version to 3. Any further updates would need to send a version number greater than 3, or the update requests would receive a RejectedRecordsException.

    ", "endpointdiscovery":{"required":true} } }, @@ -312,7 +388,160 @@ "max":1011, "min":1 }, + "BatchLoadDataFormat":{ + "type":"string", + "enum":["CSV"] + }, + "BatchLoadProgressReport":{ + "type":"structure", + "members":{ + "RecordsProcessed":{ + "shape":"Long", + "documentation":"

    " + }, + "RecordsIngested":{ + "shape":"Long", + "documentation":"

    " + }, + "ParseFailures":{ + "shape":"Long", + "documentation":"

    " + }, + "RecordIngestionFailures":{ + "shape":"Long", + "documentation":"

    " + }, + "FileFailures":{ + "shape":"Long", + "documentation":"

    " + }, + "BytesMetered":{ + "shape":"Long", + "documentation":"

    " + } + }, + "documentation":"

    Details about the progress of a batch load task.

    " + }, + "BatchLoadStatus":{ + "type":"string", + "enum":[ + "CREATED", + "IN_PROGRESS", + "FAILED", + "SUCCEEDED", + "PROGRESS_STOPPED", + "PENDING_RESUME" + ] + }, + "BatchLoadTask":{ + "type":"structure", + "members":{ + "TaskId":{ + "shape":"BatchLoadTaskId", + "documentation":"

    The ID of the batch load task.

    " + }, + "TaskStatus":{ + "shape":"BatchLoadStatus", + "documentation":"

    Status of the batch load task.

    " + }, + "DatabaseName":{ + "shape":"ResourceName", + "documentation":"

    Database name for the database into which a batch load task loads data.

    " + }, + "TableName":{ + "shape":"ResourceName", + "documentation":"

    Table name for the table into which a batch load task loads data.

    " + }, + "CreationTime":{ + "shape":"Date", + "documentation":"

    The time when the Timestream batch load task was created.

    " + }, + "LastUpdatedTime":{ + "shape":"Date", + "documentation":"

    The time when the Timestream batch load task was last updated.

    " + }, + "ResumableUntil":{ + "shape":"Date", + "documentation":"

    " + } + }, + "documentation":"

    Details about a batch load task.

    " + }, + "BatchLoadTaskDescription":{ + "type":"structure", + "members":{ + "TaskId":{ + "shape":"BatchLoadTaskId", + "documentation":"

    The ID of the batch load task.

    " + }, + "ErrorMessage":{ + "shape":"StringValue2048", + "documentation":"

    " + }, + "DataSourceConfiguration":{ + "shape":"DataSourceConfiguration", + "documentation":"

    Configuration details about the data source for a batch load task.

    " + }, + "ProgressReport":{ + "shape":"BatchLoadProgressReport", + "documentation":"

    " + }, + "ReportConfiguration":{ + "shape":"ReportConfiguration", + "documentation":"

    Report configuration for a batch load task. This contains details about where error reports are stored.

    " + }, + "DataModelConfiguration":{ + "shape":"DataModelConfiguration", + "documentation":"

    Data model configuration for a batch load task. This contains details about where a data model for a batch load task is stored.

    " + }, + "TargetDatabaseName":{ + "shape":"ResourceName", + "documentation":"

    " + }, + "TargetTableName":{ + "shape":"ResourceName", + "documentation":"

    " + }, + "TaskStatus":{ + "shape":"BatchLoadStatus", + "documentation":"

    Status of the batch load task.

    " + }, + "RecordVersion":{ + "shape":"RecordVersion", + "documentation":"

    " + }, + "CreationTime":{ + "shape":"Date", + "documentation":"

    The time when the Timestream batch load task was created.

    " + }, + "LastUpdatedTime":{ + "shape":"Date", + "documentation":"

    The time when the Timestream batch load task was last updated.

    " + }, + "ResumableUntil":{ + "shape":"Date", + "documentation":"

    " + } + }, + "documentation":"

    Details about a batch load task.

    " + }, + "BatchLoadTaskId":{ + "type":"string", + "max":32, + "min":3, + "pattern":"[A-Z0-9]+" + }, + "BatchLoadTaskList":{ + "type":"list", + "member":{"shape":"BatchLoadTask"} + }, "Boolean":{"type":"boolean"}, + "ClientRequestToken":{ + "type":"string", + "max":64, + "min":1, + "sensitive":true + }, "ConflictException":{ "type":"structure", "required":["Message"], @@ -322,6 +551,51 @@ "documentation":"

    Timestream was unable to process this request because it contains resource that already exists.

    ", "exception":true }, + "CreateBatchLoadTaskRequest":{ + "type":"structure", + "required":[ + "DataSourceConfiguration", + "ReportConfiguration", + "TargetDatabaseName", + "TargetTableName" + ], + "members":{ + "ClientToken":{ + "shape":"ClientRequestToken", + "documentation":"

    ", + "idempotencyToken":true + }, + "DataModelConfiguration":{"shape":"DataModelConfiguration"}, + "DataSourceConfiguration":{ + "shape":"DataSourceConfiguration", + "documentation":"

    Defines configuration details about the data source for a batch load task.

    " + }, + "ReportConfiguration":{"shape":"ReportConfiguration"}, + "TargetDatabaseName":{ + "shape":"ResourceCreateAPIName", + "documentation":"

    Target Timestream database for a batch load task.

    " + }, + "TargetTableName":{ + "shape":"ResourceCreateAPIName", + "documentation":"

    Target Timestream table for a batch load task.

    " + }, + "RecordVersion":{ + "shape":"RecordVersion", + "documentation":"

    ", + "box":true + } + } + }, + "CreateBatchLoadTaskResponse":{ + "type":"structure", + "required":["TaskId"], + "members":{ + "TaskId":{ + "shape":"BatchLoadTaskId", + "documentation":"

    The ID of the batch load task.

    " + } + } + }, "CreateDatabaseRequest":{ "type":"structure", "required":["DatabaseName"], @@ -332,7 +606,7 @@ }, "KmsKeyId":{ "shape":"StringValue2048", - "documentation":"

    The KMS key for the database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. Refer to Amazon Web Services managed KMS keys for more info.

    " + "documentation":"

    The KMS key for the database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. For more information, see Amazon Web Services managed keys.

    " }, "Tags":{ "shape":"TagList", @@ -366,7 +640,7 @@ }, "RetentionProperties":{ "shape":"RetentionProperties", - "documentation":"

    The duration for which your time series data must be stored in the memory store and the magnetic store.

    " + "documentation":"

    The duration for which your time-series data must be stored in the memory store and the magnetic store.

    " }, "Tags":{ "shape":"TagList", @@ -387,6 +661,125 @@ } } }, + "CsvConfiguration":{ + "type":"structure", + "members":{ + "ColumnSeparator":{ + "shape":"StringValue1", + "documentation":"

    Column separator can be one of comma (','), pipe ('|), semicolon (';'), tab('/t'), or blank space (' ').

    " + }, + "EscapeChar":{ + "shape":"StringValue1", + "documentation":"

    Escape character can be one of

    " + }, + "QuoteChar":{ + "shape":"StringValue1", + "documentation":"

    Can be single quote (') or double quote (\").

    " + }, + "NullValue":{ + "shape":"StringValue256", + "documentation":"

    Can be blank space (' ').

    " + }, + "TrimWhiteSpace":{ + "shape":"Boolean", + "documentation":"

    Specifies to trim leading and trailing white space.

    " + } + }, + "documentation":"

    A delimited data format where the column separator can be a comma and the record separator is a newline character.

    " + }, + "DataModel":{ + "type":"structure", + "required":["DimensionMappings"], + "members":{ + "TimeColumn":{ + "shape":"StringValue256", + "documentation":"

    Source column to be mapped to time.

    " + }, + "TimeUnit":{ + "shape":"TimeUnit", + "documentation":"

    The granularity of the timestamp unit. It indicates if the time value is in seconds, milliseconds, nanoseconds, or other supported values. Default is MILLISECONDS.

    " + }, + "DimensionMappings":{ + "shape":"DimensionMappings", + "documentation":"

    Source to target mappings for dimensions.

    " + }, + "MultiMeasureMappings":{ + "shape":"MultiMeasureMappings", + "documentation":"

    Source to target mappings for multi-measure records.

    " + }, + "MixedMeasureMappings":{ + "shape":"MixedMeasureMappingList", + "documentation":"

    Source to target mappings for measures.

    " + }, + "MeasureNameColumn":{ + "shape":"StringValue256", + "documentation":"

    " + } + }, + "documentation":"

    Data model for a batch load task.

    " + }, + "DataModelConfiguration":{ + "type":"structure", + "members":{ + "DataModel":{ + "shape":"DataModel", + "documentation":"

    " + }, + "DataModelS3Configuration":{ + "shape":"DataModelS3Configuration", + "documentation":"

    " + } + }, + "documentation":"

    " + }, + "DataModelS3Configuration":{ + "type":"structure", + "members":{ + "BucketName":{ + "shape":"S3BucketName", + "documentation":"

    " + }, + "ObjectKey":{ + "shape":"S3ObjectKey", + "documentation":"

    " + } + }, + "documentation":"

    " + }, + "DataSourceConfiguration":{ + "type":"structure", + "required":[ + "DataSourceS3Configuration", + "DataFormat" + ], + "members":{ + "DataSourceS3Configuration":{ + "shape":"DataSourceS3Configuration", + "documentation":"

    Configuration of an S3 location for a file which contains data to load.

    " + }, + "CsvConfiguration":{"shape":"CsvConfiguration"}, + "DataFormat":{ + "shape":"BatchLoadDataFormat", + "documentation":"

    This is currently CSV.

    " + } + }, + "documentation":"

    Defines configuration details about the data source.

    " + }, + "DataSourceS3Configuration":{ + "type":"structure", + "required":["BucketName"], + "members":{ + "BucketName":{ + "shape":"S3BucketName", + "documentation":"

    The bucket name of the customer S3 bucket.

    " + }, + "ObjectKeyPrefix":{ + "shape":"S3ObjectKey", + "documentation":"

    " + } + }, + "documentation":"

    " + }, "Database":{ "type":"structure", "members":{ @@ -415,7 +808,7 @@ "documentation":"

    The last time that this database was updated.

    " } }, - "documentation":"

    A top level container for a table. Databases and tables are the fundamental management concepts in Amazon Timestream. All tables in a database are encrypted with the same KMS key.

    " + "documentation":"

    A top-level container for a table. Databases and tables are the fundamental management concepts in Amazon Timestream. All tables in a database are encrypted with the same KMS key.

    " }, "DatabaseList":{ "type":"list", @@ -449,6 +842,26 @@ } } }, + "DescribeBatchLoadTaskRequest":{ + "type":"structure", + "required":["TaskId"], + "members":{ + "TaskId":{ + "shape":"BatchLoadTaskId", + "documentation":"

    The ID of the batch load task.

    " + } + } + }, + "DescribeBatchLoadTaskResponse":{ + "type":"structure", + "required":["BatchLoadTaskDescription"], + "members":{ + "BatchLoadTaskDescription":{ + "shape":"BatchLoadTaskDescription", + "documentation":"

    Description of the batch load task.

    " + } + } + }, "DescribeDatabaseRequest":{ "type":"structure", "required":["DatabaseName"], @@ -518,7 +931,7 @@ "members":{ "Name":{ "shape":"SchemaName", - "documentation":"

    Dimension represents the meta data attributes of the time series. For example, the name and availability zone of an EC2 instance or the name of the manufacturer of a wind turbine are dimensions.

    For constraints on Dimension names, see Naming Constraints.

    " + "documentation":"

    Dimension represents the metadata attributes of the time series. For example, the name and Availability Zone of an EC2 instance or the name of the manufacturer of a wind turbine are dimensions.

    For constraints on dimension names, see Naming Constraints.

    " }, "Value":{ "shape":"SchemaValue", @@ -526,10 +939,29 @@ }, "DimensionValueType":{ "shape":"DimensionValueType", - "documentation":"

    The data type of the dimension for the time series data point.

    " + "documentation":"

    The data type of the dimension for the time-series data point.

    " } }, - "documentation":"

    Dimension represents the meta data attributes of the time series. For example, the name and availability zone of an EC2 instance or the name of the manufacturer of a wind turbine are dimensions.

    " + "documentation":"

    Represents the metadata attributes of the time series. For example, the name and Availability Zone of an EC2 instance or the name of the manufacturer of a wind turbine are dimensions.

    " + }, + "DimensionMapping":{ + "type":"structure", + "members":{ + "SourceColumn":{ + "shape":"SchemaName", + "documentation":"

    " + }, + "DestinationColumn":{ + "shape":"SchemaName", + "documentation":"

    " + } + }, + "documentation":"

    " + }, + "DimensionMappings":{ + "type":"list", + "member":{"shape":"DimensionMapping"}, + "min":1 }, "DimensionValueType":{ "type":"string", @@ -556,7 +988,7 @@ "documentation":"

    The TTL for the endpoint, in minutes.

    " } }, - "documentation":"

    Represents an available endpoint against which to make API calls agaisnt, as well as the TTL for that endpoint.

    " + "documentation":"

    Represents an available endpoint against which to make API calls against, as well as the TTL for that endpoint.

    " }, "Endpoints":{ "type":"list", @@ -579,9 +1011,39 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

    The requested endpoint was invalid.

    ", + "documentation":"

    The requested endpoint was not valid.

    ", "exception":true }, + "ListBatchLoadTasksRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

    A token to specify where to start paginating. This is the NextToken from a previously truncated response.

    " + }, + "MaxResults":{ + "shape":"PageLimit", + "documentation":"

    The total number of items to return in the output. If the total number of items available is more than the value specified, a NextToken is provided in the output. To resume pagination, provide the NextToken value as argument of a subsequent API invocation.

    " + }, + "TaskStatus":{ + "shape":"BatchLoadStatus", + "documentation":"

    Status of the batch load task.

    " + } + } + }, + "ListBatchLoadTasksResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

    A token to specify where to start paginating. Provide the next ListBatchLoadTasksRequest.

    " + }, + "BatchLoadTasks":{ + "shape":"BatchLoadTaskList", + "documentation":"

    A list of batch load task details.

    " + } + } + }, "ListDatabasesRequest":{ "type":"structure", "members":{ @@ -698,18 +1160,18 @@ "members":{ "Name":{ "shape":"SchemaName", - "documentation":"

    Name of the MeasureValue.

    For constraints on MeasureValue names, refer to Naming Constraints in the Timestream developer guide.

    " + "documentation":"

    The name of the MeasureValue.

    For constraints on MeasureValue names, see Naming Constraints in the Amazon Timestream Developer Guide.

    " }, "Value":{ "shape":"StringValue2048", - "documentation":"

    Value for the MeasureValue.

    " + "documentation":"

    The value for the MeasureValue.

    " }, "Type":{ "shape":"MeasureValueType", - "documentation":"

    Contains the data type of the MeasureValue for the time series data point.

    " + "documentation":"

    Contains the data type of the MeasureValue for the time-series data point.

    " } }, - "documentation":"

    MeasureValue represents the data attribute of the time series. For example, the CPU utilization of an EC2 instance or the RPM of a wind turbine are measures. MeasureValue has both name and value.

    MeasureValue is only allowed for type MULTI. Using MULTI type, you can pass multiple data attributes associated with the same time series in a single record

    " + "documentation":"

    Represents the data attribute of the time series. For example, the CPU utilization of an EC2 instance or the RPM of a wind turbine are measures. MeasureValue has both name and value.

    MeasureValue is only allowed for type MULTI. Using MULTI type, you can pass multiple data attributes associated with the same time series in a single record

    " }, "MeasureValueType":{ "type":"string", @@ -731,6 +1193,83 @@ "max":8766, "min":1 }, + "MixedMeasureMapping":{ + "type":"structure", + "required":["MeasureValueType"], + "members":{ + "MeasureName":{ + "shape":"SchemaName", + "documentation":"

    " + }, + "SourceColumn":{ + "shape":"SchemaName", + "documentation":"

    " + }, + "TargetMeasureName":{ + "shape":"SchemaName", + "documentation":"

    " + }, + "MeasureValueType":{ + "shape":"MeasureValueType", + "documentation":"

    " + }, + "MultiMeasureAttributeMappings":{ + "shape":"MultiMeasureAttributeMappingList", + "documentation":"

    " + } + }, + "documentation":"

    " + }, + "MixedMeasureMappingList":{ + "type":"list", + "member":{"shape":"MixedMeasureMapping"}, + "min":1 + }, + "MultiMeasureAttributeMapping":{ + "type":"structure", + "required":["SourceColumn"], + "members":{ + "SourceColumn":{ + "shape":"SchemaName", + "documentation":"

    " + }, + "TargetMultiMeasureAttributeName":{ + "shape":"SchemaName", + "documentation":"

    " + }, + "MeasureValueType":{ + "shape":"ScalarMeasureValueType", + "documentation":"

    " + } + }, + "documentation":"

    " + }, + "MultiMeasureAttributeMappingList":{ + "type":"list", + "member":{"shape":"MultiMeasureAttributeMapping"}, + "min":1 + }, + "MultiMeasureMappings":{ + "type":"structure", + "required":["MultiMeasureAttributeMappings"], + "members":{ + "TargetMultiMeasureName":{ + "shape":"SchemaName", + "documentation":"

    " + }, + "MultiMeasureAttributeMappings":{ + "shape":"MultiMeasureAttributeMappingList", + "documentation":"

    " + } + }, + "documentation":"

    " + }, + "PageLimit":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "PaginationLimit":{ "type":"integer", "box":true, @@ -742,7 +1281,7 @@ "members":{ "Dimensions":{ "shape":"Dimensions", - "documentation":"

    Contains the list of dimensions for time series data points.

    " + "documentation":"

    Contains the list of dimensions for time-series data points.

    " }, "MeasureName":{ "shape":"SchemaName", @@ -750,11 +1289,11 @@ }, "MeasureValue":{ "shape":"StringValue2048", - "documentation":"

    Contains the measure value for the time series data point.

    " + "documentation":"

    Contains the measure value for the time-series data point.

    " }, "MeasureValueType":{ "shape":"MeasureValueType", - "documentation":"

    Contains the data type of the measure value for the time series data point. Default type is DOUBLE.

    " + "documentation":"

    Contains the data type of the measure value for the time-series data point. Default type is DOUBLE.

    " }, "Time":{ "shape":"StringValue256", @@ -762,19 +1301,19 @@ }, "TimeUnit":{ "shape":"TimeUnit", - "documentation":"

    The granularity of the timestamp unit. It indicates if the time value is in seconds, milliseconds, nanoseconds or other supported values. Default is MILLISECONDS.

    " + "documentation":"

    The granularity of the timestamp unit. It indicates if the time value is in seconds, milliseconds, nanoseconds, or other supported values. Default is MILLISECONDS.

    " }, "Version":{ "shape":"RecordVersion", - "documentation":"

    64-bit attribute used for record updates. Write requests for duplicate data with a higher version number will update the existing measure value and version. In cases where the measure value is the same, Version will still be updated . Default value is 1.

    Version must be 1 or greater, or you will receive a ValidationException error.

    ", + "documentation":"

    64-bit attribute used for record updates. Write requests for duplicate data with a higher version number will update the existing measure value and version. In cases where the measure value is the same, Version will still be updated. Default value is 1.

    Version must be 1 or greater, or you will receive a ValidationException error.

    ", "box":true }, "MeasureValues":{ "shape":"MeasureValues", - "documentation":"

    Contains the list of MeasureValue for time series data points.

    This is only allowed for type MULTI. For scalar values, use MeasureValue attribute of the Record directly.

    " + "documentation":"

    Contains the list of MeasureValue for time-series data points.

    This is only allowed for type MULTI. For scalar values, use MeasureValue attribute of the record directly.

    " } }, - "documentation":"

    Record represents a time series data point being written into Timestream. Each record contains an array of dimensions. Dimensions represent the meta data attributes of a time series data point such as the instance name or availability zone of an EC2 instance. A record also contains the measure name which is the name of the measure being collected for example the CPU utilization of an EC2 instance. A record also contains the measure value and the value type which is the data type of the measure value. In addition, the record contains the timestamp when the measure was collected that the timestamp unit which represents the granularity of the timestamp.

    Records have a Version field, which is a 64-bit long that you can use for updating data points. Writes of a duplicate record with the same dimension, timestamp, and measure name but different measure value will only succeed if the Version attribute of the record in the write request is higher than that of the existing record. Timestream defaults to a Version of 1 for records without the Version field.

    " + "documentation":"

    Represents a time-series data point being written into Timestream. Each record contains an array of dimensions. Dimensions represent the metadata attributes of a time-series data point, such as the instance name or Availability Zone of an EC2 instance. A record also contains the measure name, which is the name of the measure being collected (for example, the CPU utilization of an EC2 instance). Additionally, a record contains the measure value and the value type, which is the data type of the measure value. Also, the record contains the timestamp of when the measure was collected and the timestamp unit, which represents the granularity of the timestamp.

    Records have a Version field, which is a 64-bit long that you can use for updating data points. Writes of a duplicate record with the same dimension, timestamp, and measure name but different measure value will only succeed if the Version attribute of the record in the write request is higher than that of the existing record. Timestream defaults to a Version of 1 for records without the Version field.

    " }, "RecordIndex":{"type":"integer"}, "RecordVersion":{"type":"long"}, @@ -811,7 +1350,7 @@ }, "Reason":{ "shape":"ErrorMessage", - "documentation":"

    The reason why a record was not successfully inserted into Timestream. Possible causes of failure include:

    • Records with duplicate data where there are multiple records with the same dimensions, timestamps, and measure names but:

      • Measure values are different

      • Version is not present in the request or the value of version in the new record is equal to or lower than the existing value

      If Timestream rejects data for this case, the ExistingVersion field in the RejectedRecords response will indicate the current record’s version. To force an update, you can resend the request with a version for the record set to a value greater than the ExistingVersion.

    • Records with timestamps that lie outside the retention duration of the memory store

      When the retention window is updated, you will receive a RejectedRecords exception if you immediately try to ingest data within the new window. To avoid a RejectedRecords exception, wait until the duration of the new window to ingest new data. For further information, see Best Practices for Configuring Timestream and the explanation of how storage works in Timestream.

    • Records with dimensions or measures that exceed the Timestream defined limits.

    For more information, see Access Management in the Timestream Developer Guide.

    " + "documentation":"

    The reason why a record was not successfully inserted into Timestream. Possible causes of failure include:

    • Records with duplicate data where there are multiple records with the same dimensions, timestamps, and measure names but:

      • Measure values are different

      • Version is not present in the request, or the value of version in the new record is equal to or lower than the existing value

      If Timestream rejects data for this case, the ExistingVersion field in the RejectedRecords response will indicate the current record’s version. To force an update, you can resend the request with a version for the record set to a value greater than the ExistingVersion.

    • Records with timestamps that lie outside the retention duration of the memory store.

      When the retention window is updated, you will receive a RejectedRecords exception if you immediately try to ingest data within the new window. To avoid a RejectedRecords exception, wait until the duration of the new window to ingest new data. For further information, see Best Practices for Configuring Timestream and the explanation of how storage works in Timestream.

    • Records with dimensions or measures that exceed the Timestream defined limits.

    For more information, see Access Management in the Timestream Developer Guide.

    " }, "ExistingVersion":{ "shape":"RecordVersion", @@ -819,7 +1358,7 @@ "box":true } }, - "documentation":"

    Records that were not successfully inserted into Timestream due to data validation issues that must be resolved prior to reinserting time series data into the system.

    " + "documentation":"

    Represents records that were not successfully inserted into Timestream due to data validation issues that must be resolved before reinserting time-series data into the system.

    " }, "RejectedRecords":{ "type":"list", @@ -829,11 +1368,47 @@ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"}, - "RejectedRecords":{"shape":"RejectedRecords"} + "RejectedRecords":{ + "shape":"RejectedRecords", + "documentation":"

    " + } }, - "documentation":"

    WriteRecords would throw this exception in the following cases:

    • Records with duplicate data where there are multiple records with the same dimensions, timestamps, and measure names but:

      • Measure values are different

      • Version is not present in the request or the value of version in the new record is equal to or lower than the existing value

      In this case, if Timestream rejects data, the ExistingVersion field in the RejectedRecords response will indicate the current record’s version. To force an update, you can resend the request with a version for the record set to a value greater than the ExistingVersion.

    • Records with timestamps that lie outside the retention duration of the memory store

    • Records with dimensions or measures that exceed the Timestream defined limits.

    For more information, see Quotas in the Timestream Developer Guide.

    ", + "documentation":"

    WriteRecords would throw this exception in the following cases:

    • Records with duplicate data where there are multiple records with the same dimensions, timestamps, and measure names but:

      • Measure values are different

      • Version is not present in the request or the value of version in the new record is equal to or lower than the existing value

      In this case, if Timestream rejects data, the ExistingVersion field in the RejectedRecords response will indicate the current record’s version. To force an update, you can resend the request with a version for the record set to a value greater than the ExistingVersion.

    • Records with timestamps that lie outside the retention duration of the memory store.

    • Records with dimensions or measures that exceed the Timestream defined limits.

    For more information, see Quotas in the Amazon Timestream Developer Guide.

    ", "exception":true }, + "ReportConfiguration":{ + "type":"structure", + "members":{ + "ReportS3Configuration":{ + "shape":"ReportS3Configuration", + "documentation":"

    Configuration of an S3 location to write error reports and events for a batch load.

    " + } + }, + "documentation":"

    Report configuration for a batch load task. This contains details about where error reports are stored.

    " + }, + "ReportS3Configuration":{ + "type":"structure", + "required":["BucketName"], + "members":{ + "BucketName":{ + "shape":"S3BucketName", + "documentation":"

    " + }, + "ObjectKeyPrefix":{ + "shape":"S3ObjectKeyPrefix", + "documentation":"

    " + }, + "EncryptionOption":{ + "shape":"S3EncryptionOption", + "documentation":"

    " + }, + "KmsKeyId":{ + "shape":"StringValue2048", + "documentation":"

    " + } + }, + "documentation":"

    " + }, "ResourceCreateAPIName":{ "type":"string", "pattern":"[a-zA-Z0-9_.-]+" @@ -847,6 +1422,21 @@ "documentation":"

    The operation tried to access a nonexistent resource. The resource might not be specified correctly, or its status might not be ACTIVE.

    ", "exception":true }, + "ResumeBatchLoadTaskRequest":{ + "type":"structure", + "required":["TaskId"], + "members":{ + "TaskId":{ + "shape":"BatchLoadTaskId", + "documentation":"

    The ID of the batch load task to resume.

    " + } + } + }, + "ResumeBatchLoadTaskResponse":{ + "type":"structure", + "members":{ + } + }, "RetentionProperties":{ "type":"structure", "required":[ @@ -863,7 +1453,7 @@ "documentation":"

    The duration for which data must be stored in the magnetic store.

    " } }, - "documentation":"

    Retention properties contain the duration for which your time series data must be stored in the magnetic store and the memory store.

    " + "documentation":"

    Retention properties contain the duration for which your time-series data must be stored in the magnetic store and the memory store.

    " }, "S3BucketName":{ "type":"string", @@ -876,22 +1466,22 @@ "members":{ "BucketName":{ "shape":"S3BucketName", - "documentation":"

    >Bucket name of the customer S3 bucket.

    " + "documentation":"

    The bucket name of the customer S3 bucket.

    " }, "ObjectKeyPrefix":{ "shape":"S3ObjectKeyPrefix", - "documentation":"

    Object key preview for the customer S3 location.

    " + "documentation":"

    The object key preview for the customer S3 location.

    " }, "EncryptionOption":{ "shape":"S3EncryptionOption", - "documentation":"

    Encryption option for the customer s3 location. Options are S3 server side encryption with an S3-managed key or KMS managed key.

    " + "documentation":"

    The encryption option for the customer S3 location. Options are S3 server-side encryption with an S3 managed key or Amazon Web Services managed key.

    " }, "KmsKeyId":{ "shape":"StringValue2048", - "documentation":"

    KMS key id for the customer s3 location when encrypting with a KMS managed key.

    " + "documentation":"

    The KMS key ID for the customer S3 location when encrypting with an Amazon Web Services managed key.

    " } }, - "documentation":"

    Configuration specifing an S3 location.

    " + "documentation":"

    The configuration that specifies an S3 location.

    " }, "S3EncryptionOption":{ "type":"string", @@ -900,12 +1490,28 @@ "SSE_KMS" ] }, + "S3ObjectKey":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[a-zA-Z0-9|!\\-_*'\\(\\)]([a-zA-Z0-9]|[!\\-_*'\\(\\)\\/.])+" + }, "S3ObjectKeyPrefix":{ "type":"string", "max":928, "min":1, "pattern":"[a-zA-Z0-9|!\\-_*'\\(\\)]([a-zA-Z0-9]|[!\\-_*'\\(\\)\\/.])+" }, + "ScalarMeasureValueType":{ + "type":"string", + "enum":[ + "DOUBLE", + "BIGINT", + "BOOLEAN", + "VARCHAR", + "TIMESTAMP" + ] + }, "SchemaName":{ "type":"string", "min":1 @@ -916,10 +1522,15 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

    Instance quota of resource exceeded for this account.

    ", + "documentation":"

    The instance quota of resource exceeded for this account.

    ", "exception":true }, "String":{"type":"string"}, + "StringValue1":{ + "type":"string", + "max":1, + "min":1 + }, "StringValue2048":{ "type":"string", "max":2048, @@ -966,7 +1577,7 @@ "documentation":"

    Contains properties to set on the table when enabling magnetic store writes.

    " } }, - "documentation":"

    Table represents a database table in Timestream. Tables contain one or more related time series. You can modify the retention duration of the memory store and the magnetic store for a table.

    " + "documentation":"

    Represents a database table in Timestream. Tables contain one or more related time series. You can modify the retention duration of the memory store and the magnetic store for a table.

    " }, "TableList":{ "type":"list", @@ -976,7 +1587,8 @@ "type":"string", "enum":[ "ACTIVE", - "DELETING" + "DELETING", + "RESTORING" ] }, "Tag":{ @@ -995,7 +1607,7 @@ "documentation":"

    The value of the tag. Tag values are case-sensitive and can be null.

    " } }, - "documentation":"

    A tag is a label that you assign to a Timestream database and/or table. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize databases and/or tables, for example, by purpose, owner, or environment.

    " + "documentation":"

    A tag is a label that you assign to a Timestream database and/or table. Each tag consists of a key and an optional value, both of which you define. With tags, you can categorize databases and/or tables, for example, by purpose, owner, or environment.

    " }, "TagKey":{ "type":"string", @@ -1047,7 +1659,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

    Too many requests were made by a user exceeding service quotas. The request was throttled.

    ", + "documentation":"

    Too many requests were made by a user and they exceeded the service quotas. The request was throttled.

    ", "exception":true }, "TimeUnit":{ @@ -1144,7 +1756,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

    Invalid or malformed request.

    ", + "documentation":"

    An invalid or malformed request.

    ", "exception":true }, "WriteRecordsRequest":{ @@ -1165,11 +1777,11 @@ }, "CommonAttributes":{ "shape":"Record", - "documentation":"

    A record containing the common measure, dimension, time, and version attributes shared across all the records in the request. The measure and dimension attributes specified will be merged with the measure and dimension attributes in the records object when the data is written into Timestream. Dimensions may not overlap, or a ValidationException will be thrown. In other words, a record must contain dimensions with unique names.

    " + "documentation":"

    A record that contains the common measure, dimension, time, and version attributes shared across all the records in the request. The measure and dimension attributes specified will be merged with the measure and dimension attributes in the records object when the data is written into Timestream. Dimensions may not overlap, or a ValidationException will be thrown. In other words, a record must contain dimensions with unique names.

    " }, "Records":{ "shape":"Records", - "documentation":"

    An array of records containing the unique measure, dimension, time, and version attributes for each time series data point.

    " + "documentation":"

    An array of records that contain the unique measure, dimension, time, and version attributes for each time-series data point.

    " } } }, @@ -1183,5 +1795,5 @@ } } }, - "documentation":"Amazon Timestream Write

    Amazon Timestream is a fast, scalable, fully managed time series database service that makes it easy to store and analyze trillions of time series data points per day. With Timestream, you can easily store and analyze IoT sensor data to derive insights from your IoT applications. You can analyze industrial telemetry to streamline equipment management and maintenance. You can also store and analyze log data and metrics to improve the performance and availability of your applications. Timestream is built from the ground up to effectively ingest, process, and store time series data. It organizes data to optimize query processing. It automatically scales based on the volume of data ingested and on the query volume to ensure you receive optimal performance while inserting and querying data. As your data grows over time, Timestream’s adaptive query processing engine spans across storage tiers to provide fast analysis while reducing costs.

    " + "documentation":"Amazon Timestream Write

    Amazon Timestream is a fast, scalable, fully managed time-series database service that makes it easy to store and analyze trillions of time-series data points per day. With Timestream, you can easily store and analyze IoT sensor data to derive insights from your IoT applications. You can analyze industrial telemetry to streamline equipment management and maintenance. You can also store and analyze log data and metrics to improve the performance and availability of your applications.

    Timestream is built from the ground up to effectively ingest, process, and store time-series data. It organizes data to optimize query processing. It automatically scales based on the volume of data ingested and on the query volume to ensure you receive optimal performance while inserting and querying data. As your data grows over time, Timestream’s adaptive query processing engine spans across storage tiers to provide fast analysis while reducing costs.

    " } diff --git a/services/tnb/pom.xml b/services/tnb/pom.xml new file mode 100644 index 000000000000..232ef050fbd7 --- /dev/null +++ b/services/tnb/pom.xml @@ -0,0 +1,60 @@ + + + + + 4.0.0 + + software.amazon.awssdk + services + 2.20.47-SNAPSHOT + + tnb + AWS Java SDK :: Services :: Tnb + The AWS Java SDK for Tnb module holds the client classes that are used for + communicating with Tnb. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.tnb + + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + diff --git a/services/tnb/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/tnb/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..bdbdea94cf4a --- /dev/null +++ b/services/tnb/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://tnb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://tnb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://tnb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://tnb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/services/tnb/src/main/resources/codegen-resources/endpoint-tests.json b/services/tnb/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..777e258d27ce --- /dev/null +++ b/services/tnb/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tnb.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tnb.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tnb.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tnb.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/tnb/src/main/resources/codegen-resources/paginators-1.json b/services/tnb/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..18ac477bf60c --- /dev/null +++ b/services/tnb/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListSolFunctionInstances": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "functionInstances" + }, + "ListSolFunctionPackages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "functionPackages" + }, + "ListSolNetworkInstances": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "networkInstances" + }, + "ListSolNetworkOperations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "networkOperations" + }, + "ListSolNetworkPackages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "networkPackages" + } + } +} diff --git a/services/tnb/src/main/resources/codegen-resources/service-2.json b/services/tnb/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..3c410d46c4c4 --- /dev/null +++ b/services/tnb/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,2929 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2008-10-21", + "endpointPrefix":"tnb", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Telco Network Builder", + "serviceId":"tnb", + "signatureVersion":"v4", + "signingName":"tnb", + "uid":"tnb-2008-10-21" + }, + "operations":{ + "CancelSolNetworkOperation":{ + "name":"CancelSolNetworkOperation", + "http":{ + "method":"POST", + "requestUri":"/sol/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel", + "responseCode":202 + }, + "input":{"shape":"CancelSolNetworkOperationInput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Cancels a network operation.

    A network operation is any operation that is done to your network, such as network instance instantiation or termination.

    " + }, + "CreateSolFunctionPackage":{ + "name":"CreateSolFunctionPackage", + "http":{ + "method":"POST", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages", + "responseCode":201 + }, + "input":{"shape":"CreateSolFunctionPackageInput"}, + "output":{"shape":"CreateSolFunctionPackageOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Creates a function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network. For more information, see Function packages in the Amazon Web Services Telco Network Builder User Guide.

    Creating a function package is the first step for creating a network in AWS TNB. This request creates an empty container with an ID. The next step is to upload the actual CSAR zip file into that empty container. To upload function package content, see PutSolFunctionPackageContent.

    " + }, + "CreateSolNetworkInstance":{ + "name":"CreateSolNetworkInstance", + "http":{ + "method":"POST", + "requestUri":"/sol/nslcm/v1/ns_instances", + "responseCode":201 + }, + "input":{"shape":"CreateSolNetworkInstanceInput"}, + "output":{"shape":"CreateSolNetworkInstanceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Creates a network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed. Creating a network instance is the third step after creating a network package. For more information about network instances, Network instances in the Amazon Web Services Telco Network Builder User Guide.

    Once you create a network instance, you can instantiate it. To instantiate a network, see InstantiateSolNetworkInstance.

    " + }, + "CreateSolNetworkPackage":{ + "name":"CreateSolNetworkPackage", + "http":{ + "method":"POST", + "requestUri":"/sol/nsd/v1/ns_descriptors", + "responseCode":201 + }, + "input":{"shape":"CreateSolNetworkPackageInput"}, + "output":{"shape":"CreateSolNetworkPackageOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Creates a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on. For more information, see Network instances in the Amazon Web Services Telco Network Builder User Guide.

    A network package consists of a network service descriptor (NSD) file (required) and any additional files (optional), such as scripts specific to your needs. For example, if you have multiple function packages in your network package, you can use the NSD to define which network functions should run in certain VPCs, subnets, or EKS clusters.

    This request creates an empty network package container with an ID. Once you create a network package, you can upload the network package content using PutSolNetworkPackageContent.

    " + }, + "DeleteSolFunctionPackage":{ + "name":"DeleteSolFunctionPackage", + "http":{ + "method":"DELETE", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages/{vnfPkgId}", + "responseCode":204 + }, + "input":{"shape":"DeleteSolFunctionPackageInput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Deletes a function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    To delete a function package, the package must be in a disabled state. To disable a function package, see UpdateSolFunctionPackage.

    ", + "idempotent":true + }, + "DeleteSolNetworkInstance":{ + "name":"DeleteSolNetworkInstance", + "http":{ + "method":"DELETE", + "requestUri":"/sol/nslcm/v1/ns_instances/{nsInstanceId}", + "responseCode":204 + }, + "input":{"shape":"DeleteSolNetworkInstanceInput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Deletes a network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    To delete a network instance, the instance must be in a stopped or terminated state. To terminate a network instance, see TerminateSolNetworkInstance.

    ", + "idempotent":true + }, + "DeleteSolNetworkPackage":{ + "name":"DeleteSolNetworkPackage", + "http":{ + "method":"DELETE", + "requestUri":"/sol/nsd/v1/ns_descriptors/{nsdInfoId}", + "responseCode":204 + }, + "input":{"shape":"DeleteSolNetworkPackageInput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Deletes network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    To delete a network package, the package must be in a disable state. To disable a network package, see UpdateSolNetworkPackage.

    ", + "idempotent":true + }, + "GetSolFunctionInstance":{ + "name":"GetSolFunctionInstance", + "http":{ + "method":"GET", + "requestUri":"/sol/vnflcm/v1/vnf_instances/{vnfInstanceId}", + "responseCode":200 + }, + "input":{"shape":"GetSolFunctionInstanceInput"}, + "output":{"shape":"GetSolFunctionInstanceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the details of a network function instance, including the instantation state and metadata from the function package descriptor in the network function package.

    A network function instance is a function in a function package .

    " + }, + "GetSolFunctionPackage":{ + "name":"GetSolFunctionPackage", + "http":{ + "method":"GET", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages/{vnfPkgId}", + "responseCode":200 + }, + "input":{"shape":"GetSolFunctionPackageInput"}, + "output":{"shape":"GetSolFunctionPackageOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the details of an individual function package, such as the operational state and whether the package is in use.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network..

    " + }, + "GetSolFunctionPackageContent":{ + "name":"GetSolFunctionPackageContent", + "http":{ + "method":"GET", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content", + "responseCode":200 + }, + "input":{"shape":"GetSolFunctionPackageContentInput"}, + "output":{"shape":"GetSolFunctionPackageContentOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the contents of a function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "GetSolFunctionPackageDescriptor":{ + "name":"GetSolFunctionPackageDescriptor", + "http":{ + "method":"GET", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd", + "responseCode":200 + }, + "input":{"shape":"GetSolFunctionPackageDescriptorInput"}, + "output":{"shape":"GetSolFunctionPackageDescriptorOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets a function package descriptor in a function package.

    A function package descriptor is a .yaml file in a function package that uses the TOSCA standard to describe how the network function in the function package should run on your network.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "GetSolNetworkInstance":{ + "name":"GetSolNetworkInstance", + "http":{ + "method":"GET", + "requestUri":"/sol/nslcm/v1/ns_instances/{nsInstanceId}", + "responseCode":200 + }, + "input":{"shape":"GetSolNetworkInstanceInput"}, + "output":{"shape":"GetSolNetworkInstanceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the details of the network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "GetSolNetworkOperation":{ + "name":"GetSolNetworkOperation", + "http":{ + "method":"GET", + "requestUri":"/sol/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}", + "responseCode":200 + }, + "input":{"shape":"GetSolNetworkOperationInput"}, + "output":{"shape":"GetSolNetworkOperationOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the details of a network operation, including the tasks involved in the network operation and the status of the tasks.

    A network operation is any operation that is done to your network, such as network instance instantiation or termination.

    " + }, + "GetSolNetworkPackage":{ + "name":"GetSolNetworkPackage", + "http":{ + "method":"GET", + "requestUri":"/sol/nsd/v1/ns_descriptors/{nsdInfoId}", + "responseCode":200 + }, + "input":{"shape":"GetSolNetworkPackageInput"}, + "output":{"shape":"GetSolNetworkPackageOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the details of a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "GetSolNetworkPackageContent":{ + "name":"GetSolNetworkPackageContent", + "http":{ + "method":"GET", + "requestUri":"/sol/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content", + "responseCode":200 + }, + "input":{"shape":"GetSolNetworkPackageContentInput"}, + "output":{"shape":"GetSolNetworkPackageContentOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the contents of a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "GetSolNetworkPackageDescriptor":{ + "name":"GetSolNetworkPackageDescriptor", + "http":{ + "method":"GET", + "requestUri":"/sol/nsd/v1/ns_descriptors/{nsdInfoId}/nsd", + "responseCode":200 + }, + "input":{"shape":"GetSolNetworkPackageDescriptorInput"}, + "output":{"shape":"GetSolNetworkPackageDescriptorOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Gets the content of the network service descriptor.

    A network service descriptor is a .yaml file in a network package that uses the TOSCA standard to describe the network functions you want to deploy and the Amazon Web Services infrastructure you want to deploy the network functions on.

    " + }, + "InstantiateSolNetworkInstance":{ + "name":"InstantiateSolNetworkInstance", + "http":{ + "method":"POST", + "requestUri":"/sol/nslcm/v1/ns_instances/{nsInstanceId}/instantiate", + "responseCode":201 + }, + "input":{"shape":"InstantiateSolNetworkInstanceInput"}, + "output":{"shape":"InstantiateSolNetworkInstanceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Instantiates a network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    Before you can instantiate a network instance, you have to create a network instance. For more information, see CreateSolNetworkInstance.

    " + }, + "ListSolFunctionInstances":{ + "name":"ListSolFunctionInstances", + "http":{ + "method":"GET", + "requestUri":"/sol/vnflcm/v1/vnf_instances", + "responseCode":200 + }, + "input":{"shape":"ListSolFunctionInstancesInput"}, + "output":{"shape":"ListSolFunctionInstancesOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists network function instances.

    A network function instance is a function in a function package .

    " + }, + "ListSolFunctionPackages":{ + "name":"ListSolFunctionPackages", + "http":{ + "method":"GET", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages", + "responseCode":200 + }, + "input":{"shape":"ListSolFunctionPackagesInput"}, + "output":{"shape":"ListSolFunctionPackagesOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists information about function packages.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "ListSolNetworkInstances":{ + "name":"ListSolNetworkInstances", + "http":{ + "method":"GET", + "requestUri":"/sol/nslcm/v1/ns_instances", + "responseCode":200 + }, + "input":{"shape":"ListSolNetworkInstancesInput"}, + "output":{"shape":"ListSolNetworkInstancesOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists your network instances.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "ListSolNetworkOperations":{ + "name":"ListSolNetworkOperations", + "http":{ + "method":"GET", + "requestUri":"/sol/nslcm/v1/ns_lcm_op_occs", + "responseCode":200 + }, + "input":{"shape":"ListSolNetworkOperationsInput"}, + "output":{"shape":"ListSolNetworkOperationsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists details for a network operation, including when the operation started and the status of the operation.

    A network operation is any operation that is done to your network, such as network instance instantiation or termination.

    " + }, + "ListSolNetworkPackages":{ + "name":"ListSolNetworkPackages", + "http":{ + "method":"GET", + "requestUri":"/sol/nsd/v1/ns_descriptors", + "responseCode":200 + }, + "input":{"shape":"ListSolNetworkPackagesInput"}, + "output":{"shape":"ListSolNetworkPackagesOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists network packages.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists tags for AWS TNB resources.

    " + }, + "PutSolFunctionPackageContent":{ + "name":"PutSolFunctionPackageContent", + "http":{ + "method":"PUT", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content", + "responseCode":202 + }, + "input":{"shape":"PutSolFunctionPackageContentInput"}, + "output":{"shape":"PutSolFunctionPackageContentOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Uploads the contents of a function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    ", + "idempotent":true + }, + "PutSolNetworkPackageContent":{ + "name":"PutSolNetworkPackageContent", + "http":{ + "method":"PUT", + "requestUri":"/sol/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content", + "responseCode":200 + }, + "input":{"shape":"PutSolNetworkPackageContentInput"}, + "output":{"shape":"PutSolNetworkPackageContentOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Uploads the contents of a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    ", + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Tags an AWS TNB resource.

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    ", + "idempotent":true + }, + "TerminateSolNetworkInstance":{ + "name":"TerminateSolNetworkInstance", + "http":{ + "method":"POST", + "requestUri":"/sol/nslcm/v1/ns_instances/{nsInstanceId}/terminate", + "responseCode":201 + }, + "input":{"shape":"TerminateSolNetworkInstanceInput"}, + "output":{"shape":"TerminateSolNetworkInstanceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Terminates a network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    You must terminate a network instance before you can delete it.

    " + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Untags an AWS TNB resource.

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    ", + "idempotent":true + }, + "UpdateSolFunctionPackage":{ + "name":"UpdateSolFunctionPackage", + "http":{ + "method":"PATCH", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages/{vnfPkgId}", + "responseCode":200 + }, + "input":{"shape":"UpdateSolFunctionPackageInput"}, + "output":{"shape":"UpdateSolFunctionPackageOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Updates the operational state of function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "UpdateSolNetworkInstance":{ + "name":"UpdateSolNetworkInstance", + "http":{ + "method":"POST", + "requestUri":"/sol/nslcm/v1/ns_instances/{nsInstanceId}/update", + "responseCode":201 + }, + "input":{"shape":"UpdateSolNetworkInstanceInput"}, + "output":{"shape":"UpdateSolNetworkInstanceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Update a network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "UpdateSolNetworkPackage":{ + "name":"UpdateSolNetworkPackage", + "http":{ + "method":"PATCH", + "requestUri":"/sol/nsd/v1/ns_descriptors/{nsdInfoId}", + "responseCode":200 + }, + "input":{"shape":"UpdateSolNetworkPackageInput"}, + "output":{"shape":"UpdateSolNetworkPackageOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Updates the operational state of a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    A network service descriptor is a .yaml file in a network package that uses the TOSCA standard to describe the network functions you want to deploy and the Amazon Web Services infrastructure you want to deploy the network functions on.

    " + }, + "ValidateSolFunctionPackageContent":{ + "name":"ValidateSolFunctionPackageContent", + "http":{ + "method":"PUT", + "requestUri":"/sol/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content/validate", + "responseCode":202 + }, + "input":{"shape":"ValidateSolFunctionPackageContentInput"}, + "output":{"shape":"ValidateSolFunctionPackageContentOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Validates function package content. This can be used as a dry run before uploading function package content with PutSolFunctionPackageContent.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    ", + "idempotent":true + }, + "ValidateSolNetworkPackageContent":{ + "name":"ValidateSolNetworkPackageContent", + "http":{ + "method":"PUT", + "requestUri":"/sol/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content/validate", + "responseCode":200 + }, + "input":{"shape":"ValidateSolNetworkPackageContentInput"}, + "output":{"shape":"ValidateSolNetworkPackageContentOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Validates network package content. This can be used as a dry run before uploading network package content with PutSolNetworkPackageContent.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    ", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    Insufficient permissions to make request.

    ", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Blob":{"type":"blob"}, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CancelSolNetworkOperationInput":{ + "type":"structure", + "required":["nsLcmOpOccId"], + "members":{ + "nsLcmOpOccId":{ + "shape":"NsLcmOpOccId", + "documentation":"

    The identifier of the network operation.

    ", + "location":"uri", + "locationName":"nsLcmOpOccId" + } + } + }, + "CreateSolFunctionPackageInput":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "CreateSolFunctionPackageOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "onboardingState", + "operationalState", + "usageState" + ], + "members":{ + "arn":{ + "shape":"VnfPkgArn", + "documentation":"

    Function package ARN.

    " + }, + "id":{ + "shape":"VnfPkgId", + "documentation":"

    ID of the function package.

    " + }, + "onboardingState":{ + "shape":"OnboardingState", + "documentation":"

    Onboarding state of the function package.

    " + }, + "operationalState":{ + "shape":"OperationalState", + "documentation":"

    Operational state of the function package.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + }, + "usageState":{ + "shape":"UsageState", + "documentation":"

    Usage state of the function package.

    " + } + } + }, + "CreateSolNetworkInstanceInput":{ + "type":"structure", + "required":[ + "nsName", + "nsdInfoId" + ], + "members":{ + "nsDescription":{ + "shape":"CreateSolNetworkInstanceInputNsDescriptionString", + "documentation":"

    Network instance description.

    " + }, + "nsName":{ + "shape":"CreateSolNetworkInstanceInputNsNameString", + "documentation":"

    Network instance name.

    " + }, + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    ID for network service descriptor.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "CreateSolNetworkInstanceInputNsDescriptionString":{ + "type":"string", + "max":255, + "min":0 + }, + "CreateSolNetworkInstanceInputNsNameString":{ + "type":"string", + "max":100, + "min":1 + }, + "CreateSolNetworkInstanceOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "nsInstanceName", + "nsdInfoId" + ], + "members":{ + "arn":{ + "shape":"NsInstanceArn", + "documentation":"

    Network instance ARN.

    " + }, + "id":{ + "shape":"NsInstanceId", + "documentation":"

    Network instance ID.

    " + }, + "nsInstanceName":{ + "shape":"String", + "documentation":"

    Network instance name.

    " + }, + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    Network service descriptor ID.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "CreateSolNetworkPackageInput":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "CreateSolNetworkPackageOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "nsdOnboardingState", + "nsdOperationalState", + "nsdUsageState" + ], + "members":{ + "arn":{ + "shape":"NsdInfoArn", + "documentation":"

    Network package ARN.

    " + }, + "id":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the network package.

    " + }, + "nsdOnboardingState":{ + "shape":"NsdOnboardingState", + "documentation":"

    Onboarding state of the network service descriptor in the network package.

    " + }, + "nsdOperationalState":{ + "shape":"NsdOperationalState", + "documentation":"

    Operational state of the network service descriptor in the network package.

    " + }, + "nsdUsageState":{ + "shape":"NsdUsageState", + "documentation":"

    Usage state of the network service descriptor in the network package.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "DeleteSolFunctionPackageInput":{ + "type":"structure", + "required":["vnfPkgId"], + "members":{ + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    ID of the function package.

    ", + "location":"uri", + "locationName":"vnfPkgId" + } + } + }, + "DeleteSolNetworkInstanceInput":{ + "type":"structure", + "required":["nsInstanceId"], + "members":{ + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    Network instance ID.

    ", + "location":"uri", + "locationName":"nsInstanceId" + } + } + }, + "DeleteSolNetworkPackageInput":{ + "type":"structure", + "required":["nsdInfoId"], + "members":{ + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the network service descriptor in the network package.

    ", + "location":"uri", + "locationName":"nsdInfoId" + } + } + }, + "DescriptorContentType":{ + "type":"string", + "enum":["text/plain"] + }, + "Document":{ + "type":"structure", + "members":{ + }, + "document":true + }, + "ErrorCause":{ + "type":"string", + "max":200, + "min":1 + }, + "ErrorDetails":{ + "type":"string", + "max":10240, + "min":0 + }, + "ErrorInfo":{ + "type":"structure", + "members":{ + "cause":{ + "shape":"ErrorCause", + "documentation":"

    Error cause.

    " + }, + "details":{ + "shape":"ErrorDetails", + "documentation":"

    Error details.

    " + } + }, + "documentation":"

    Provides error information.

    " + }, + "FunctionArtifactMeta":{ + "type":"structure", + "members":{ + "overrides":{ + "shape":"OverrideList", + "documentation":"

    Lists of function package overrides.

    " + } + }, + "documentation":"

    Metadata for function package artifacts.

    Artifacts are the contents of the package descriptor file and the state of the package.

    " + }, + "GetSolFunctionInstanceInput":{ + "type":"structure", + "required":["vnfInstanceId"], + "members":{ + "vnfInstanceId":{ + "shape":"VnfInstanceId", + "documentation":"

    ID of the network function.

    ", + "location":"uri", + "locationName":"vnfInstanceId" + } + } + }, + "GetSolFunctionInstanceMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + } + }, + "documentation":"

    The metadata of a network function instance.

    A network function instance is a function in a function package .

    " + }, + "GetSolFunctionInstanceOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "instantiationState", + "metadata", + "nsInstanceId", + "vnfPkgId", + "vnfdId" + ], + "members":{ + "arn":{ + "shape":"VnfInstanceArn", + "documentation":"

    Network function instance ARN.

    " + }, + "id":{ + "shape":"VnfInstanceId", + "documentation":"

    Network function instance ID.

    " + }, + "instantiatedVnfInfo":{"shape":"GetSolVnfInfo"}, + "instantiationState":{ + "shape":"VnfInstantiationState", + "documentation":"

    Network function instantiation state.

    " + }, + "metadata":{"shape":"GetSolFunctionInstanceMetadata"}, + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    Network instance ID.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + }, + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    Function package ID.

    " + }, + "vnfProductName":{ + "shape":"String", + "documentation":"

    Network function product name.

    " + }, + "vnfProvider":{ + "shape":"String", + "documentation":"

    Network function provider.

    " + }, + "vnfdId":{ + "shape":"VnfdId", + "documentation":"

    Function package descriptor ID.

    " + }, + "vnfdVersion":{ + "shape":"String", + "documentation":"

    Function package descriptor version.

    " + } + } + }, + "GetSolFunctionPackageContentInput":{ + "type":"structure", + "required":[ + "accept", + "vnfPkgId" + ], + "members":{ + "accept":{ + "shape":"PackageContentType", + "documentation":"

    The format of the package that you want to download from the function packages.

    ", + "location":"header", + "locationName":"Accept" + }, + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    ID of the function package.

    ", + "location":"uri", + "locationName":"vnfPkgId" + } + } + }, + "GetSolFunctionPackageContentOutput":{ + "type":"structure", + "members":{ + "contentType":{ + "shape":"PackageContentType", + "documentation":"

    Indicates the media type of the resource.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "packageContent":{ + "shape":"Blob", + "documentation":"

    Contents of the function package.

    " + } + }, + "payload":"packageContent" + }, + "GetSolFunctionPackageDescriptorInput":{ + "type":"structure", + "required":[ + "accept", + "vnfPkgId" + ], + "members":{ + "accept":{ + "shape":"DescriptorContentType", + "documentation":"

    Indicates which content types, expressed as MIME types, the client is able to understand.

    ", + "location":"header", + "locationName":"Accept" + }, + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    ID of the function package.

    ", + "location":"uri", + "locationName":"vnfPkgId" + } + } + }, + "GetSolFunctionPackageDescriptorOutput":{ + "type":"structure", + "members":{ + "contentType":{ + "shape":"DescriptorContentType", + "documentation":"

    Indicates the media type of the resource.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "vnfd":{ + "shape":"Blob", + "documentation":"

    Contents of the function package descriptor.

    " + } + }, + "payload":"vnfd" + }, + "GetSolFunctionPackageInput":{ + "type":"structure", + "required":["vnfPkgId"], + "members":{ + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    ID of the function package.

    ", + "location":"uri", + "locationName":"vnfPkgId" + } + } + }, + "GetSolFunctionPackageMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + }, + "vnfd":{ + "shape":"FunctionArtifactMeta", + "documentation":"

    Metadata related to the function package descriptor of the function package.

    " + } + }, + "documentation":"

    Metadata related to the function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "GetSolFunctionPackageOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "onboardingState", + "operationalState", + "usageState" + ], + "members":{ + "arn":{ + "shape":"VnfPkgArn", + "documentation":"

    Function package ARN.

    " + }, + "id":{ + "shape":"VnfPkgId", + "documentation":"

    Function package ID.

    " + }, + "metadata":{"shape":"GetSolFunctionPackageMetadata"}, + "onboardingState":{ + "shape":"OnboardingState", + "documentation":"

    Function package onboarding state.

    " + }, + "operationalState":{ + "shape":"OperationalState", + "documentation":"

    Function package operational state.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + }, + "usageState":{ + "shape":"UsageState", + "documentation":"

    Function package usage state.

    " + }, + "vnfProductName":{ + "shape":"String", + "documentation":"

    Network function product name.

    " + }, + "vnfProvider":{ + "shape":"String", + "documentation":"

    Network function provider.

    " + }, + "vnfdId":{ + "shape":"String", + "documentation":"

    Function package descriptor ID.

    " + }, + "vnfdVersion":{ + "shape":"String", + "documentation":"

    Function package descriptor version.

    " + } + } + }, + "GetSolInstantiatedVnfInfo":{ + "type":"structure", + "members":{ + "vnfState":{ + "shape":"VnfOperationalState", + "documentation":"

    State of the network function.

    " + } + }, + "documentation":"

    Information about a network function.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "GetSolNetworkInstanceInput":{ + "type":"structure", + "required":["nsInstanceId"], + "members":{ + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    ID of the network instance.

    ", + "location":"uri", + "locationName":"nsInstanceId" + } + } + }, + "GetSolNetworkInstanceMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + } + }, + "documentation":"

    The metadata of a network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "GetSolNetworkInstanceOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "metadata", + "nsInstanceDescription", + "nsInstanceName", + "nsdId", + "nsdInfoId" + ], + "members":{ + "arn":{ + "shape":"NsInstanceArn", + "documentation":"

    Network instance ARN.

    " + }, + "id":{ + "shape":"NsInstanceId", + "documentation":"

    Network instance ID.

    " + }, + "lcmOpInfo":{"shape":"LcmOperationInfo"}, + "metadata":{"shape":"GetSolNetworkInstanceMetadata"}, + "nsInstanceDescription":{ + "shape":"String", + "documentation":"

    Network instance description.

    " + }, + "nsInstanceName":{ + "shape":"String", + "documentation":"

    Network instance name.

    " + }, + "nsState":{ + "shape":"NsState", + "documentation":"

    Network instance state.

    " + }, + "nsdId":{ + "shape":"NsdId", + "documentation":"

    Network service descriptor ID.

    " + }, + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    Network service descriptor info ID.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "GetSolNetworkOperationInput":{ + "type":"structure", + "required":["nsLcmOpOccId"], + "members":{ + "nsLcmOpOccId":{ + "shape":"NsLcmOpOccId", + "documentation":"

    The identifier of the network operation.

    ", + "location":"uri", + "locationName":"nsLcmOpOccId" + } + } + }, + "GetSolNetworkOperationMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + } + }, + "documentation":"

    Metadata related to a network operation occurrence.

    A network operation is any operation that is done to your network, such as network instance instantiation or termination.

    " + }, + "GetSolNetworkOperationOutput":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"NsLcmOpOccArn", + "documentation":"

    Network operation ARN.

    " + }, + "error":{ + "shape":"ProblemDetails", + "documentation":"

    Error related to this specific network operation occurrence.

    " + }, + "id":{ + "shape":"NsLcmOpOccId", + "documentation":"

    ID of this network operation occurrence.

    " + }, + "lcmOperationType":{ + "shape":"LcmOperationType", + "documentation":"

    Type of the operation represented by this occurrence.

    " + }, + "metadata":{ + "shape":"GetSolNetworkOperationMetadata", + "documentation":"

    Metadata of this network operation occurrence.

    " + }, + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    ID of the network operation instance.

    " + }, + "operationState":{ + "shape":"NsLcmOperationState", + "documentation":"

    The state of the network operation.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + }, + "tasks":{ + "shape":"GetSolNetworkOperationTasksList", + "documentation":"

    All tasks associated with this operation occurrence.

    " + } + } + }, + "GetSolNetworkOperationTaskDetails":{ + "type":"structure", + "members":{ + "taskContext":{ + "shape":"StringMap", + "documentation":"

    Context for the network operation task.

    " + }, + "taskEndTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    Task end time.

    " + }, + "taskErrorDetails":{ + "shape":"ErrorInfo", + "documentation":"

    Task error details.

    " + }, + "taskName":{ + "shape":"String", + "documentation":"

    Task name.

    " + }, + "taskStartTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    Task start time.

    " + }, + "taskStatus":{ + "shape":"TaskStatus", + "documentation":"

    Task status.

    " + } + }, + "documentation":"

    Gets the details of a network operation.

    A network operation is any operation that is done to your network, such as network instance instantiation or termination.

    " + }, + "GetSolNetworkOperationTasksList":{ + "type":"list", + "member":{"shape":"GetSolNetworkOperationTaskDetails"} + }, + "GetSolNetworkPackageContentInput":{ + "type":"structure", + "required":[ + "accept", + "nsdInfoId" + ], + "members":{ + "accept":{ + "shape":"PackageContentType", + "documentation":"

    The format of the package you want to download from the network package.

    ", + "location":"header", + "locationName":"Accept" + }, + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the network service descriptor in the network package.

    ", + "location":"uri", + "locationName":"nsdInfoId" + } + } + }, + "GetSolNetworkPackageContentOutput":{ + "type":"structure", + "members":{ + "contentType":{ + "shape":"PackageContentType", + "documentation":"

    Indicates the media type of the resource.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "nsdContent":{ + "shape":"Blob", + "documentation":"

    Content of the network service descriptor in the network package.

    " + } + }, + "payload":"nsdContent" + }, + "GetSolNetworkPackageDescriptorInput":{ + "type":"structure", + "required":["nsdInfoId"], + "members":{ + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the network service descriptor in the network package.

    ", + "location":"uri", + "locationName":"nsdInfoId" + } + } + }, + "GetSolNetworkPackageDescriptorOutput":{ + "type":"structure", + "members":{ + "contentType":{ + "shape":"DescriptorContentType", + "documentation":"

    Indicates the media type of the resource.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "nsd":{ + "shape":"Blob", + "documentation":"

    Contents of the network service descriptor in the network package.

    " + } + }, + "payload":"nsd" + }, + "GetSolNetworkPackageInput":{ + "type":"structure", + "required":["nsdInfoId"], + "members":{ + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the network service descriptor in the network package.

    ", + "location":"uri", + "locationName":"nsdInfoId" + } + } + }, + "GetSolNetworkPackageMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + }, + "nsd":{ + "shape":"NetworkArtifactMeta", + "documentation":"

    Metadata related to the onboarded network service descriptor in the network package.

    " + } + }, + "documentation":"

    Metadata associated with a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "GetSolNetworkPackageOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "metadata", + "nsdId", + "nsdName", + "nsdOnboardingState", + "nsdOperationalState", + "nsdUsageState", + "nsdVersion", + "vnfPkgIds" + ], + "members":{ + "arn":{ + "shape":"NsdInfoArn", + "documentation":"

    Network package ARN.

    " + }, + "id":{ + "shape":"NsdInfoId", + "documentation":"

    Network package ID.

    " + }, + "metadata":{"shape":"GetSolNetworkPackageMetadata"}, + "nsdId":{ + "shape":"NsdId", + "documentation":"

    Network service descriptor ID.

    " + }, + "nsdName":{ + "shape":"String", + "documentation":"

    Network service descriptor name.

    " + }, + "nsdOnboardingState":{ + "shape":"NsdOnboardingState", + "documentation":"

    Network service descriptor onboarding state.

    " + }, + "nsdOperationalState":{ + "shape":"NsdOperationalState", + "documentation":"

    Network service descriptor operational state.

    " + }, + "nsdUsageState":{ + "shape":"NsdUsageState", + "documentation":"

    Network service descriptor usage state.

    " + }, + "nsdVersion":{ + "shape":"String", + "documentation":"

    Network service descriptor version.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + }, + "vnfPkgIds":{ + "shape":"VnfPkgIdList", + "documentation":"

    Identifies the function package for the function package descriptor referenced by the onboarded network package.

    " + } + } + }, + "GetSolVnfInfo":{ + "type":"structure", + "members":{ + "vnfState":{ + "shape":"VnfOperationalState", + "documentation":"

    State of the network function instance.

    " + }, + "vnfcResourceInfo":{ + "shape":"GetSolVnfcResourceInfoList", + "documentation":"

    Compute info used by the network function instance.

    " + } + }, + "documentation":"

    Information about the network function.

    A network function instance is a function in a function package .

    " + }, + "GetSolVnfcResourceInfo":{ + "type":"structure", + "members":{ + "metadata":{ + "shape":"GetSolVnfcResourceInfoMetadata", + "documentation":"

    The metadata of the network function compute.

    " + } + }, + "documentation":"

    Details of resource associated with a network function.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "GetSolVnfcResourceInfoList":{ + "type":"list", + "member":{"shape":"GetSolVnfcResourceInfo"} + }, + "GetSolVnfcResourceInfoMetadata":{ + "type":"structure", + "members":{ + "cluster":{ + "shape":"String", + "documentation":"

    Information about the cluster.

    " + }, + "helmChart":{ + "shape":"String", + "documentation":"

    Information about the helm chart.

    " + }, + "nodeGroup":{ + "shape":"String", + "documentation":"

    Information about the node group.

    " + } + }, + "documentation":"

    The metadata of a network function.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "InstantiateSolNetworkInstanceInput":{ + "type":"structure", + "required":["nsInstanceId"], + "members":{ + "additionalParamsForNs":{ + "shape":"Document", + "documentation":"

    Provides values for the configurable properties.

    " + }, + "dryRun":{ + "shape":"Boolean", + "documentation":"

    A check for whether you have the required permissions for the action without actually making the request and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

    ", + "location":"querystring", + "locationName":"dry_run" + }, + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    ID of the network instance.

    ", + "location":"uri", + "locationName":"nsInstanceId" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "InstantiateSolNetworkInstanceOutput":{ + "type":"structure", + "required":["nsLcmOpOccId"], + "members":{ + "nsLcmOpOccId":{ + "shape":"NsLcmOpOccId", + "documentation":"

    The identifier of the network operation.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    Unexpected error occurred. Problem on the server.

    ", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "LcmOperationInfo":{ + "type":"structure", + "required":["nsLcmOpOccId"], + "members":{ + "nsLcmOpOccId":{ + "shape":"NsLcmOpOccId", + "documentation":"

    The identifier of the network operation.

    " + } + }, + "documentation":"

    Lifecycle management operation details on the network instance.

    Lifecycle management operations are deploy, update, or delete operations.

    " + }, + "LcmOperationType":{ + "type":"string", + "enum":[ + "INSTANTIATE", + "UPDATE", + "TERMINATE" + ] + }, + "ListSolFunctionInstanceInfo":{ + "type":"structure", + "required":[ + "arn", + "id", + "instantiationState", + "metadata", + "nsInstanceId", + "vnfPkgId" + ], + "members":{ + "arn":{ + "shape":"VnfInstanceArn", + "documentation":"

    Network function instance ARN.

    " + }, + "id":{ + "shape":"VnfInstanceId", + "documentation":"

    Network function instance ID.

    " + }, + "instantiatedVnfInfo":{"shape":"GetSolInstantiatedVnfInfo"}, + "instantiationState":{ + "shape":"VnfInstantiationState", + "documentation":"

    Network function instance instantiation state.

    " + }, + "metadata":{ + "shape":"ListSolFunctionInstanceMetadata", + "documentation":"

    Network function instance metadata.

    " + }, + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    Network instance ID.

    " + }, + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    Function package ID.

    " + }, + "vnfPkgName":{ + "shape":"String", + "documentation":"

    Function package name.

    " + } + }, + "documentation":"

    Lists information about a network function instance.

    A network function instance is a function in a function package .

    " + }, + "ListSolFunctionInstanceMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    When the network function instance was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    When the network function instance was last modified.

    " + } + }, + "documentation":"

    Lists network function instance metadata.

    A network function instance is a function in a function package .

    " + }, + "ListSolFunctionInstanceResources":{ + "type":"list", + "member":{"shape":"ListSolFunctionInstanceInfo"} + }, + "ListSolFunctionInstancesInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListSolFunctionInstancesInputMaxResultsInteger", + "documentation":"

    The maximum number of results to include in the response.

    ", + "location":"querystring", + "locationName":"max_results" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextpage_opaque_marker" + } + } + }, + "ListSolFunctionInstancesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSolFunctionInstancesOutput":{ + "type":"structure", + "members":{ + "functionInstances":{ + "shape":"ListSolFunctionInstanceResources", + "documentation":"

    Network function instances.

    " + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token to use to retrieve the next page of results. This value is null when there are no more results to return.

    " + } + } + }, + "ListSolFunctionPackageInfo":{ + "type":"structure", + "required":[ + "arn", + "id", + "onboardingState", + "operationalState", + "usageState" + ], + "members":{ + "arn":{ + "shape":"VnfPkgArn", + "documentation":"

    Function package ARN.

    " + }, + "id":{ + "shape":"VnfPkgId", + "documentation":"

    ID of the function package.

    " + }, + "metadata":{ + "shape":"ListSolFunctionPackageMetadata", + "documentation":"

    The metadata of the function package.

    " + }, + "onboardingState":{ + "shape":"OnboardingState", + "documentation":"

    Onboarding state of the function package.

    " + }, + "operationalState":{ + "shape":"OperationalState", + "documentation":"

    Operational state of the function package.

    " + }, + "usageState":{ + "shape":"UsageState", + "documentation":"

    Usage state of the function package.

    " + }, + "vnfProductName":{ + "shape":"String", + "documentation":"

    The product name for the network function.

    " + }, + "vnfProvider":{ + "shape":"String", + "documentation":"

    Provider of the function package and the function package descriptor.

    " + }, + "vnfdId":{ + "shape":"String", + "documentation":"

    Identifies the function package and the function package descriptor.

    " + }, + "vnfdVersion":{ + "shape":"String", + "documentation":"

    Identifies the version of the function package descriptor.

    " + } + }, + "documentation":"

    Information about a function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "ListSolFunctionPackageMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + } + }, + "documentation":"

    Details for the function package metadata.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "ListSolFunctionPackageResources":{ + "type":"list", + "member":{"shape":"ListSolFunctionPackageInfo"} + }, + "ListSolFunctionPackagesInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListSolFunctionPackagesInputMaxResultsInteger", + "documentation":"

    The maximum number of results to include in the response.

    ", + "location":"querystring", + "locationName":"max_results" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextpage_opaque_marker" + } + } + }, + "ListSolFunctionPackagesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSolFunctionPackagesOutput":{ + "type":"structure", + "required":["functionPackages"], + "members":{ + "functionPackages":{ + "shape":"ListSolFunctionPackageResources", + "documentation":"

    Function packages. A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token to use to retrieve the next page of results. This value is null when there are no more results to return.

    " + } + } + }, + "ListSolNetworkInstanceInfo":{ + "type":"structure", + "required":[ + "arn", + "id", + "metadata", + "nsInstanceDescription", + "nsInstanceName", + "nsState", + "nsdId", + "nsdInfoId" + ], + "members":{ + "arn":{ + "shape":"NsInstanceArn", + "documentation":"

    Network instance ARN.

    " + }, + "id":{ + "shape":"NsInstanceId", + "documentation":"

    ID of the network instance.

    " + }, + "metadata":{ + "shape":"ListSolNetworkInstanceMetadata", + "documentation":"

    The metadata of the network instance.

    " + }, + "nsInstanceDescription":{ + "shape":"String", + "documentation":"

    Human-readable description of the network instance.

    " + }, + "nsInstanceName":{ + "shape":"String", + "documentation":"

    Human-readable name of the network instance.

    " + }, + "nsState":{ + "shape":"NsState", + "documentation":"

    The state of the network instance.

    " + }, + "nsdId":{ + "shape":"NsdId", + "documentation":"

    ID of the network service descriptor in the network package.

    " + }, + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the network service descriptor in the network package.

    " + } + }, + "documentation":"

    Info about the specific network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "ListSolNetworkInstanceMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + } + }, + "documentation":"

    Metadata details for a network instance.

    A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.

    " + }, + "ListSolNetworkInstanceResources":{ + "type":"list", + "member":{"shape":"ListSolNetworkInstanceInfo"} + }, + "ListSolNetworkInstancesInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListSolNetworkInstancesInputMaxResultsInteger", + "documentation":"

    The maximum number of results to include in the response.

    ", + "location":"querystring", + "locationName":"max_results" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextpage_opaque_marker" + } + } + }, + "ListSolNetworkInstancesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSolNetworkInstancesOutput":{ + "type":"structure", + "members":{ + "networkInstances":{ + "shape":"ListSolNetworkInstanceResources", + "documentation":"

    Lists network instances.

    " + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token to use to retrieve the next page of results. This value is null when there are no more results to return.

    " + } + } + }, + "ListSolNetworkOperationsInfo":{ + "type":"structure", + "required":[ + "arn", + "id", + "lcmOperationType", + "nsInstanceId", + "operationState" + ], + "members":{ + "arn":{ + "shape":"NsLcmOpOccArn", + "documentation":"

    Network operation ARN.

    " + }, + "error":{ + "shape":"ProblemDetails", + "documentation":"

    Error related to this specific network operation.

    " + }, + "id":{ + "shape":"NsLcmOpOccId", + "documentation":"

    ID of this network operation.

    " + }, + "lcmOperationType":{ + "shape":"LcmOperationType", + "documentation":"

    Type of lifecycle management network operation.

    " + }, + "metadata":{ + "shape":"ListSolNetworkOperationsMetadata", + "documentation":"

    Metadata related to this network operation.

    " + }, + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    ID of the network instance related to this operation.

    " + }, + "operationState":{ + "shape":"NsLcmOperationState", + "documentation":"

    The state of the network operation.

    " + } + }, + "documentation":"

    Information parameters for a network operation.

    " + }, + "ListSolNetworkOperationsInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListSolNetworkOperationsInputMaxResultsInteger", + "documentation":"

    The maximum number of results to include in the response.

    ", + "location":"querystring", + "locationName":"max_results" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextpage_opaque_marker" + } + } + }, + "ListSolNetworkOperationsInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSolNetworkOperationsMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + } + }, + "documentation":"

    Metadata related to a network operation.

    A network operation is any operation that is done to your network, such as network instance instantiation or termination.

    " + }, + "ListSolNetworkOperationsOutput":{ + "type":"structure", + "members":{ + "networkOperations":{ + "shape":"ListSolNetworkOperationsResources", + "documentation":"

    Lists network operation occurrences. Lifecycle management operations are deploy, update, or delete operations.

    " + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token to use to retrieve the next page of results. This value is null when there are no more results to return.

    " + } + } + }, + "ListSolNetworkOperationsResources":{ + "type":"list", + "member":{"shape":"ListSolNetworkOperationsInfo"} + }, + "ListSolNetworkPackageInfo":{ + "type":"structure", + "required":[ + "arn", + "id", + "metadata", + "nsdOnboardingState", + "nsdOperationalState", + "nsdUsageState" + ], + "members":{ + "arn":{ + "shape":"NsdInfoArn", + "documentation":"

    Network package ARN.

    " + }, + "id":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the individual network package.

    " + }, + "metadata":{ + "shape":"ListSolNetworkPackageMetadata", + "documentation":"

    The metadata of the network package.

    " + }, + "nsdDesigner":{ + "shape":"String", + "documentation":"

    Designer of the onboarded network service descriptor in the network package.

    " + }, + "nsdId":{ + "shape":"String", + "documentation":"

    ID of the network service descriptor on which the network package is based.

    " + }, + "nsdInvariantId":{ + "shape":"String", + "documentation":"

    Identifies a network service descriptor in a version independent manner.

    " + }, + "nsdName":{ + "shape":"String", + "documentation":"

    Name of the onboarded network service descriptor in the network package.

    " + }, + "nsdOnboardingState":{ + "shape":"NsdOnboardingState", + "documentation":"

    Onboarding state of the network service descriptor in the network package.

    " + }, + "nsdOperationalState":{ + "shape":"NsdOperationalState", + "documentation":"

    Operational state of the network service descriptor in the network package.

    " + }, + "nsdUsageState":{ + "shape":"NsdUsageState", + "documentation":"

    Usage state of the network service descriptor in the network package.

    " + }, + "nsdVersion":{ + "shape":"String", + "documentation":"

    Version of the onboarded network service descriptor in the network package.

    " + }, + "vnfPkgIds":{ + "shape":"VnfPkgIdList", + "documentation":"

    Identifies the function package for the function package descriptor referenced by the onboarded network package.

    " + } + }, + "documentation":"

    Details of a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "ListSolNetworkPackageMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "lastModified" + ], + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was created.

    " + }, + "lastModified":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

    The date that the resource was last modified.

    " + } + }, + "documentation":"

    Metadata related to a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "ListSolNetworkPackageResources":{ + "type":"list", + "member":{"shape":"ListSolNetworkPackageInfo"} + }, + "ListSolNetworkPackagesInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListSolNetworkPackagesInputMaxResultsInteger", + "documentation":"

    The maximum number of results to include in the response.

    ", + "location":"querystring", + "locationName":"max_results" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextpage_opaque_marker" + } + } + }, + "ListSolNetworkPackagesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSolNetworkPackagesOutput":{ + "type":"structure", + "required":["networkPackages"], + "members":{ + "networkPackages":{ + "shape":"ListSolNetworkPackageResources", + "documentation":"

    Network packages. A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

    The token to use to retrieve the next page of results. This value is null when there are no more results to return.

    " + } + } + }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"TNBResourceArn", + "documentation":"

    Resource ARN.

    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "NetworkArtifactMeta":{ + "type":"structure", + "members":{ + "overrides":{ + "shape":"OverrideList", + "documentation":"

    Lists network package overrides.

    " + } + }, + "documentation":"

    Metadata for network package artifacts.

    Artifacts are the contents of the package descriptor file and the state of the package.

    " + }, + "NsInstanceArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-b|aws-us-gov):tnb:([a-z]{2}(-(gov|isob|iso))?-(east|west|north|south|central){1,2}-[0-9]):\\d{12}:(network-instance/ni-[a-f0-9]{17})$" + }, + "NsInstanceId":{ + "type":"string", + "pattern":"^ni-[a-f0-9]{17}$" + }, + "NsLcmOpOccArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-b|aws-us-gov):tnb:([a-z]{2}(-(gov|isob|iso))?-(east|west|north|south|central){1,2}-[0-9]):\\d{12}:(network-operation/no-[a-f0-9]{17})$" + }, + "NsLcmOpOccId":{ + "type":"string", + "pattern":"^no-[a-f0-9]{17}$" + }, + "NsLcmOperationState":{ + "type":"string", + "enum":[ + "PROCESSING", + "COMPLETED", + "FAILED", + "CANCELLING", + "CANCELLED" + ] + }, + "NsState":{ + "type":"string", + "enum":[ + "INSTANTIATED", + "NOT_INSTANTIATED", + "IMPAIRED", + "STOPPED", + "DELETED", + "INSTANTIATE_IN_PROGRESS", + "UPDATE_IN_PROGRESS", + "TERMINATE_IN_PROGRESS" + ] + }, + "NsdId":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "NsdInfoArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-b|aws-us-gov):tnb:([a-z]{2}(-(gov|isob|iso))?-(east|west|north|south|central){1,2}-[0-9]):\\d{12}:(network-package/np-[a-f0-9]{17})$" + }, + "NsdInfoId":{ + "type":"string", + "pattern":"^np-[a-f0-9]{17}$" + }, + "NsdOnboardingState":{ + "type":"string", + "enum":[ + "CREATED", + "ONBOARDED", + "ERROR" + ] + }, + "NsdOperationalState":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "NsdUsageState":{ + "type":"string", + "enum":[ + "IN_USE", + "NOT_IN_USE" + ] + }, + "OnboardingState":{ + "type":"string", + "enum":[ + "CREATED", + "ONBOARDED", + "ERROR" + ] + }, + "OperationalState":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "OverrideList":{ + "type":"list", + "member":{"shape":"ToscaOverride"} + }, + "PackageContentType":{ + "type":"string", + "enum":["application/zip"] + }, + "PaginationToken":{"type":"string"}, + "ProblemDetails":{ + "type":"structure", + "required":["detail"], + "members":{ + "detail":{ + "shape":"String", + "documentation":"

    A human-readable explanation specific to this occurrence of the problem.

    " + }, + "title":{ + "shape":"String", + "documentation":"

    A human-readable title of the problem type.

    " + } + }, + "documentation":"

    Details related to problems with AWS TNB resources.

    " + }, + "PutSolFunctionPackageContentInput":{ + "type":"structure", + "required":[ + "file", + "vnfPkgId" + ], + "members":{ + "contentType":{ + "shape":"PackageContentType", + "documentation":"

    Function package content type.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "file":{ + "shape":"Blob", + "documentation":"

    Function package file.

    " + }, + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    Function package ID.

    ", + "location":"uri", + "locationName":"vnfPkgId" + } + }, + "payload":"file" + }, + "PutSolFunctionPackageContentMetadata":{ + "type":"structure", + "members":{ + "vnfd":{"shape":"FunctionArtifactMeta"} + }, + "documentation":"

    Update metadata in a function package.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "PutSolFunctionPackageContentOutput":{ + "type":"structure", + "required":[ + "id", + "metadata", + "vnfProductName", + "vnfProvider", + "vnfdId", + "vnfdVersion" + ], + "members":{ + "id":{ + "shape":"VnfPkgId", + "documentation":"

    Function package ID.

    " + }, + "metadata":{ + "shape":"PutSolFunctionPackageContentMetadata", + "documentation":"

    Function package metadata.

    " + }, + "vnfProductName":{ + "shape":"String", + "documentation":"

    Function product name.

    " + }, + "vnfProvider":{ + "shape":"String", + "documentation":"

    Function provider.

    " + }, + "vnfdId":{ + "shape":"VnfdId", + "documentation":"

    Function package descriptor ID.

    " + }, + "vnfdVersion":{ + "shape":"String", + "documentation":"

    Function package descriptor version.

    " + } + } + }, + "PutSolNetworkPackageContentInput":{ + "type":"structure", + "required":[ + "file", + "nsdInfoId" + ], + "members":{ + "contentType":{ + "shape":"PackageContentType", + "documentation":"

    Network package content type.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "file":{ + "shape":"Blob", + "documentation":"

    Network package file.

    " + }, + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    Network service descriptor info ID.

    ", + "location":"uri", + "locationName":"nsdInfoId" + } + }, + "payload":"file" + }, + "PutSolNetworkPackageContentMetadata":{ + "type":"structure", + "members":{ + "nsd":{"shape":"NetworkArtifactMeta"} + }, + "documentation":"

    Update metadata in a network package.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "PutSolNetworkPackageContentOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "metadata", + "nsdId", + "nsdName", + "nsdVersion", + "vnfPkgIds" + ], + "members":{ + "arn":{ + "shape":"NsdInfoArn", + "documentation":"

    Network package ARN.

    " + }, + "id":{ + "shape":"NsdInfoId", + "documentation":"

    Network package ID.

    " + }, + "metadata":{ + "shape":"PutSolNetworkPackageContentMetadata", + "documentation":"

    Network package metadata.

    " + }, + "nsdId":{ + "shape":"NsdId", + "documentation":"

    Network service descriptor ID.

    " + }, + "nsdName":{ + "shape":"String", + "documentation":"

    Network service descriptor name.

    " + }, + "nsdVersion":{ + "shape":"String", + "documentation":"

    Network service descriptor version.

    " + }, + "vnfPkgIds":{ + "shape":"VnfPkgIdList", + "documentation":"

    Function package IDs.

    " + } + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    Request references a resource that doesn't exist.

    ", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    Service quotas have been exceeded.

    ", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "StringMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TNBResourceArn":{ + "type":"string", + "pattern":"^arn:aws:tnb:[a-z0-9-]+:[^:]*:.*$" + }, + "TagKey":{ + "type":"string", + "pattern":"^(?!aws:).{1,128}$" + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0, + "sensitive":true + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"TNBResourceArn", + "documentation":"

    Resource ARN.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TaskStatus":{ + "type":"string", + "enum":[ + "SCHEDULED", + "STARTED", + "IN_PROGRESS", + "COMPLETED", + "ERROR", + "SKIPPED", + "CANCELLED" + ] + }, + "TerminateSolNetworkInstanceInput":{ + "type":"structure", + "required":["nsInstanceId"], + "members":{ + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    ID of the network instance.

    ", + "location":"uri", + "locationName":"nsInstanceId" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "TerminateSolNetworkInstanceOutput":{ + "type":"structure", + "members":{ + "nsLcmOpOccId":{ + "shape":"NsLcmOpOccId", + "documentation":"

    The identifier of the network operation.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    Exception caused by throttling.

    ", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "ToscaOverride":{ + "type":"structure", + "members":{ + "defaultValue":{ + "shape":"String", + "documentation":"

    Default value for the override.

    " + }, + "name":{ + "shape":"String", + "documentation":"

    Name of the TOSCA override.

    " + } + }, + "documentation":"

    Overrides of the TOSCA node.

    " + }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"TNBResourceArn", + "documentation":"

    Resource ARN.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "documentation":"

    Tag keys.

    ", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateSolFunctionPackageInput":{ + "type":"structure", + "required":[ + "operationalState", + "vnfPkgId" + ], + "members":{ + "operationalState":{ + "shape":"OperationalState", + "documentation":"

    Operational state of the function package.

    " + }, + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    ID of the function package.

    ", + "location":"uri", + "locationName":"vnfPkgId" + } + } + }, + "UpdateSolFunctionPackageOutput":{ + "type":"structure", + "required":["operationalState"], + "members":{ + "operationalState":{ + "shape":"OperationalState", + "documentation":"

    Operational state of the function package.

    " + } + } + }, + "UpdateSolNetworkInstanceInput":{ + "type":"structure", + "required":[ + "nsInstanceId", + "updateType" + ], + "members":{ + "modifyVnfInfoData":{ + "shape":"UpdateSolNetworkModify", + "documentation":"

    Identifies the network function information parameters and/or the configurable properties of the network function to be modified.

    " + }, + "nsInstanceId":{ + "shape":"NsInstanceId", + "documentation":"

    ID of the network instance.

    ", + "location":"uri", + "locationName":"nsInstanceId" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs.

    " + }, + "updateType":{ + "shape":"UpdateSolNetworkType", + "documentation":"

    The type of update.

    " + } + } + }, + "UpdateSolNetworkInstanceOutput":{ + "type":"structure", + "members":{ + "nsLcmOpOccId":{ + "shape":"NsLcmOpOccId", + "documentation":"

    The identifier of the network operation.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs.

    " + } + } + }, + "UpdateSolNetworkModify":{ + "type":"structure", + "required":[ + "vnfConfigurableProperties", + "vnfInstanceId" + ], + "members":{ + "vnfConfigurableProperties":{ + "shape":"Document", + "documentation":"

    Provides values for the configurable properties declared in the function package descriptor.

    " + }, + "vnfInstanceId":{ + "shape":"VnfInstanceId", + "documentation":"

    ID of the network function instance.

    A network function instance is a function in a function package .

    " + } + }, + "documentation":"

    Information parameters and/or the configurable properties for a network function.

    A network function instance is a function in a function package .

    " + }, + "UpdateSolNetworkPackageInput":{ + "type":"structure", + "required":[ + "nsdInfoId", + "nsdOperationalState" + ], + "members":{ + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    ID of the network service descriptor in the network package.

    ", + "location":"uri", + "locationName":"nsdInfoId" + }, + "nsdOperationalState":{ + "shape":"NsdOperationalState", + "documentation":"

    Operational state of the network service descriptor in the network package.

    " + } + } + }, + "UpdateSolNetworkPackageOutput":{ + "type":"structure", + "required":["nsdOperationalState"], + "members":{ + "nsdOperationalState":{ + "shape":"NsdOperationalState", + "documentation":"

    Operational state of the network service descriptor in the network package.

    " + } + } + }, + "UpdateSolNetworkType":{ + "type":"string", + "enum":["MODIFY_VNF_INFORMATION"] + }, + "UsageState":{ + "type":"string", + "enum":[ + "IN_USE", + "NOT_IN_USE" + ] + }, + "ValidateSolFunctionPackageContentInput":{ + "type":"structure", + "required":[ + "file", + "vnfPkgId" + ], + "members":{ + "contentType":{ + "shape":"PackageContentType", + "documentation":"

    Function package content type.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "file":{ + "shape":"Blob", + "documentation":"

    Function package file.

    " + }, + "vnfPkgId":{ + "shape":"VnfPkgId", + "documentation":"

    Function package ID.

    ", + "location":"uri", + "locationName":"vnfPkgId" + } + }, + "payload":"file" + }, + "ValidateSolFunctionPackageContentMetadata":{ + "type":"structure", + "members":{ + "vnfd":{"shape":"FunctionArtifactMeta"} + }, + "documentation":"

    Validates function package content metadata.

    A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network.

    " + }, + "ValidateSolFunctionPackageContentOutput":{ + "type":"structure", + "required":[ + "id", + "metadata", + "vnfProductName", + "vnfProvider", + "vnfdId", + "vnfdVersion" + ], + "members":{ + "id":{ + "shape":"VnfPkgId", + "documentation":"

    Function package ID.

    " + }, + "metadata":{ + "shape":"ValidateSolFunctionPackageContentMetadata", + "documentation":"

    Function package metadata.

    " + }, + "vnfProductName":{ + "shape":"String", + "documentation":"

    Network function product name.

    " + }, + "vnfProvider":{ + "shape":"String", + "documentation":"

    Network function provider.

    " + }, + "vnfdId":{ + "shape":"VnfdId", + "documentation":"

    Function package descriptor ID.

    " + }, + "vnfdVersion":{ + "shape":"String", + "documentation":"

    Function package descriptor version.

    " + } + } + }, + "ValidateSolNetworkPackageContentInput":{ + "type":"structure", + "required":[ + "file", + "nsdInfoId" + ], + "members":{ + "contentType":{ + "shape":"PackageContentType", + "documentation":"

    Network package content type.

    ", + "location":"header", + "locationName":"Content-Type" + }, + "file":{ + "shape":"Blob", + "documentation":"

    Network package file.

    " + }, + "nsdInfoId":{ + "shape":"NsdInfoId", + "documentation":"

    Network service descriptor file.

    ", + "location":"uri", + "locationName":"nsdInfoId" + } + }, + "payload":"file" + }, + "ValidateSolNetworkPackageContentMetadata":{ + "type":"structure", + "members":{ + "nsd":{"shape":"NetworkArtifactMeta"} + }, + "documentation":"

    Validates network package content metadata.

    A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on.

    " + }, + "ValidateSolNetworkPackageContentOutput":{ + "type":"structure", + "required":[ + "arn", + "id", + "metadata", + "nsdId", + "nsdName", + "nsdVersion", + "vnfPkgIds" + ], + "members":{ + "arn":{ + "shape":"NsdInfoArn", + "documentation":"

    Network package ARN.

    " + }, + "id":{ + "shape":"NsdInfoId", + "documentation":"

    Network package ID.

    " + }, + "metadata":{ + "shape":"ValidateSolNetworkPackageContentMetadata", + "documentation":"

    Network package metadata.

    " + }, + "nsdId":{ + "shape":"NsdId", + "documentation":"

    Network service descriptor ID.

    " + }, + "nsdName":{ + "shape":"String", + "documentation":"

    Network service descriptor name.

    " + }, + "nsdVersion":{ + "shape":"String", + "documentation":"

    Network service descriptor version.

    " + }, + "vnfPkgIds":{ + "shape":"VnfPkgIdList", + "documentation":"

    Function package IDs.

    " + } + } + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    Unable to process the request because the client provided input failed to satisfy request constraints.

    ", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "VnfInstanceArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-b|aws-us-gov):tnb:([a-z]{2}(-(gov|isob|iso))?-(east|west|north|south|central){1,2}-[0-9]):\\d{12}:(function-instance/fi-[a-f0-9]{17})$" + }, + "VnfInstanceId":{ + "type":"string", + "pattern":"^fi-[a-f0-9]{17}$" + }, + "VnfInstantiationState":{ + "type":"string", + "enum":[ + "INSTANTIATED", + "NOT_INSTANTIATED" + ] + }, + "VnfOperationalState":{ + "type":"string", + "enum":[ + "STARTED", + "STOPPED" + ] + }, + "VnfPkgArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-b|aws-us-gov):tnb:([a-z]{2}(-(gov|isob|iso))?-(east|west|north|south|central){1,2}-[0-9]):\\d{12}:(function-package/fp-[a-f0-9]{17})$" + }, + "VnfPkgId":{ + "type":"string", + "pattern":"^fp-[a-f0-9]{17}$" + }, + "VnfPkgIdList":{ + "type":"list", + "member":{"shape":"VnfPkgId"} + }, + "VnfdId":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "documentation":"

    Amazon Web Services Telco Network Builder (TNB) is a network automation service that helps you deploy and manage telecom networks. AWS TNB helps you with the lifecycle management of your telecommunication network functions throughout planning, deployment, and post-deployment activities.

    " +} diff --git a/services/transcribe/pom.xml b/services/transcribe/pom.xml index b3bd16b57dba..dac23e5e911c 100644 --- a/services/transcribe/pom.xml +++ b/services/transcribe/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT transcribe AWS Java SDK :: Services :: Transcribe diff --git a/services/transcribe/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/transcribe/src/main/resources/codegen-resources/endpoint-rule-set.json index c80101a4c589..6481376ce5a3 100644 --- a/services/transcribe/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/transcribe/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,114 +111,283 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://transcribe-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://fips.transcribe.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://fips.transcribe.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://transcribe-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://transcribe-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "stringEquals", + "fn": "booleanEquals", "argv": [ - "aws", + true, { "fn": "getAttr", "argv": [ { "ref": "PartitionResult" }, - "name" + "supportsDualStack" ] } ] } ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://transcribe.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-north-1" + ] + } + ], "endpoint": { - "url": "https://fips.transcribe.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://cn.transcribe.cn-north-1.amazonaws.com.cn", "properties": {}, "headers": {} }, @@ -249,21 +398,15 @@ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "name" - ] - } + "ref": "Region" + }, + "cn-northwest-1" ] } ], "endpoint": { - "url": "https://fips.transcribe.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://cn.transcribe.cn-northwest-1.amazonaws.com.cn", "properties": {}, "headers": {} }, @@ -272,7 +415,7 @@ { "conditions": [], "endpoint": { - "url": "https://transcribe-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://transcribe.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -281,118 +424,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://transcribe.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "cn-north-1" - ] - } - ], - "endpoint": { - "url": "https://cn.transcribe.cn-north-1.amazonaws.com.cn", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "cn-northwest-1" - ] - } - ], - "endpoint": { - "url": "https://cn.transcribe.cn-northwest-1.amazonaws.com.cn", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], - "endpoint": { - "url": "https://transcribe.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/transcribe/src/main/resources/codegen-resources/endpoint-tests.json b/services/transcribe/src/main/resources/codegen-resources/endpoint-tests.json index 0a836f083f81..f6b5504dd0a9 100644 --- a/services/transcribe/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/transcribe/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,666 +1,29 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "af-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://transcribe.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-northeast-2.amazonaws.com" + "url": "https://transcribe.af-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "af-south-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-northeast-1.api.aws" + "url": "https://transcribe.ap-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-east-1" } }, { @@ -672,580 +35,520 @@ }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.me-south-1.api.aws" + "url": "https://transcribe.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" } }, { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.transcribe.me-south-1.amazonaws.com" + "url": "https://transcribe.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.me-south-1.api.aws" + "url": "https://transcribe.ap-southeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.me-south-1.amazonaws.com" + "url": "https://transcribe.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.sa-east-1.api.aws" + "url": "https://transcribe.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.transcribe.sa-east-1.amazonaws.com" + "url": "https://fips.transcribe.ca-central-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.sa-east-1.api.aws" + "url": "https://transcribe.eu-central-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.sa-east-1.amazonaws.com" + "url": "https://transcribe.eu-north-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-north-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.ap-east-1.api.aws" + "url": "https://transcribe.eu-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.transcribe.ap-east-1.amazonaws.com" + "url": "https://transcribe.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-east-1.api.aws" + "url": "https://transcribe.eu-west-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-east-1.amazonaws.com" + "url": "https://transcribe.me-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://transcribe.sa-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.cn-north-1.amazonaws.com.cn" + "url": "https://transcribe.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "cn-north-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.cn-north-1.api.amazonwebservices.com.cn" + "url": "https://fips.transcribe.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": true + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://cn.transcribe.cn-north-1.amazonaws.com.cn" + "url": "https://transcribe.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "cn-north-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.us-gov-west-1.api.aws" + "url": "https://fips.transcribe.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.transcribe.us-gov-west-1.amazonaws.com" + "url": "https://transcribe.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.us-gov-west-1.api.aws" + "url": "https://fips.transcribe.us-west-1.amazonaws.com" } }, "params": { - "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.us-gov-west-1.amazonaws.com" + "url": "https://transcribe.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.ap-southeast-1.api.aws" + "url": "https://fips.transcribe.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fips.transcribe.ap-southeast-1.amazonaws.com" + "url": "https://transcribe-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-southeast-1.api.aws" + "url": "https://transcribe.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-southeast-1.amazonaws.com" + "url": "https://cn.transcribe.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://fips.transcribe.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-southeast-2.api.aws" + "url": "https://cn.transcribe.cn-northwest-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "cn-northwest-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://transcribe.ap-southeast-2.amazonaws.com" + "url": "https://transcribe-fips.cn-north-1.api.amazonwebservices.com.cn" } }, - "params": { - "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "error": "FIPS and DualStack are enabled, but this partition does not support one or both" - }, "params": { "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.us-iso-east-1.c2s.ic.gov" + "url": "https://transcribe-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": true, - "Region": "us-iso-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://transcribe.us-iso-east-1.c2s.ic.gov" + "url": "https://transcribe.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, - "Region": "us-iso-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.us-east-1.api.aws" + "url": "https://transcribe.us-gov-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://fips.transcribe.us-east-1.amazonaws.com" + "url": "https://fips.transcribe.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://transcribe.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.us-east-1.amazonaws.com" + "url": "https://transcribe.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.us-east-2.api.aws" + "url": "https://fips.transcribe.us-gov-west-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-gov-west-1" } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://fips.transcribe.us-east-2.amazonaws.com" + "url": "https://transcribe-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://transcribe.us-east-2.api.aws" + "url": "https://transcribe.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.us-east-2.amazonaws.com" + "url": "https://transcribe.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://transcribe-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe-fips.cn-northwest-1.amazonaws.com.cn" + "url": "https://transcribe-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": true, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://transcribe.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://transcribe.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://cn.transcribe.cn-northwest-1.amazonaws.com.cn" + "url": "https://example.com" } }, "params": { "UseFIPS": false, - "Region": "cn-northwest-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1253,7 +556,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1265,8 +567,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1277,8 +579,8 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } } diff --git a/services/transcribe/src/main/resources/codegen-resources/service-2.json b/services/transcribe/src/main/resources/codegen-resources/service-2.json index 3ca81167a223..407ed7b677ad 100644 --- a/services/transcribe/src/main/resources/codegen-resources/service-2.json +++ b/services/transcribe/src/main/resources/codegen-resources/service-2.json @@ -27,7 +27,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

    Creates a new Call Analytics category.

    All categories are automatically applied to your Call Analytics transcriptions. Note that in order to apply categories to your transcriptions, you must create them before submitting your transcription request, as categories cannot be applied retroactively.

    When creating a new category, you can use the InputType parameter to label the category as a batch category (POST_CALL) or a streaming category (REAL_TIME). Batch categories can only be applied to batch transcriptions and streaming categories can only be applied to streaming transcriptions. If you do not include InputType, your category is created as a batch category by default.

    Call Analytics categories are composed of rules. For each category, you must create between 1 and 20 rules. Rules can include these parameters: , , , and .

    To update an existing category, see .

    To learn more about Call Analytics categories, see Creating categories for batch transcriptions and Creating categories for streaming transcriptions.

    " + "documentation":"

    Creates a new Call Analytics category.

    All categories are automatically applied to your Call Analytics transcriptions. Note that in order to apply categories to your transcriptions, you must create them before submitting your transcription request, as categories cannot be applied retroactively.

    When creating a new category, you can use the InputType parameter to label the category as a POST_CALL or a REAL_TIME category. POST_CALL categories can only be applied to post-call transcriptions and REAL_TIME categories can only be applied to real-time transcriptions. If you do not include InputType, your category is created as a POST_CALL category by default.

    Call Analytics categories are composed of rules. For each category, you must create between 1 and 20 rules. Rules can include these parameters: , , , and .

    To update an existing category, see .

    To learn more about Call Analytics categories, see Creating categories for post-call transcriptions and Creating categories for real-time transcriptions.

    " }, "CreateLanguageModel":{ "name":"CreateLanguageModel", @@ -59,7 +59,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

    Creates a new custom medical vocabulary.

    Before creating a new custom medical vocabulary, you must first upload a text file that contains your new entries, phrases, and terms into an Amazon S3 bucket. Note that this differs from , where you can include a list of terms within your request using the Phrases flag; CreateMedicalVocabulary does not support the Phrases flag.

    Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

    For more information, see Custom vocabularies.

    " + "documentation":"

    Creates a new custom medical vocabulary.

    Before creating a new custom medical vocabulary, you must first upload a text file that contains your vocabulary table into an Amazon S3 bucket. Note that this differs from , where you can include a list of terms within your request using the Phrases flag; CreateMedicalVocabulary does not support the Phrases flag and only accepts vocabularies in table format.

    Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

    For more information, see Custom vocabularies.

    " }, "CreateVocabulary":{ "name":"CreateVocabulary", @@ -489,7 +489,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

    Transcribes the audio from a customer service call and applies any additional Request Parameters you choose to include in your request.

    In addition to many standard transcription features, Call Analytics provides you with call characteristics, call summarization, speaker sentiment, and optional redaction of your text transcript and your audio file. You can also apply custom categories to flag specified conditions. To learn more about these features and insights, refer to Analyzing call center audio with Call Analytics.

    If you want to apply categories to your Call Analytics job, you must create them before submitting your job request. Categories cannot be retroactively applied to a job. To create a new category, use the operation. To learn more about Call Analytics categories, see Creating categories for batch transcriptions and Creating categories for streaming transcriptions.

    To make a StartCallAnalyticsJob request, you must first upload your media file into an Amazon S3 bucket; you can then specify the Amazon S3 location of the file using the Media parameter.

    You must include the following parameters in your StartCallAnalyticsJob request:

    • region: The Amazon Web Services Region where you are making your request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and quotas.

    • CallAnalyticsJobName: A custom name that you create for your transcription job that's unique within your Amazon Web Services account.

    • DataAccessRoleArn: The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files.

    • Media (MediaFileUri or RedactedMediaFileUri): The Amazon S3 location of your media file.

    With Call Analytics, you can redact the audio contained in your media file by including RedactedMediaFileUri, instead of MediaFileUri, to specify the location of your input audio. If you choose to redact your audio, you can find your redacted media at the location specified in the RedactedMediaFileUri field of your response.

    " + "documentation":"

    Transcribes the audio from a customer service call and applies any additional Request Parameters you choose to include in your request.

    In addition to many standard transcription features, Call Analytics provides you with call characteristics, call summarization, speaker sentiment, and optional redaction of your text transcript and your audio file. You can also apply custom categories to flag specified conditions. To learn more about these features and insights, refer to Analyzing call center audio with Call Analytics.

    If you want to apply categories to your Call Analytics job, you must create them before submitting your job request. Categories cannot be retroactively applied to a job. To create a new category, use the operation. To learn more about Call Analytics categories, see Creating categories for post-call transcriptions and Creating categories for real-time transcriptions.

    To make a StartCallAnalyticsJob request, you must first upload your media file into an Amazon S3 bucket; you can then specify the Amazon S3 location of the file using the Media parameter.

    Note that job queuing is enabled by default for Call Analytics jobs.

    You must include the following parameters in your StartCallAnalyticsJob request:

    • region: The Amazon Web Services Region where you are making your request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and quotas.

    • CallAnalyticsJobName: A custom name that you create for your transcription job that's unique within your Amazon Web Services account.

    • DataAccessRoleArn: The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files.

    • Media (MediaFileUri or RedactedMediaFileUri): The Amazon S3 location of your media file.

    With Call Analytics, you can redact the audio contained in your media file by including RedactedMediaFileUri, instead of MediaFileUri, to specify the location of your input audio. If you choose to redact your audio, you can find your redacted media at the location specified in the RedactedMediaFileUri field of your response.

    " }, "StartMedicalTranscriptionJob":{ "name":"StartMedicalTranscriptionJob", @@ -931,7 +931,7 @@ }, "InputType":{ "shape":"InputType", - "documentation":"

    Choose whether you want to create a streaming or a batch category for your Call Analytics transcription.

    Specifying POST_CALL assigns your category to batch transcriptions; categories with this input type cannot be applied to streaming (real-time) transcriptions.

    Specifying REAL_TIME assigns your category to streaming transcriptions; categories with this input type cannot be applied to batch (post-call) transcriptions.

    If you do not include InputType, your category is created as a batch category by default.

    " + "documentation":"

    Choose whether you want to create a real-time or a post-call category for your Call Analytics transcription.

    Specifying POST_CALL assigns your category to post-call transcriptions; categories with this input type cannot be applied to streaming (real-time) transcriptions.

    Specifying REAL_TIME assigns your category to streaming transcriptions; categories with this input type cannot be applied to post-call transcriptions.

    If you do not include InputType, your category is created as a post-call category by default.

    " } } }, @@ -1077,6 +1077,10 @@ "Tags":{ "shape":"TagList", "documentation":"

    Adds one or more custom tags, each in the form of a key:value pair, to a new custom vocabulary filter at the time you create this new vocabulary filter.

    To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

    " + }, + "DataAccessRoleArn":{ + "shape":"DataAccessRoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files (in this case, your custom vocabulary filter). If the role that you specify doesn’t have the appropriate permissions to access the specified Amazon S3 location, your request fails.

    IAM role ARNs have the format arn:partition:iam::account:role/role-name-with-path. For example: arn:aws:iam::111122223333:role/Admin.

    For more information, see IAM ARNs.

    " } } }, @@ -1123,6 +1127,10 @@ "Tags":{ "shape":"TagList", "documentation":"

    Adds one or more custom tags, each in the form of a key:value pair, to a new custom vocabulary at the time you create this new custom vocabulary.

    To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

    " + }, + "DataAccessRoleArn":{ + "shape":"DataAccessRoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files (in this case, your custom vocabulary). If the role that you specify doesn’t have the appropriate permissions to access the specified Amazon S3 location, your request fails.

    IAM role ARNs have the format arn:partition:iam::account:role/role-name-with-path. For example: arn:aws:iam::111122223333:role/Admin.

    For more information, see IAM ARNs.

    " } } }, @@ -1517,14 +1525,14 @@ "documentation":"

    Set to TRUE to flag speech that does not contain interruptions. Set to FALSE to flag speech that contains interruptions.

    " } }, - "documentation":"

    Flag the presence or absence of interruptions in your Call Analytics transcription output.

    Rules using InterruptionFilter are designed to match:

    • Instances where an agent interrupts a customer

    • Instances where a customer interrupts an agent

    • Either participant interrupting the other

    • A lack of interruptions

    See Rule criteria for batch categories for usage examples.

    " + "documentation":"

    Flag the presence or absence of interruptions in your Call Analytics transcription output.

    Rules using InterruptionFilter are designed to match:

    • Instances where an agent interrupts a customer

    • Instances where a customer interrupts an agent

    • Either participant interrupting the other

    • A lack of interruptions

    See Rule criteria for post-call categories for usage examples.

    " }, "JobExecutionSettings":{ "type":"structure", "members":{ "AllowDeferredExecution":{ "shape":"Boolean", - "documentation":"

    Makes it possible to enable job queuing when your concurrent request limit is exceeded. When AllowDeferredExecution is set to true, transcription job requests are placed in a queue until the number of jobs falls below the concurrent request limit. If AllowDeferredExecution is set to false and the number of transcription job requests exceed the concurrent request limit, you get a LimitExceededException error.

    Note that job queuing is enabled by default for Call Analytics jobs.

    If you include AllowDeferredExecution in your request, you must also include DataAccessRoleArn.

    " + "documentation":"

    Makes it possible to enable job queuing when your concurrent request limit is exceeded. When AllowDeferredExecution is set to true, transcription job requests are placed in a queue until the number of jobs falls below the concurrent request limit. If AllowDeferredExecution is set to false and the number of transcription job requests exceed the concurrent request limit, you get a LimitExceededException error.

    If you include AllowDeferredExecution in your request, you must also include DataAccessRoleArn.

    " }, "DataAccessRoleArn":{ "shape":"DataAccessRoleArn", @@ -1673,7 +1681,7 @@ "documentation":"

    The Amazon S3 location of the input files used to train and tune your custom language model, in addition to the data access role ARN (Amazon Resource Name) that has permissions to access these data.

    " } }, - "documentation":"

    Provides information about a custom language model, including the base model name, when the model was created, the location of the files used to train the model, when the model was last modified, the name you chose for the model, its language, its processing state, and if there is an upgrade available for the base model.

    " + "documentation":"

    Provides information about a custom language model, including:

    • The base model name

    • When the model was created

    • The location of the files used to train the model

    • When the model was last modified

    • The name you chose for the model

    • The model's language

    • The model's processing state

    • Any available upgrades for the base model

    " }, "LanguageOptions":{ "type":"list", @@ -2266,7 +2274,7 @@ "documentation":"

    Set to TRUE to flag periods of speech. Set to FALSE to flag periods of silence

    " } }, - "documentation":"

    Flag the presence or absence of periods of silence in your Call Analytics transcription output.

    Rules using NonTalkTimeFilter are designed to match:

    • The presence of silence at specified periods throughout the call

    • The presence of speech at specified periods throughout the call

    See Rule criteria for batch categories for usage examples.

    " + "documentation":"

    Flag the presence or absence of periods of silence in your Call Analytics transcription output.

    Rules using NonTalkTimeFilter are designed to match:

    • The presence of silence at specified periods throughout the call

    • The presence of speech at specified periods throughout the call

    See Rule criteria for post-call categories for usage examples.

    " }, "NotFoundException":{ "type":"structure", @@ -2392,7 +2400,7 @@ "documentation":"

    Flag the presence or absence of specific sentiments in your Call Analytics transcription output. Refer to for more detail.

    " } }, - "documentation":"

    A rule is a set of criteria that you can specify to flag an attribute in your Call Analytics output. Rules define a Call Analytics category.

    Rules can include these parameters: , , , and .

    To learn more about Call Analytics rules and categories, see Creating categories for batch transcriptions and Creating categories for streaming transcriptions.

    To learn more about Call Analytics, see Analyzing call center audio with Call Analytics.

    ", + "documentation":"

    A rule is a set of criteria that you can specify to flag an attribute in your Call Analytics output. Rules define a Call Analytics category.

    Rules can include these parameters: , , , and .

    To learn more about Call Analytics rules and categories, see Creating categories for post-call transcriptions and Creating categories for real-time transcriptions.

    To learn more about Call Analytics, see Analyzing call center audio with Call Analytics.

    ", "union":true }, "RuleList":{ @@ -2426,7 +2434,7 @@ "documentation":"

    Set to TRUE to flag the sentiments that you didn't include in your request. Set to FALSE to flag the sentiments that you specified in your request.

    " } }, - "documentation":"

    Flag the presence or absence of specific sentiments detected in your Call Analytics transcription output.

    Rules using SentimentFilter are designed to match:

    • The presence or absence of a positive sentiment felt by the customer, agent, or both at specified points in the call

    • The presence or absence of a negative sentiment felt by the customer, agent, or both at specified points in the call

    • The presence or absence of a neutral sentiment felt by the customer, agent, or both at specified points in the call

    • The presence or absence of a mixed sentiment felt by the customer, the agent, or both at specified points in the call

    See Rule criteria for batch categories for usage examples.

    " + "documentation":"

    Flag the presence or absence of specific sentiments detected in your Call Analytics transcription output.

    Rules using SentimentFilter are designed to match:

    • The presence or absence of a positive sentiment felt by the customer, agent, or both at specified points in the call

    • The presence or absence of a negative sentiment felt by the customer, agent, or both at specified points in the call

    • The presence or absence of a neutral sentiment felt by the customer, agent, or both at specified points in the call

    • The presence or absence of a mixed sentiment felt by the customer, the agent, or both at specified points in the call

    See Rule criteria for post-call categories for usage examples.

    " }, "SentimentValue":{ "type":"string", @@ -2506,7 +2514,7 @@ }, "OutputEncryptionKMSKeyId":{ "shape":"KMSKeyId", - "documentation":"

    The KMS key you want to use to encrypt your Call Analytics output.

    If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

    1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

    3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

    1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

    If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

    Note that the user making the request must have permission to use the specified KMS key.

    " + "documentation":"

    The KMS key you want to use to encrypt your Call Analytics output.

    If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

    1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

    3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

    1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

    If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

    Note that the role making the request must have permission to use the specified KMS key.

    " }, "DataAccessRoleArn":{ "shape":"DataAccessRoleArn", @@ -2569,7 +2577,7 @@ }, "OutputEncryptionKMSKeyId":{ "shape":"KMSKeyId", - "documentation":"

    The KMS key you want to use to encrypt your medical transcription output.

    If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

    1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

    3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

    1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

    If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

    Note that the user making the request must have permission to use the specified KMS key.

    " + "documentation":"

    The KMS key you want to use to encrypt your medical transcription output.

    If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

    1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

    3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

    1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

    If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

    Note that the role making the request must have permission to use the specified KMS key.

    " }, "KMSEncryptionContext":{ "shape":"KMSEncryptionContextMap", @@ -2643,7 +2651,7 @@ }, "OutputEncryptionKMSKeyId":{ "shape":"KMSKeyId", - "documentation":"

    The KMS key you want to use to encrypt your transcription output.

    If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

    1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

    3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

    1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

    If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

    Note that the user making the request must have permission to use the specified KMS key.

    " + "documentation":"

    The KMS key you want to use to encrypt your transcription output.

    If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

    1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

    3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

    1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

    If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

    If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

    Note that the role making the request must have permission to use the specified KMS key.

    " }, "KMSEncryptionContext":{ "shape":"KMSEncryptionContextMap", @@ -2877,7 +2885,7 @@ "documentation":"

    Specify the phrases that you want to flag.

    " } }, - "documentation":"

    Flag the presence or absence of specific words or phrases detected in your Call Analytics transcription output.

    Rules using TranscriptFilter are designed to match:

    • Custom words or phrases spoken by the agent, the customer, or both

    • Custom words or phrases not spoken by the agent, the customer, or either

    • Custom words or phrases that occur at a specific time frame

    See Rule criteria for batch categories and Rule criteria for streaming categories for usage examples.

    " + "documentation":"

    Flag the presence or absence of specific words or phrases detected in your Call Analytics transcription output.

    Rules using TranscriptFilter are designed to match:

    • Custom words or phrases spoken by the agent, the customer, or both

    • Custom words or phrases not spoken by the agent, the customer, or either

    • Custom words or phrases that occur at a specific time frame

    See Rule criteria for post-call categories and Rule criteria for streaming categories for usage examples.

    " }, "TranscriptFilterType":{ "type":"string", @@ -3105,7 +3113,7 @@ }, "InputType":{ "shape":"InputType", - "documentation":"

    Choose whether you want to update a streaming or a batch Call Analytics category. The input type you specify must match the input type specified when the category was created. For example, if you created a category with the POST_CALL input type, you must use POST_CALL as the input type when updating this category.

    " + "documentation":"

    Choose whether you want to update a real-time or a post-call category. The input type you specify must match the input type specified when the category was created. For example, if you created a category with the POST_CALL input type, you must use POST_CALL as the input type when updating this category.

    " } } }, @@ -3176,6 +3184,10 @@ "VocabularyFilterFileUri":{ "shape":"Uri", "documentation":"

    The Amazon S3 location of the text file that contains your custom vocabulary filter terms. The URI must be located in the same Amazon Web Services Region as the resource you're calling.

    Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-filter-file.txt

    Note that if you include VocabularyFilterFileUri in your request, you cannot use Words; you must choose one or the other.

    " + }, + "DataAccessRoleArn":{ + "shape":"DataAccessRoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files (in this case, your custom vocabulary filter). If the role that you specify doesn’t have the appropriate permissions to access the specified Amazon S3 location, your request fails.

    IAM role ARNs have the format arn:partition:iam::account:role/role-name-with-path. For example: arn:aws:iam::111122223333:role/Admin.

    For more information, see IAM ARNs.

    " } } }, @@ -3218,6 +3230,10 @@ "VocabularyFileUri":{ "shape":"Uri", "documentation":"

    The Amazon S3 location of the text file that contains your custom vocabulary. The URI must be located in the same Amazon Web Services Region as the resource you're calling.

    Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-file.txt

    Note that if you include VocabularyFileUri in your request, you cannot use the Phrases flag; you must choose one or the other.

    " + }, + "DataAccessRoleArn":{ + "shape":"DataAccessRoleArn", + "documentation":"

    The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files (in this case, your custom vocabulary). If the role that you specify doesn’t have the appropriate permissions to access the specified Amazon S3 location, your request fails.

    IAM role ARNs have the format arn:partition:iam::account:role/role-name-with-path. For example: arn:aws:iam::111122223333:role/Admin.

    For more information, see IAM ARNs.

    " } } }, diff --git a/services/transcribestreaming/pom.xml b/services/transcribestreaming/pom.xml index f52c9d48e89c..ae5ce1f537d4 100644 --- a/services/transcribestreaming/pom.xml +++ b/services/transcribestreaming/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT transcribestreaming AWS Java SDK :: Services :: AWS Transcribe Streaming diff --git a/services/transfer/pom.xml b/services/transfer/pom.xml index 21028085f866..2ba36e7b9509 100644 --- a/services/transfer/pom.xml +++ b/services/transfer/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT transfer AWS Java SDK :: Services :: Transfer diff --git a/services/translate/pom.xml b/services/translate/pom.xml index 52ac7c9b6285..8e7324aecfa7 100644 --- a/services/translate/pom.xml +++ b/services/translate/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 translate diff --git a/services/voiceid/pom.xml b/services/voiceid/pom.xml index ac5b684f4c60..b29e81223429 100644 --- a/services/voiceid/pom.xml +++ b/services/voiceid/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT voiceid AWS Java SDK :: Services :: Voice ID diff --git a/services/voiceid/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/voiceid/src/main/resources/codegen-resources/endpoint-rule-set.json index 05df81da9808..4405db0b24e9 100644 --- a/services/voiceid/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/voiceid/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voiceid-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voiceid-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://voiceid-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voiceid.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://voiceid-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://voiceid.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://voiceid.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://voiceid.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/voiceid/src/main/resources/codegen-resources/endpoint-tests.json b/services/voiceid/src/main/resources/codegen-resources/endpoint-tests.json index d89b71bb0e90..07cfaef5945b 100644 --- a/services/voiceid/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/voiceid/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,423 +1,351 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://voiceid-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.ap-south-1.amazonaws.com" + "url": "https://voiceid.ap-northeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://voiceid.ap-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "ap-south-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.ap-south-1.amazonaws.com" + "url": "https://voiceid.ap-southeast-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-south-1", - "UseFIPS": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://voiceid-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.eu-central-1.amazonaws.com" + "url": "https://voiceid.ap-southeast-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.eu-central-1.api.aws" + "url": "https://voiceid.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "eu-central-1", - "UseFIPS": false + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.eu-central-1.amazonaws.com" + "url": "https://voiceid.eu-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "eu-central-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "eu-west-2" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.us-west-2.api.aws" + "url": "https://voiceid.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": true + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.us-west-2.amazonaws.com" + "url": "https://voiceid.us-west-2.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-west-2" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://voiceid.us-west-2.api.aws" + "url": "https://voiceid-fips.us-east-1.api.aws" } }, "params": { "UseDualStack": true, - "Region": "us-west-2", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.us-west-2.amazonaws.com" + "url": "https://voiceid-fips.us-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "us-west-2", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.eu-west-2.api.aws" + "url": "https://voiceid.us-east-1.api.aws" } }, "params": { "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": true - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://voiceid-fips.eu-west-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://voiceid.eu-west-2.api.aws" + "url": "https://voiceid-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, - "Region": "eu-west-2", - "UseFIPS": false + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.eu-west-2.amazonaws.com" + "url": "https://voiceid-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "Region": "eu-west-2", - "UseFIPS": false + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.ap-northeast-1.api.aws" + "url": "https://voiceid.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.ap-northeast-1.amazonaws.com" + "url": "https://voiceid.cn-north-1.amazonaws.com.cn" } }, "params": { "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://voiceid.ap-northeast-1.api.aws" + "url": "https://voiceid-fips.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, - "Region": "ap-northeast-1", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.ap-northeast-1.amazonaws.com" + "url": "https://voiceid-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-northeast-1", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.ap-southeast-1.api.aws" + "url": "https://voiceid.us-gov-east-1.api.aws" } }, "params": { "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.ap-southeast-1.amazonaws.com" + "url": "https://voiceid.us-gov-east-1.amazonaws.com" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://voiceid.ap-southeast-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseDualStack": true, - "Region": "ap-southeast-1", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.ap-southeast-1.amazonaws.com" + "url": "https://voiceid-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-1", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://voiceid-fips.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.ap-southeast-2.amazonaws.com" + "url": "https://voiceid.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://voiceid.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseDualStack": true, - "Region": "ap-southeast-2", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid.ap-southeast-2.amazonaws.com" + "url": "https://voiceid-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, - "Region": "ap-southeast-2", - "UseFIPS": false + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://voiceid-fips.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": true + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://voiceid-fips.us-east-1.amazonaws.com" + "url": "https://voiceid.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseDualStack": false, - "Region": "us-east-1", - "UseFIPS": true - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://voiceid.us-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "Region": "us-east-1", - "UseFIPS": false + "UseFIPS": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://voiceid.us-east-1.amazonaws.com" + "url": "https://example.com" } }, "params": { "UseDualStack": false, + "UseFIPS": false, "Region": "us-east-1", - "UseFIPS": false + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -425,7 +353,6 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": false, "Endpoint": "https://example.com" } @@ -437,8 +364,8 @@ }, "params": { "UseDualStack": false, - "Region": "us-east-1", "UseFIPS": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -449,10 +376,16 @@ }, "params": { "UseDualStack": true, - "Region": "us-east-1", "UseFIPS": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/voiceid/src/main/resources/codegen-resources/paginators-1.json b/services/voiceid/src/main/resources/codegen-resources/paginators-1.json index 8c86dd440f0a..fbb0f7a22b59 100644 --- a/services/voiceid/src/main/resources/codegen-resources/paginators-1.json +++ b/services/voiceid/src/main/resources/codegen-resources/paginators-1.json @@ -12,6 +12,12 @@ "limit_key": "MaxResults", "result_key": "JobSummaries" }, + "ListFraudsters": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "FraudsterSummaries" + }, "ListSpeakerEnrollmentJobs": { "input_token": "NextToken", "output_token": "NextToken", @@ -23,6 +29,12 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "SpeakerSummaries" + }, + "ListWatchlists": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "WatchlistSummaries" } } } diff --git a/services/voiceid/src/main/resources/codegen-resources/service-2.json b/services/voiceid/src/main/resources/codegen-resources/service-2.json index f93a1b620ba8..ed0c43ea41db 100644 --- a/services/voiceid/src/main/resources/codegen-resources/service-2.json +++ b/services/voiceid/src/main/resources/codegen-resources/service-2.json @@ -13,6 +13,25 @@ "uid":"voice-id-2021-09-27" }, "operations":{ + "AssociateFraudster":{ + "name":"AssociateFraudster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateFraudsterRequest"}, + "output":{"shape":"AssociateFraudsterResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Associates the fraudsters with the watchlist specified in the same domain.

    " + }, "CreateDomain":{ "name":"CreateDomain", "http":{ @@ -30,7 +49,27 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Creates a domain that contains all Amazon Connect Voice ID data, such as speakers, fraudsters, customer audio, and voiceprints.

    ", + "documentation":"

    Creates a domain that contains all Amazon Connect Voice ID data, such as speakers, fraudsters, customer audio, and voiceprints. Every domain is created with a default watchlist that fraudsters can be a part of.

    ", + "idempotent":true + }, + "CreateWatchlist":{ + "name":"CreateWatchlist", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWatchlistRequest"}, + "output":{"shape":"CreateWatchlistResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Creates a watchlist that fraudsters can be a part of.

    ", "idempotent":true }, "DeleteDomain":{ @@ -66,7 +105,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Deletes the specified fraudster from Voice ID.

    " + "documentation":"

    Deletes the specified fraudster from Voice ID. This action disassociates the fraudster from any watchlists it is a part of.

    " }, "DeleteSpeaker":{ "name":"DeleteSpeaker", @@ -85,6 +124,23 @@ ], "documentation":"

    Deletes the specified speaker from Voice ID.

    " }, + "DeleteWatchlist":{ + "name":"DeleteWatchlist", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWatchlistRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Deletes the specified watchlist from Voice ID. This API throws an exception when there are fraudsters in the watchlist that you are trying to delete. You must delete the fraudsters, and then delete the watchlist. Every domain has a default watchlist which cannot be deleted.

    " + }, "DescribeDomain":{ "name":"DescribeDomain", "http":{ @@ -170,6 +226,41 @@ ], "documentation":"

    Describes the specified speaker enrollment job.

    " }, + "DescribeWatchlist":{ + "name":"DescribeWatchlist", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWatchlistRequest"}, + "output":{"shape":"DescribeWatchlistResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Describes the specified watchlist.

    " + }, + "DisassociateFraudster":{ + "name":"DisassociateFraudster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateFraudsterRequest"}, + "output":{"shape":"DisassociateFraudsterResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Disassociates the fraudsters from the watchlist specified. Voice ID always expects a fraudster to be a part of at least one watchlist. If you try to disassociate a fraudster from its only watchlist, a ValidationException is thrown.

    " + }, "EvaluateSession":{ "name":"EvaluateSession", "http":{ @@ -221,6 +312,23 @@ ], "documentation":"

    Lists all the fraudster registration jobs in the domain with the given JobStatus. If JobStatus is not provided, this lists all fraudster registration jobs in the given domain.

    " }, + "ListFraudsters":{ + "name":"ListFraudsters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFraudstersRequest"}, + "output":{"shape":"ListFraudstersResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists all fraudsters in a specified watchlist or domain.

    " + }, "ListSpeakerEnrollmentJobs":{ "name":"ListSpeakerEnrollmentJobs", "http":{ @@ -272,6 +380,23 @@ ], "documentation":"

    Lists all tags associated with a specified Voice ID resource.

    " }, + "ListWatchlists":{ + "name":"ListWatchlists", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListWatchlistsRequest"}, + "output":{"shape":"ListWatchlistsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Lists all watchlists in a specified domain.

    " + }, "OptOutSpeaker":{ "name":"OptOutSpeaker", "http":{ @@ -384,6 +509,24 @@ {"shape":"AccessDeniedException"} ], "documentation":"

    Updates the specified domain. This API has clobber behavior, and clears and replaces all attributes. If an optional field, such as 'Description' is not provided, it is removed from the domain.

    " + }, + "UpdateWatchlist":{ + "name":"UpdateWatchlist", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateWatchlistRequest"}, + "output":{"shape":"UpdateWatchlistResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

    Updates the specified watchlist. Every domain has a default watchlist which cannot be updated.

    " } }, "shapes":{ @@ -405,6 +548,34 @@ "type":"string", "pattern":"^arn:aws(-[^:]+)?:voiceid.+:[0-9]{12}:domain/[a-zA-Z0-9]{22}$" }, + "AssociateFraudsterRequest":{ + "type":"structure", + "required":[ + "DomainId", + "FraudsterId", + "WatchlistId" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the fraudster.

    " + }, + "FraudsterId":{ + "shape":"FraudsterId", + "documentation":"

    The identifier of the fraudster to be associated with the watchlist.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist you want to associate with the fraudster.

    " + } + } + }, + "AssociateFraudsterResponse":{ + "type":"structure", + "members":{ + "Fraudster":{"shape":"Fraudster"} + } + }, "AuthenticationConfiguration":{ "type":"structure", "required":["AcceptanceThreshold"], @@ -433,11 +604,11 @@ "members":{ "AudioAggregationEndedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp indicating when audio aggregation ended for this authentication result.

    " + "documentation":"

    A timestamp of when audio aggregation ended for this authentication result.

    " }, "AudioAggregationStartedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp indicating when audio aggregation started for this authentication result.

    " + "documentation":"

    A timestamp of when audio aggregation started for this authentication result.

    " }, "AuthenticationResultId":{ "shape":"UniqueIdLarge", @@ -466,6 +637,7 @@ }, "documentation":"

    The authentication result produced by Voice ID, processed against the current session state and streamed audio of the speaker.

    " }, + "Boolean":{"type":"boolean"}, "ClientTokenString":{ "type":"string", "max":64, @@ -494,7 +666,9 @@ "SPEAKER_NOT_SET", "SPEAKER_OPTED_OUT", "CONCURRENT_CHANGES", - "DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES" + "DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES", + "CANNOT_DELETE_NON_EMPTY_WATCHLIST", + "FRAUDSTER_MUST_BELONG_TO_AT_LEAST_ONE_WATCHLIST" ] }, "CreateDomainRequest":{ @@ -506,12 +680,12 @@ "members":{ "ClientToken":{ "shape":"ClientTokenString", - "documentation":"

    The idempotency token for creating a new domain. If not provided, Amazon Web Services SDK populates this field.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "Description":{ "shape":"Description", - "documentation":"

    A brief description of the domain.

    " + "documentation":"

    A brief description of this domain.

    " }, "Name":{ "shape":"DomainName", @@ -536,6 +710,41 @@ } } }, + "CreateWatchlistRequest":{ + "type":"structure", + "required":[ + "DomainId", + "Name" + ], + "members":{ + "ClientToken":{ + "shape":"ClientTokenString", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", + "idempotencyToken":true + }, + "Description":{ + "shape":"WatchlistDescription", + "documentation":"

    A brief description of this watchlist.

    " + }, + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the watchlist.

    " + }, + "Name":{ + "shape":"WatchlistName", + "documentation":"

    The name of the watchlist.

    " + } + } + }, + "CreateWatchlistResponse":{ + "type":"structure", + "members":{ + "Watchlist":{ + "shape":"Watchlist", + "documentation":"

    Information about the newly created watchlist.

    " + } + } + }, "CustomerSpeakerId":{ "type":"string", "max":256, @@ -562,7 +771,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the fraudster.

    " + "documentation":"

    The identifier of the domain that contains the fraudster.

    " }, "FraudsterId":{ "shape":"FraudsterId", @@ -579,7 +788,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the speaker.

    " + "documentation":"

    The identifier of the domain that contains the speaker.

    " }, "SpeakerId":{ "shape":"SpeakerId", @@ -587,13 +796,30 @@ } } }, + "DeleteWatchlistRequest":{ + "type":"structure", + "required":[ + "DomainId", + "WatchlistId" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the watchlist.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist to be deleted.

    " + } + } + }, "DescribeDomainRequest":{ "type":"structure", "required":["DomainId"], "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain you are describing.

    " + "documentation":"

    The identifier of the domain that you are describing.

    " } } }, @@ -615,11 +841,11 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier for the domain containing the fraudster registration job.

    " + "documentation":"

    The identifier of the domain that contains the fraudster registration job.

    " }, "JobId":{ "shape":"JobId", - "documentation":"

    The identifier for the fraudster registration job you are describing.

    " + "documentation":"

    The identifier of the fraudster registration job you are describing.

    " } } }, @@ -641,7 +867,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the fraudster.

    " + "documentation":"

    The identifier of the domain that contains the fraudster.

    " }, "FraudsterId":{ "shape":"FraudsterId", @@ -667,7 +893,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the speaker enrollment job.

    " + "documentation":"

    The identifier of the domain that contains the speaker enrollment job.

    " }, "JobId":{ "shape":"JobId", @@ -710,6 +936,32 @@ } } }, + "DescribeWatchlistRequest":{ + "type":"structure", + "required":[ + "DomainId", + "WatchlistId" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the watchlist.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist that you are describing.

    " + } + } + }, + "DescribeWatchlistResponse":{ + "type":"structure", + "members":{ + "Watchlist":{ + "shape":"Watchlist", + "documentation":"

    Information about the specified watchlist.

    " + } + } + }, "Description":{ "type":"string", "max":1024, @@ -717,6 +969,34 @@ "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$", "sensitive":true }, + "DisassociateFraudsterRequest":{ + "type":"structure", + "required":[ + "DomainId", + "FraudsterId", + "WatchlistId" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the fraudster.

    " + }, + "FraudsterId":{ + "shape":"FraudsterId", + "documentation":"

    The identifier of the fraudster to be disassociated from the watchlist.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist that you want to disassociate from the fraudster.

    " + } + } + }, + "DisassociateFraudsterResponse":{ + "type":"structure", + "members":{ + "Fraudster":{"shape":"Fraudster"} + } + }, "Domain":{ "type":"structure", "members":{ @@ -726,15 +1006,15 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    The timestamp at which the domain is created.

    " + "documentation":"

    The timestamp of when the domain was created.

    " }, "Description":{ "shape":"Description", - "documentation":"

    The client-provided description of the domain.

    " + "documentation":"

    The description of the domain.

    " }, "DomainId":{ "shape":"DomainId", - "documentation":"

    The service-generated identifier for the domain.

    " + "documentation":"

    The identifier of the domain.

    " }, "DomainStatus":{ "shape":"DomainStatus", @@ -742,7 +1022,7 @@ }, "Name":{ "shape":"DomainName", - "documentation":"

    The client-provided name for the domain.

    " + "documentation":"

    The name for the domain.

    " }, "ServerSideEncryptionConfiguration":{ "shape":"ServerSideEncryptionConfiguration", @@ -754,7 +1034,11 @@ }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

    The timestamp showing the domain's last update.

    " + "documentation":"

    The timestamp of when the domain was last update.

    " + }, + "WatchlistDetails":{ + "shape":"WatchlistDetails", + "documentation":"

    The watchlist details of a domain. Contains the default watchlist ID of the domain.

    " } }, "documentation":"

    Contains all the information about a domain.

    " @@ -793,15 +1077,15 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    The timestamp showing when the domain is created.

    " + "documentation":"

    The timestamp of when the domain was created.

    " }, "Description":{ "shape":"Description", - "documentation":"

    The client-provided description of the domain.

    " + "documentation":"

    The description of the domain.

    " }, "DomainId":{ "shape":"DomainId", - "documentation":"

    The service-generated identifier for the domain.

    " + "documentation":"

    The identifier of the domain.

    " }, "DomainStatus":{ "shape":"DomainStatus", @@ -821,7 +1105,11 @@ }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

    The timestamp showing the domain's last update.

    " + "documentation":"

    The timestamp of when the domain was last updated.

    " + }, + "WatchlistDetails":{ + "shape":"WatchlistDetails", + "documentation":"

    Provides information about watchlistDetails and DefaultWatchlistID.

    " } }, "documentation":"

    Contains a summary of information about a domain.

    " @@ -857,9 +1145,19 @@ "RiskThreshold":{ "shape":"Score", "documentation":"

    Threshold value for determining whether the speaker is a high risk to be fraudulent. If the detected risk score calculated by Voice ID is greater than or equal to the threshold, the speaker is considered a fraudster.

    " + }, + "WatchlistIds":{ + "shape":"EnrollmentJobFraudDetectionConfigWatchlistIds", + "documentation":"

    The identifier of watchlists against which fraud detection is performed.

    " } }, - "documentation":"

    The configuration defining the action to take when a speaker is flagged by the fraud detection system during a batch speaker enrollment job, and the risk threshold to use for identification.

    " + "documentation":"

    The fraud detection configuration to be used during the batch speaker enrollment job.

    " + }, + "EnrollmentJobFraudDetectionConfigWatchlistIds":{ + "type":"list", + "member":{"shape":"WatchlistId"}, + "max":1, + "min":1 }, "EvaluateSessionRequest":{ "type":"structure", @@ -887,7 +1185,7 @@ }, "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the session.

    " + "documentation":"

    The identifier of the domain that contains the session.

    " }, "FraudDetectionResult":{ "shape":"FraudDetectionResult", @@ -937,11 +1235,14 @@ }, "FraudDetectionConfiguration":{ "type":"structure", - "required":["RiskThreshold"], "members":{ "RiskThreshold":{ "shape":"Score", "documentation":"

    Threshold value for determining whether the speaker is a fraudster. If the detected risk score calculated by Voice ID is higher than the threshold, the speaker is considered a fraudster.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist against which fraud detection is performed.

    " } }, "documentation":"

    The configuration used for performing fraud detection over a speaker during a session.

    " @@ -972,11 +1273,11 @@ "members":{ "AudioAggregationEndedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp indicating when audio aggregation ended for this fraud detection result.

    " + "documentation":"

    A timestamp of when audio aggregation ended for this fraud detection result.

    " }, "AudioAggregationStartedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp indicating when audio aggregation started for this fraud detection result.

    " + "documentation":"

    A timestamp of when audio aggregation started for this fraud detection result.

    " }, "Configuration":{ "shape":"FraudDetectionConfiguration", @@ -1024,15 +1325,19 @@ "members":{ "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    The timestamp when Voice ID identified the fraudster.

    " + "documentation":"

    The timestamp of when Voice ID identified the fraudster.

    " }, "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier for the domain containing the fraudster.

    " + "documentation":"

    The identifier of the domain that contains the fraudster.

    " }, "GeneratedFraudsterId":{ "shape":"GeneratedFraudsterId", "documentation":"

    The service-generated identifier for the fraudster.

    " + }, + "WatchlistIds":{ + "shape":"ResponseWatchlistIds", + "documentation":"

    The identifier of the watchlists the fraudster is a part of.

    " } }, "documentation":"

    Contains all the information about a fraudster.

    " @@ -1049,7 +1354,7 @@ "members":{ "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing the creation time of the fraudster registration job.

    " + "documentation":"

    A timestamp of when the fraudster registration job was created.

    " }, "DataAccessRoleArn":{ "shape":"IamRoleArn", @@ -1057,11 +1362,11 @@ }, "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the fraudster registration job.

    " + "documentation":"

    The identifier of the domain that contains the fraudster registration job.

    " }, "EndedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing when the fraudster registration job ended.

    " + "documentation":"

    A timestamp of when the fraudster registration job ended.

    " }, "FailureDetails":{ "shape":"FailureDetails", @@ -1117,15 +1422,15 @@ "members":{ "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing when the fraudster registration job is created.

    " + "documentation":"

    A timestamp of when the fraudster registration job was created.

    " }, "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the fraudster registration job.

    " + "documentation":"

    The identifier of the domain that contains the fraudster registration job.

    " }, "EndedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing when the fraudster registration job ended.

    " + "documentation":"

    A timestamp of when the fraudster registration job ended.

    " }, "FailureDetails":{ "shape":"FailureDetails", @@ -1150,6 +1455,32 @@ }, "documentation":"

    Contains a summary of information about a fraudster registration job.

    " }, + "FraudsterSummaries":{ + "type":"list", + "member":{"shape":"FraudsterSummary"} + }, + "FraudsterSummary":{ + "type":"structure", + "members":{ + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

    The timestamp of when the fraudster summary was created.

    " + }, + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the fraudster summary.

    " + }, + "GeneratedFraudsterId":{ + "shape":"GeneratedFraudsterId", + "documentation":"

    The service-generated identifier for the fraudster.

    " + }, + "WatchlistIds":{ + "shape":"ResponseWatchlistIds", + "documentation":"

    The identifier of the watchlists the fraudster is a part of.

    " + } + }, + "documentation":"

    Contains a summary of information about a fraudster.

    " + }, "GeneratedFraudsterId":{ "type":"string", "max":25, @@ -1240,11 +1571,11 @@ "members":{ "MaxResults":{ "shape":"MaxResultsForListDomainFe", - "documentation":"

    The maximum number of domains to list per API call.

    " + "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " } } }, @@ -1257,7 +1588,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " } } }, @@ -1267,7 +1598,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the fraudster registration Jobs.

    " + "documentation":"

    The identifier of the domain that contains the fraudster registration Jobs.

    " }, "JobStatus":{ "shape":"FraudsterRegistrationJobStatus", @@ -1275,11 +1606,11 @@ }, "MaxResults":{ "shape":"MaxResultsForList", - "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain further pages of results. The default is 100; the maximum allowed page size is also 100.

    " + "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " } } }, @@ -1290,6 +1621,41 @@ "shape":"FraudsterRegistrationJobSummaries", "documentation":"

    A list containing details about each specified fraudster registration job.

    " }, + "NextToken":{ + "shape":"String", + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + } + } + }, + "ListFraudstersRequest":{ + "type":"structure", + "required":["DomainId"], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain.

    " + }, + "MaxResults":{ + "shape":"MaxResultsForList", + "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist. If provided, all fraudsters in the watchlist are listed. If not provided, all fraudsters in the domain are listed.

    " + } + } + }, + "ListFraudstersResponse":{ + "type":"structure", + "members":{ + "FraudsterSummaries":{ + "shape":"FraudsterSummaries", + "documentation":"

    A list that contains details about each fraudster in the Amazon Web Services account.

    " + }, "NextToken":{ "shape":"String", "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " @@ -1302,7 +1668,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the speaker enrollment jobs.

    " + "documentation":"

    The identifier of the domain that contains the speaker enrollment jobs.

    " }, "JobStatus":{ "shape":"SpeakerEnrollmentJobStatus", @@ -1310,11 +1676,11 @@ }, "MaxResults":{ "shape":"MaxResultsForList", - "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain further pages of results. The default is 100; the maximum allowed page size is also 100.

    " + "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " } } }, @@ -1341,11 +1707,11 @@ }, "MaxResults":{ "shape":"MaxResultsForList", - "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain further pages of results. The default is 100; the maximum allowed page size is also 100.

    " + "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100.

    " }, "NextToken":{ "shape":"NextToken", - "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " } } }, @@ -1381,6 +1747,37 @@ } } }, + "ListWatchlistsRequest":{ + "type":"structure", + "required":["DomainId"], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain.

    " + }, + "MaxResults":{ + "shape":"MaxResultsForList", + "documentation":"

    The maximum number of results that are returned per call. You can use NextToken to obtain more pages of results. The default is 100; the maximum allowed page size is also 100.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + } + } + }, + "ListWatchlistsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

    If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

    " + }, + "WatchlistSummaries":{ + "shape":"WatchlistSummaries", + "documentation":"

    A list that contains details about each watchlist in the Amazon Web Services account.

    " + } + } + }, "MaxResultsForList":{ "type":"integer", "box":true, @@ -1408,7 +1805,7 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the speaker.

    " + "documentation":"

    The identifier of the domain that contains the speaker.

    " }, "SpeakerId":{ "shape":"SpeakerId", @@ -1450,9 +1847,19 @@ "FraudsterSimilarityThreshold":{ "shape":"Score", "documentation":"

    The minimum similarity score between the new and old fraudsters in order to consider the new fraudster a duplicate.

    " + }, + "WatchlistIds":{ + "shape":"RegistrationConfigWatchlistIds", + "documentation":"

    The identifiers of watchlists that a fraudster is registered to. If a watchlist isn't provided, the fraudsters are registered to the default watchlist.

    " } }, - "documentation":"

    The configuration defining the action to take when a duplicate fraudster is detected, and the similarity threshold to use for detecting a duplicate fraudster during a batch fraudster registration job.

    " + "documentation":"

    The registration configuration to be used during the batch fraudster registration job.

    " + }, + "RegistrationConfigWatchlistIds":{ + "type":"list", + "member":{"shape":"WatchlistId"}, + "max":1, + "min":1 }, "ResourceNotFoundException":{ "type":"structure", @@ -1474,9 +1881,14 @@ "DOMAIN", "FRAUDSTER", "SESSION", - "SPEAKER" + "SPEAKER", + "WATCHLIST" ] }, + "ResponseWatchlistIds":{ + "type":"list", + "member":{"shape":"WatchlistId"} + }, "S3Uri":{ "type":"string", "max":1024, @@ -1557,7 +1969,7 @@ "members":{ "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing when the speaker is created.

    " + "documentation":"

    A timestamp of when the speaker was created.

    " }, "CustomerSpeakerId":{ "shape":"CustomerSpeakerId", @@ -1573,7 +1985,7 @@ }, "LastAccessedAt":{ "shape":"Timestamp", - "documentation":"

    The timestamp when the speaker was last accessed for enrollment, re-enrollment or a successful authentication. This timestamp is accurate to one hour.

    " + "documentation":"

    The timestamp of when the speaker was last accessed for enrollment, re-enrollment or a successful authentication. This timestamp is accurate to one hour.

    " }, "Status":{ "shape":"SpeakerStatus", @@ -1581,7 +1993,7 @@ }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing the speaker's last update.

    " + "documentation":"

    A timestamp of the speaker's last update.

    " } }, "documentation":"

    Contains all the information about a speaker.

    " @@ -1591,7 +2003,7 @@ "members":{ "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing the creation of the speaker enrollment job.

    " + "documentation":"

    A timestamp of when the speaker enrollment job was created.

    " }, "DataAccessRoleArn":{ "shape":"IamRoleArn", @@ -1603,7 +2015,7 @@ }, "EndedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing when the speaker enrollment job ended.

    " + "documentation":"

    A timestamp of when the speaker enrollment job ended.

    " }, "EnrollmentConfig":{ "shape":"EnrollmentConfig", @@ -1659,7 +2071,7 @@ "members":{ "CreatedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing the creation time of the speaker enrollment job.

    " + "documentation":"

    A timestamp of when of the speaker enrollment job was created.

    " }, "DomainId":{ "shape":"DomainId", @@ -1667,7 +2079,7 @@ }, "EndedAt":{ "shape":"Timestamp", - "documentation":"

    A timestamp showing when the speaker enrollment job ended.

    " + "documentation":"

    A timestamp of when the speaker enrollment job ended.

    " }, "FailureDetails":{ "shape":"FailureDetails", @@ -1757,7 +2169,7 @@ "members":{ "ClientToken":{ "shape":"ClientTokenString", - "documentation":"

    The idempotency token for starting a new fraudster registration job. If not provided, Amazon Web Services SDK populates this field.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "DataAccessRoleArn":{ @@ -1766,7 +2178,7 @@ }, "DomainId":{ "shape":"DomainId", - "documentation":"

    The identifier of the domain containing the fraudster registration job and in which the fraudsters are registered.

    " + "documentation":"

    The identifier of the domain that contains the fraudster registration job and in which the fraudsters are registered.

    " }, "InputDataConfig":{ "shape":"InputDataConfig", @@ -1806,7 +2218,7 @@ "members":{ "ClientToken":{ "shape":"ClientTokenString", - "documentation":"

    The idempotency token for starting a new speaker enrollment Job. If not provided, Amazon Web Services SDK populates this field.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "DataAccessRoleArn":{ @@ -1969,7 +2381,7 @@ "members":{ "Description":{ "shape":"Description", - "documentation":"

    A brief description of the domain.

    " + "documentation":"

    A brief description about this domain.

    " }, "DomainId":{ "shape":"DomainId", @@ -1994,6 +2406,40 @@ } } }, + "UpdateWatchlistRequest":{ + "type":"structure", + "required":[ + "DomainId", + "WatchlistId" + ], + "members":{ + "Description":{ + "shape":"WatchlistDescription", + "documentation":"

    A brief description about this watchlist.

    " + }, + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the watchlist.

    " + }, + "Name":{ + "shape":"WatchlistName", + "documentation":"

    The name of the watchlist.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist to be updated.

    " + } + } + }, + "UpdateWatchlistResponse":{ + "type":"structure", + "members":{ + "Watchlist":{ + "shape":"Watchlist", + "documentation":"

    Details about the updated watchlist.

    " + } + } + }, "ValidationException":{ "type":"structure", "members":{ @@ -2012,7 +2458,110 @@ } }, "documentation":"

    The details resulting from 'Voice Spoofing Risk' analysis of the speaker.

    " + }, + "Watchlist":{ + "type":"structure", + "members":{ + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

    The timestamp of when the watchlist was created.

    " + }, + "DefaultWatchlist":{ + "shape":"Boolean", + "documentation":"

    Whether the specified watchlist is the default watchlist of a domain.

    " + }, + "Description":{ + "shape":"WatchlistDescription", + "documentation":"

    The description of the watchlist.

    " + }, + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the watchlist.

    " + }, + "Name":{ + "shape":"WatchlistName", + "documentation":"

    The name for the watchlist.

    " + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The timestamp of when the watchlist was updated.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist.

    " + } + }, + "documentation":"

    Contains all the information about a watchlist.

    " + }, + "WatchlistDescription":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$", + "sensitive":true + }, + "WatchlistDetails":{ + "type":"structure", + "required":["DefaultWatchlistId"], + "members":{ + "DefaultWatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the default watchlist.

    " + } + }, + "documentation":"

    Details of the watchlists in a domain.

    " + }, + "WatchlistId":{ + "type":"string", + "max":22, + "min":22, + "pattern":"^[a-zA-Z0-9]{22}$" + }, + "WatchlistName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[a-zA-Z0-9][a-zA-Z0-9_-]*$", + "sensitive":true + }, + "WatchlistSummaries":{ + "type":"list", + "member":{"shape":"WatchlistSummary"} + }, + "WatchlistSummary":{ + "type":"structure", + "members":{ + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

    The timestamp of when the watchlist was created.

    " + }, + "DefaultWatchlist":{ + "shape":"Boolean", + "documentation":"

    Whether the specified watchlist is the default watchlist of a domain.

    " + }, + "Description":{ + "shape":"WatchlistDescription", + "documentation":"

    The description of the watchlist.

    " + }, + "DomainId":{ + "shape":"DomainId", + "documentation":"

    The identifier of the domain that contains the watchlist.

    " + }, + "Name":{ + "shape":"WatchlistName", + "documentation":"

    The name for the watchlist.

    " + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The timestamp of when the watchlist was last updated.

    " + }, + "WatchlistId":{ + "shape":"WatchlistId", + "documentation":"

    The identifier of the watchlist.

    " + } + }, + "documentation":"

    Contains a summary of information about a watchlist.

    " } }, - "documentation":"

    Amazon Connect Voice ID provides real-time caller authentication and fraud screening. This guide describes the APIs used for this service.

    " + "documentation":"

    Amazon Connect Voice ID provides real-time caller authentication and fraud risk detection, which make voice interactions in contact centers more secure and efficient.

    " } diff --git a/services/vpclattice/pom.xml b/services/vpclattice/pom.xml new file mode 100644 index 000000000000..ce786f6cc537 --- /dev/null +++ b/services/vpclattice/pom.xml @@ -0,0 +1,60 @@ + + + + + 4.0.0 + + software.amazon.awssdk + services + 2.20.47-SNAPSHOT + + vpclattice + AWS Java SDK :: Services :: VPC Lattice + The AWS Java SDK for VPC Lattice module holds the client classes that are used for + communicating with VPC Lattice. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.vpclattice + + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + diff --git a/services/vpclattice/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/vpclattice/src/main/resources/codegen-resources/endpoint-rule-set.json new file mode 100644 index 000000000000..a5c3af9ab091 --- /dev/null +++ b/services/vpclattice/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://vpc-lattice-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://vpc-lattice-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://vpc-lattice.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://vpc-lattice.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/services/vpclattice/src/main/resources/codegen-resources/endpoint-tests.json b/services/vpclattice/src/main/resources/codegen-resources/endpoint-tests.json new file mode 100644 index 000000000000..79667cf0d608 --- /dev/null +++ b/services/vpclattice/src/main/resources/codegen-resources/endpoint-tests.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://vpc-lattice.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/services/vpclattice/src/main/resources/codegen-resources/paginators-1.json b/services/vpclattice/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..3727cc35f0bf --- /dev/null +++ b/services/vpclattice/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,58 @@ +{ + "pagination": { + "ListAccessLogSubscriptions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListListeners": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListRules": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListServiceNetworkServiceAssociations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListServiceNetworkVpcAssociations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListServiceNetworks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListServices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListTargetGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListTargets": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + } + } +} diff --git a/services/vpclattice/src/main/resources/codegen-resources/service-2.json b/services/vpclattice/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..ebe3eab26a38 --- /dev/null +++ b/services/vpclattice/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,4824 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-11-30", + "endpointPrefix":"vpc-lattice", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon VPC Lattice", + "serviceId":"VPC Lattice", + "signatureVersion":"v4", + "signingName":"vpc-lattice", + "uid":"vpc-lattice-2022-11-30" + }, + "operations":{ + "BatchUpdateRule":{ + "name":"BatchUpdateRule", + "http":{ + "method":"PATCH", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}/rules", + "responseCode":200 + }, + "input":{"shape":"BatchUpdateRuleRequest"}, + "output":{"shape":"BatchUpdateRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates the listener rules in a batch. You can use this operation to change the priority of listener rules. This can be useful when bulk updating or swapping rule priority.

    ", + "idempotent":true + }, + "CreateAccessLogSubscription":{ + "name":"CreateAccessLogSubscription", + "http":{ + "method":"POST", + "requestUri":"/accesslogsubscriptions", + "responseCode":201 + }, + "input":{"shape":"CreateAccessLogSubscriptionRequest"}, + "output":{"shape":"CreateAccessLogSubscriptionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Enables access logs to be sent to Amazon CloudWatch, Amazon S3, and Amazon Kinesis Data Firehose. The service network owner can use the access logs to audit the services in the network. The service network owner will only see access logs from clients and services that are associated with their service network. Access log entries represent traffic originated from VPCs associated with that network. For more information, see Access logs in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "CreateListener":{ + "name":"CreateListener", + "http":{ + "method":"POST", + "requestUri":"/services/{serviceIdentifier}/listeners", + "responseCode":201 + }, + "input":{"shape":"CreateListenerRequest"}, + "output":{"shape":"CreateListenerResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Creates a listener for a service. Before you start using your Amazon VPC Lattice service, you must add one or more listeners. A listener is a process that checks for connection requests to your services. For more information, see Listeners in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "CreateRule":{ + "name":"CreateRule", + "http":{ + "method":"POST", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}/rules", + "responseCode":201 + }, + "input":{"shape":"CreateRuleRequest"}, + "output":{"shape":"CreateRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Creates a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. For more information, see Listener rules in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "CreateService":{ + "name":"CreateService", + "http":{ + "method":"POST", + "requestUri":"/services", + "responseCode":201 + }, + "input":{"shape":"CreateServiceRequest"}, + "output":{"shape":"CreateServiceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Creates a service. A service is any software application that can run on instances containers, or serverless functions within an account or virtual private cloud (VPC).

    For more information, see Services in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "CreateServiceNetwork":{ + "name":"CreateServiceNetwork", + "http":{ + "method":"POST", + "requestUri":"/servicenetworks", + "responseCode":201 + }, + "input":{"shape":"CreateServiceNetworkRequest"}, + "output":{"shape":"CreateServiceNetworkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Creates a service network. A service network is a logical boundary for a collection of services. You can associate services and VPCs with a service network.

    For more information, see Service networks in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "CreateServiceNetworkServiceAssociation":{ + "name":"CreateServiceNetworkServiceAssociation", + "http":{ + "method":"POST", + "requestUri":"/servicenetworkserviceassociations", + "responseCode":200 + }, + "input":{"shape":"CreateServiceNetworkServiceAssociationRequest"}, + "output":{"shape":"CreateServiceNetworkServiceAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Associates a service with a service network.

    You can't use this operation if the service and service network are already associated or if there is a disassociation or deletion in progress. If the association fails, you can retry the operation by deleting the association and recreating it.

    You cannot associate a service and service network that are shared with a caller. The caller must own either the service or the service network.

    As a result of this operation, the association is created in the service network account and the association owner account.

    ", + "idempotent":true + }, + "CreateServiceNetworkVpcAssociation":{ + "name":"CreateServiceNetworkVpcAssociation", + "http":{ + "method":"POST", + "requestUri":"/servicenetworkvpcassociations", + "responseCode":200 + }, + "input":{"shape":"CreateServiceNetworkVpcAssociationRequest"}, + "output":{"shape":"CreateServiceNetworkVpcAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Associates a VPC with a service network. When you associate a VPC with the service network, it enables all the resources within that VPC to be clients and communicate with other services in the service network. For more information, see Manage VPC associations in the Amazon VPC Lattice User Guide.

    You can't use this operation if there is a disassociation in progress. If the association fails, retry by deleting the association and recreating it.

    As a result of this operation, the association gets created in the service network account and the VPC owner account.

    If you add a security group to the service network and VPC association, the association must continue to always have at least one security group. You can add or edit security groups at any time. However, to remove all security groups, you must first delete the association and recreate it without security groups.

    ", + "idempotent":true + }, + "CreateTargetGroup":{ + "name":"CreateTargetGroup", + "http":{ + "method":"POST", + "requestUri":"/targetgroups", + "responseCode":201 + }, + "input":{"shape":"CreateTargetGroupRequest"}, + "output":{"shape":"CreateTargetGroupResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Creates a target group. A target group is a collection of targets, or compute resources, that run your application or service. A target group can only be used by a single service.

    For more information, see Target groups in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "DeleteAccessLogSubscription":{ + "name":"DeleteAccessLogSubscription", + "http":{ + "method":"DELETE", + "requestUri":"/accesslogsubscriptions/{accessLogSubscriptionIdentifier}", + "responseCode":204 + }, + "input":{"shape":"DeleteAccessLogSubscriptionRequest"}, + "output":{"shape":"DeleteAccessLogSubscriptionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes the specified access log subscription.

    ", + "idempotent":true + }, + "DeleteAuthPolicy":{ + "name":"DeleteAuthPolicy", + "http":{ + "method":"DELETE", + "requestUri":"/authpolicy/{resourceIdentifier}", + "responseCode":204 + }, + "input":{"shape":"DeleteAuthPolicyRequest"}, + "output":{"shape":"DeleteAuthPolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes the specified auth policy. If an auth is set to AWS_IAM and the auth policy is deleted, all requests will be denied by default. If you are trying to remove the auth policy completely, you must set the auth_type to NONE. If auth is enabled on the resource, but no auth policy is set, all requests will be denied.

    ", + "idempotent":true + }, + "DeleteListener":{ + "name":"DeleteListener", + "http":{ + "method":"DELETE", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}", + "responseCode":204 + }, + "input":{"shape":"DeleteListenerRequest"}, + "output":{"shape":"DeleteListenerResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes the specified listener.

    ", + "idempotent":true + }, + "DeleteResourcePolicy":{ + "name":"DeleteResourcePolicy", + "http":{ + "method":"DELETE", + "requestUri":"/resourcepolicy/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"DeleteResourcePolicyRequest"}, + "output":{"shape":"DeleteResourcePolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes the specified resource policy.

    ", + "idempotent":true + }, + "DeleteRule":{ + "name":"DeleteRule", + "http":{ + "method":"DELETE", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}/rules/{ruleIdentifier}", + "responseCode":204 + }, + "input":{"shape":"DeleteRuleRequest"}, + "output":{"shape":"DeleteRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes a listener rule. Each listener has a default rule for checking connection requests, but you can define additional rules. Each rule consists of a priority, one or more actions, and one or more conditions. You can delete additional listener rules, but you cannot delete the default rule.

    For more information, see Listener rules in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "DeleteService":{ + "name":"DeleteService", + "http":{ + "method":"DELETE", + "requestUri":"/services/{serviceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"DeleteServiceRequest"}, + "output":{"shape":"DeleteServiceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes a service. A service can't be deleted if it's associated with a service network. If you delete a service, all resources related to the service, such as the resource policy, auth policy, listeners, listener rules, and access log subscriptions, are also deleted. For more information, see Delete a service in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "DeleteServiceNetwork":{ + "name":"DeleteServiceNetwork", + "http":{ + "method":"DELETE", + "requestUri":"/servicenetworks/{serviceNetworkIdentifier}", + "responseCode":204 + }, + "input":{"shape":"DeleteServiceNetworkRequest"}, + "output":{"shape":"DeleteServiceNetworkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes a service network. You can only delete the service network if there is no service or VPC associated with it. If you delete a service network, all resources related to the service network, such as the resource policy, auth policy, and access log subscriptions, are also deleted. For more information, see Delete a service network in the Amazon VPC Lattice User Guide.

    ", + "idempotent":true + }, + "DeleteServiceNetworkServiceAssociation":{ + "name":"DeleteServiceNetworkServiceAssociation", + "http":{ + "method":"DELETE", + "requestUri":"/servicenetworkserviceassociations/{serviceNetworkServiceAssociationIdentifier}", + "responseCode":200 + }, + "input":{"shape":"DeleteServiceNetworkServiceAssociationRequest"}, + "output":{"shape":"DeleteServiceNetworkServiceAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes the association between a specified service and the specific service network. This request will fail if an association is still in progress.

    ", + "idempotent":true + }, + "DeleteServiceNetworkVpcAssociation":{ + "name":"DeleteServiceNetworkVpcAssociation", + "http":{ + "method":"DELETE", + "requestUri":"/servicenetworkvpcassociations/{serviceNetworkVpcAssociationIdentifier}", + "responseCode":200 + }, + "input":{"shape":"DeleteServiceNetworkVpcAssociationRequest"}, + "output":{"shape":"DeleteServiceNetworkVpcAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Disassociates the VPC from the service network. You can't disassociate the VPC if there is a create or update association in progress.

    ", + "idempotent":true + }, + "DeleteTargetGroup":{ + "name":"DeleteTargetGroup", + "http":{ + "method":"DELETE", + "requestUri":"/targetgroups/{targetGroupIdentifier}", + "responseCode":200 + }, + "input":{"shape":"DeleteTargetGroupRequest"}, + "output":{"shape":"DeleteTargetGroupResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deletes a target group. You can't delete a target group if it is used in a listener rule or if the target group creation is in progress.

    ", + "idempotent":true + }, + "DeregisterTargets":{ + "name":"DeregisterTargets", + "http":{ + "method":"POST", + "requestUri":"/targetgroups/{targetGroupIdentifier}/deregistertargets", + "responseCode":200 + }, + "input":{"shape":"DeregisterTargetsRequest"}, + "output":{"shape":"DeregisterTargetsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Deregisters the specified targets from the specified target group.

    ", + "idempotent":true + }, + "GetAccessLogSubscription":{ + "name":"GetAccessLogSubscription", + "http":{ + "method":"GET", + "requestUri":"/accesslogsubscriptions/{accessLogSubscriptionIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetAccessLogSubscriptionRequest"}, + "output":{"shape":"GetAccessLogSubscriptionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the specified access log subscription.

    " + }, + "GetAuthPolicy":{ + "name":"GetAuthPolicy", + "http":{ + "method":"GET", + "requestUri":"/authpolicy/{resourceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetAuthPolicyRequest"}, + "output":{"shape":"GetAuthPolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the auth policy for the specified service or service network.

    " + }, + "GetListener":{ + "name":"GetListener", + "http":{ + "method":"GET", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetListenerRequest"}, + "output":{"shape":"GetListenerResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the specified listener for the specified service.

    " + }, + "GetResourcePolicy":{ + "name":"GetResourcePolicy", + "http":{ + "method":"GET", + "requestUri":"/resourcepolicy/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"GetResourcePolicyRequest"}, + "output":{"shape":"GetResourcePolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the resource policy. The resource policy is an IAM policy created on behalf of the resource owner when they share a resource.

    " + }, + "GetRule":{ + "name":"GetRule", + "http":{ + "method":"GET", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}/rules/{ruleIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetRuleRequest"}, + "output":{"shape":"GetRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about listener rules. You can also retrieve information about the default listener rule. For more information, see Listener rules in the Amazon VPC Lattice User Guide.

    " + }, + "GetService":{ + "name":"GetService", + "http":{ + "method":"GET", + "requestUri":"/services/{serviceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetServiceRequest"}, + "output":{"shape":"GetServiceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the specified service.

    " + }, + "GetServiceNetwork":{ + "name":"GetServiceNetwork", + "http":{ + "method":"GET", + "requestUri":"/servicenetworks/{serviceNetworkIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetServiceNetworkRequest"}, + "output":{"shape":"GetServiceNetworkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the specified service network.

    " + }, + "GetServiceNetworkServiceAssociation":{ + "name":"GetServiceNetworkServiceAssociation", + "http":{ + "method":"GET", + "requestUri":"/servicenetworkserviceassociations/{serviceNetworkServiceAssociationIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetServiceNetworkServiceAssociationRequest"}, + "output":{"shape":"GetServiceNetworkServiceAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the specified association between a service network and a service.

    " + }, + "GetServiceNetworkVpcAssociation":{ + "name":"GetServiceNetworkVpcAssociation", + "http":{ + "method":"GET", + "requestUri":"/servicenetworkvpcassociations/{serviceNetworkVpcAssociationIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetServiceNetworkVpcAssociationRequest"}, + "output":{"shape":"GetServiceNetworkVpcAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the association between a service network and a VPC.

    " + }, + "GetTargetGroup":{ + "name":"GetTargetGroup", + "http":{ + "method":"GET", + "requestUri":"/targetgroups/{targetGroupIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetTargetGroupRequest"}, + "output":{"shape":"GetTargetGroupResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Retrieves information about the specified target group.

    " + }, + "ListAccessLogSubscriptions":{ + "name":"ListAccessLogSubscriptions", + "http":{ + "method":"GET", + "requestUri":"/accesslogsubscriptions", + "responseCode":200 + }, + "input":{"shape":"ListAccessLogSubscriptionsRequest"}, + "output":{"shape":"ListAccessLogSubscriptionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists all access log subscriptions for the specified service network or service.

    " + }, + "ListListeners":{ + "name":"ListListeners", + "http":{ + "method":"GET", + "requestUri":"/services/{serviceIdentifier}/listeners", + "responseCode":200 + }, + "input":{"shape":"ListListenersRequest"}, + "output":{"shape":"ListListenersResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the listeners for the specified service.

    " + }, + "ListRules":{ + "name":"ListRules", + "http":{ + "method":"GET", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}/rules", + "responseCode":200 + }, + "input":{"shape":"ListRulesRequest"}, + "output":{"shape":"ListRulesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the rules for the listener.

    " + }, + "ListServiceNetworkServiceAssociations":{ + "name":"ListServiceNetworkServiceAssociations", + "http":{ + "method":"GET", + "requestUri":"/servicenetworkserviceassociations", + "responseCode":200 + }, + "input":{"shape":"ListServiceNetworkServiceAssociationsRequest"}, + "output":{"shape":"ListServiceNetworkServiceAssociationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the associations between the service network and the service. You can filter the list either by service or service network. You must provide either the service network identifier or the service identifier.

    Every association in Amazon VPC Lattice is given a unique Amazon Resource Name (ARN), such as when a service network is associated with a VPC or when a service is associated with a service network. If the association is for a resource that is shared with another account, the association will include the local account ID as the prefix in the ARN for each account the resource is shared with.

    " + }, + "ListServiceNetworkVpcAssociations":{ + "name":"ListServiceNetworkVpcAssociations", + "http":{ + "method":"GET", + "requestUri":"/servicenetworkvpcassociations", + "responseCode":200 + }, + "input":{"shape":"ListServiceNetworkVpcAssociationsRequest"}, + "output":{"shape":"ListServiceNetworkVpcAssociationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the service network and VPC associations. You can filter the list either by VPC or service network. You must provide either the service network identifier or the VPC identifier.

    " + }, + "ListServiceNetworks":{ + "name":"ListServiceNetworks", + "http":{ + "method":"GET", + "requestUri":"/servicenetworks", + "responseCode":200 + }, + "input":{"shape":"ListServiceNetworksRequest"}, + "output":{"shape":"ListServiceNetworksResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the service networks owned by the caller account or shared with the caller account. Also includes the account ID in the ARN to show which account owns the service network.

    " + }, + "ListServices":{ + "name":"ListServices", + "http":{ + "method":"GET", + "requestUri":"/services", + "responseCode":200 + }, + "input":{"shape":"ListServicesRequest"}, + "output":{"shape":"ListServicesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the services owned by the caller account or shared with the caller account.

    " + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the tags for the specified resource.

    " + }, + "ListTargetGroups":{ + "name":"ListTargetGroups", + "http":{ + "method":"GET", + "requestUri":"/targetgroups", + "responseCode":200 + }, + "input":{"shape":"ListTargetGroupsRequest"}, + "output":{"shape":"ListTargetGroupsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists your target groups. You can narrow your search by using the filters below in your request.

    " + }, + "ListTargets":{ + "name":"ListTargets", + "http":{ + "method":"POST", + "requestUri":"/targetgroups/{targetGroupIdentifier}/listtargets", + "responseCode":200 + }, + "input":{"shape":"ListTargetsRequest"}, + "output":{"shape":"ListTargetsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Lists the targets for the target group. By default, all targets are included. You can use this API to check the health status of targets. You can also filter the results by target.

    " + }, + "PutAuthPolicy":{ + "name":"PutAuthPolicy", + "http":{ + "method":"PUT", + "requestUri":"/authpolicy/{resourceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"PutAuthPolicyRequest"}, + "output":{"shape":"PutAuthPolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Creates or updates the auth policy. The policy string in JSON must not contain newlines or blank lines.

    " + }, + "PutResourcePolicy":{ + "name":"PutResourcePolicy", + "http":{ + "method":"PUT", + "requestUri":"/resourcepolicy/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"PutResourcePolicyRequest"}, + "output":{"shape":"PutResourcePolicyResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Attaches a resource-based permission policy to a service or service network. The policy must contain the same actions and condition statements as the Amazon Web Services Resource Access Manager permission for sharing services and service networks.

    ", + "idempotent":true + }, + "RegisterTargets":{ + "name":"RegisterTargets", + "http":{ + "method":"POST", + "requestUri":"/targetgroups/{targetGroupIdentifier}/registertargets", + "responseCode":200 + }, + "input":{"shape":"RegisterTargetsRequest"}, + "output":{"shape":"RegisterTargetsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Registers the targets with the target group. If it's a Lambda target, you can only have one target in a target group.

    " + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Adds the specified tags to the specified resource.

    " + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Removes the specified tags from the specified resource.

    ", + "idempotent":true + }, + "UpdateAccessLogSubscription":{ + "name":"UpdateAccessLogSubscription", + "http":{ + "method":"PATCH", + "requestUri":"/accesslogsubscriptions/{accessLogSubscriptionIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateAccessLogSubscriptionRequest"}, + "output":{"shape":"UpdateAccessLogSubscriptionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates the specified access log subscription.

    ", + "idempotent":true + }, + "UpdateListener":{ + "name":"UpdateListener", + "http":{ + "method":"PATCH", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateListenerRequest"}, + "output":{"shape":"UpdateListenerResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates the specified listener for the specified service.

    ", + "idempotent":true + }, + "UpdateRule":{ + "name":"UpdateRule", + "http":{ + "method":"PATCH", + "requestUri":"/services/{serviceIdentifier}/listeners/{listenerIdentifier}/rules/{ruleIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateRuleRequest"}, + "output":{"shape":"UpdateRuleResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates a rule for the listener. You can't modify a default listener rule. To modify a default listener rule, use UpdateListener.

    ", + "idempotent":true + }, + "UpdateService":{ + "name":"UpdateService", + "http":{ + "method":"PATCH", + "requestUri":"/services/{serviceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateServiceRequest"}, + "output":{"shape":"UpdateServiceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates the specified service.

    " + }, + "UpdateServiceNetwork":{ + "name":"UpdateServiceNetwork", + "http":{ + "method":"PATCH", + "requestUri":"/servicenetworks/{serviceNetworkIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateServiceNetworkRequest"}, + "output":{"shape":"UpdateServiceNetworkResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates the specified service network.

    ", + "idempotent":true + }, + "UpdateServiceNetworkVpcAssociation":{ + "name":"UpdateServiceNetworkVpcAssociation", + "http":{ + "method":"PATCH", + "requestUri":"/servicenetworkvpcassociations/{serviceNetworkVpcAssociationIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateServiceNetworkVpcAssociationRequest"}, + "output":{"shape":"UpdateServiceNetworkVpcAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates the service network and VPC association. If you add a security group to the service network and VPC association, the association must continue to always have at least one security group. You can add or edit security groups at any time. However, to remove all security groups, you must first delete the association and recreate it without security groups.

    ", + "idempotent":true + }, + "UpdateTargetGroup":{ + "name":"UpdateTargetGroup", + "http":{ + "method":"PATCH", + "requestUri":"/targetgroups/{targetGroupIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateTargetGroupRequest"}, + "output":{"shape":"UpdateTargetGroupResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Updates the specified target group.

    ", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

    The user does not have sufficient access to perform this action.

    ", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccessLogDestinationArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$" + }, + "AccessLogSubscriptionArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:accesslogsubscription/als-[0-9a-z]{17}$" + }, + "AccessLogSubscriptionId":{ + "type":"string", + "max":21, + "min":21, + "pattern":"^als-[0-9a-z]{17}$" + }, + "AccessLogSubscriptionIdentifier":{ + "type":"string", + "max":2048, + "min":17, + "pattern":"^((als-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:accesslogsubscription/als-[0-9a-z]{17}))$" + }, + "AccessLogSubscriptionList":{ + "type":"list", + "member":{"shape":"AccessLogSubscriptionSummary"} + }, + "AccessLogSubscriptionSummary":{ + "type":"structure", + "required":[ + "arn", + "createdAt", + "destinationArn", + "id", + "lastUpdatedAt", + "resourceArn", + "resourceId" + ], + "members":{ + "arn":{ + "shape":"AccessLogSubscriptionArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log subscription

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the access log subscription was created, specified in ISO-8601 format.

    " + }, + "destinationArn":{ + "shape":"AccessLogDestinationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the destination.

    " + }, + "id":{ + "shape":"AccessLogSubscriptionId", + "documentation":"

    The ID of the access log subscription.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the access log subscription was last updated, specified in ISO-8601 format.

    " + }, + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service or service network.

    " + }, + "resourceId":{ + "shape":"ResourceId", + "documentation":"

    The ID of the service or service network.

    " + } + }, + "documentation":"

    Summary information about an access log subscription.

    " + }, + "AccountId":{ + "type":"string", + "max":12, + "min":1, + "pattern":"^[0-9]{12}$" + }, + "Arn":{ + "type":"string", + "max":1224, + "min":0, + "pattern":"^arn:[a-z0-9][-.a-z0-9]{0,62}:vpc-lattice:([a-z0-9][-.a-z0-9]{0,62})?:\\d{12}?:[^/].{0,1023}$" + }, + "AuthPolicyState":{ + "type":"string", + "enum":[ + "Active", + "Inactive" + ] + }, + "AuthPolicyString":{ + "type":"string", + "max":10000, + "min":0, + "pattern":"^.*\\S.*$" + }, + "AuthType":{ + "type":"string", + "enum":[ + "NONE", + "AWS_IAM" + ] + }, + "BatchUpdateRuleRequest":{ + "type":"structure", + "required":[ + "listenerIdentifier", + "rules", + "serviceIdentifier" + ], + "members":{ + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "rules":{ + "shape":"RuleUpdateList", + "documentation":"

    The rules for the specified listener.

    " + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "BatchUpdateRuleResponse":{ + "type":"structure", + "members":{ + "successful":{ + "shape":"RuleUpdateSuccessList", + "documentation":"

    The rules that were successfully updated.

    " + }, + "unsuccessful":{ + "shape":"RuleUpdateFailureList", + "documentation":"

    The rules that the operation couldn't update.

    " + } + } + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CertificateArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"^(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:certificate/[0-9a-z-]+)?$" + }, + "ClientToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[!-~]+" + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

    The resource ID.

    " + }, + "resourceType":{ + "shape":"String", + "documentation":"

    The resource type.

    " + } + }, + "documentation":"

    The request conflicts with the current state of the resource. Updating or deleting a resource can cause an inconsistent state.

    ", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateAccessLogSubscriptionRequest":{ + "type":"structure", + "required":[ + "destinationArn", + "resourceIdentifier" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "destinationArn":{ + "shape":"AccessLogDestinationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the destination. The supported destination types are CloudWatch Log groups, Kinesis Data Firehose delivery streams, and Amazon S3 buckets.

    " + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network or service.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the access log subscription.

    " + } + } + }, + "CreateAccessLogSubscriptionResponse":{ + "type":"structure", + "required":[ + "arn", + "destinationArn", + "id", + "resourceArn", + "resourceId" + ], + "members":{ + "arn":{ + "shape":"AccessLogSubscriptionArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log subscription.

    " + }, + "destinationArn":{ + "shape":"AccessLogDestinationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the log destination.

    " + }, + "id":{ + "shape":"AccessLogSubscriptionId", + "documentation":"

    The ID of the access log subscription.

    " + }, + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network or service.

    " + }, + "resourceId":{ + "shape":"ResourceId", + "documentation":"

    The ID of the service network or service.

    " + } + } + }, + "CreateListenerRequest":{ + "type":"structure", + "required":[ + "defaultAction", + "name", + "protocol", + "serviceIdentifier" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "defaultAction":{ + "shape":"RuleAction", + "documentation":"

    The action for the default rule. Each listener has a default rule. Each rule consists of a priority, one or more actions, and one or more conditions. The default rule is the rule that's used if no other rules match. Each rule must include exactly one of the following types of actions: forward or fixed-response, and it must be the last action to be performed.

    " + }, + "name":{ + "shape":"ListenerName", + "documentation":"

    The name of the listener. A listener name must be unique within a service. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The listener port. You can specify a value from 1 to 65535. For HTTP, the default is 80. For HTTPS, the default is 443.

    " + }, + "protocol":{ + "shape":"ListenerProtocol", + "documentation":"

    The listener protocol HTTP or HTTPS.

    " + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the listener.

    " + } + } + }, + "CreateListenerResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ListenerArn", + "documentation":"

    The Amazon Resource Name (ARN) of the listener.

    " + }, + "defaultAction":{ + "shape":"RuleAction", + "documentation":"

    The action for the default rule.

    " + }, + "id":{ + "shape":"ListenerId", + "documentation":"

    The ID of the listener.

    " + }, + "name":{ + "shape":"ListenerName", + "documentation":"

    The name of the listener.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The port number of the listener.

    " + }, + "protocol":{ + "shape":"ListenerProtocol", + "documentation":"

    The protocol of the listener.

    " + }, + "serviceArn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "serviceId":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + } + } + }, + "CreateRuleRequest":{ + "type":"structure", + "required":[ + "action", + "listenerIdentifier", + "match", + "name", + "priority", + "serviceIdentifier" + ], + "members":{ + "action":{ + "shape":"RuleAction", + "documentation":"

    The action for the default rule.

    " + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "match":{ + "shape":"RuleMatch", + "documentation":"

    The rule match.

    " + }, + "name":{ + "shape":"RuleName", + "documentation":"

    The name of the rule. The name must be unique within the listener. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The priority assigned to the rule. Each rule for a specific listener must have a unique priority. The lower the priority number the higher the priority.

    " + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the rule.

    " + } + } + }, + "CreateRuleResponse":{ + "type":"structure", + "members":{ + "action":{ + "shape":"RuleAction", + "documentation":"

    The rule action. Each rule must include exactly one of the following types of actions: forward or fixed-response, and it must be the last action to be performed.

    " + }, + "arn":{ + "shape":"RuleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rule.

    " + }, + "id":{ + "shape":"RuleId", + "documentation":"

    The ID of the rule.

    " + }, + "match":{ + "shape":"RuleMatch", + "documentation":"

    The rule match. The RuleMatch must be an HttpMatch. This means that the rule should be an exact match on HTTP constraints which are made up of the HTTP method, path, and header.

    " + }, + "name":{ + "shape":"RuleName", + "documentation":"

    The name of the rule.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The priority assigned to the rule. The lower the priority number the higher the priority.

    " + } + } + }, + "CreateServiceNetworkRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    • NONE: The resource does not use an IAM policy. This is the default.

    • AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is required.

    " + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "name":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the service network.

    " + } + } + }, + "CreateServiceNetworkResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    " + }, + "id":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "name":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + } + } + }, + "CreateServiceNetworkServiceAssociationRequest":{ + "type":"structure", + "required":[ + "serviceIdentifier", + "serviceNetworkIdentifier" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    " + }, + "serviceNetworkIdentifier":{ + "shape":"ServiceNetworkIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network. You must use the ARN if the resources specified in the operation are in different accounts.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the association.

    " + } + } + }, + "CreateServiceNetworkServiceAssociationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkServiceAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "createdBy":{ + "shape":"AccountId", + "documentation":"

    The account that created the association.

    " + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "dnsEntry":{ + "shape":"DnsEntry", + "documentation":"

    The DNS name of the service.

    " + }, + "id":{ + "shape":"ServiceNetworkServiceAssociationIdentifier", + "documentation":"

    The ID of the association.

    " + }, + "status":{ + "shape":"ServiceNetworkServiceAssociationStatus", + "documentation":"

    The operation's status.

    " + } + } + }, + "CreateServiceNetworkVpcAssociationRequest":{ + "type":"structure", + "required":[ + "serviceNetworkIdentifier", + "vpcIdentifier" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "securityGroupIds":{ + "shape":"CreateServiceNetworkVpcAssociationRequestSecurityGroupIdsList", + "documentation":"

    The IDs of the security groups. Security groups aren't added by default. You can add a security group to apply network level controls to control which resources in a VPC are allowed to access the service network and its services. For more information, see Control traffic to resources using security groups in the Amazon VPC User Guide.

    " + }, + "serviceNetworkIdentifier":{ + "shape":"ServiceNetworkIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network. You must use the ARN when the resources specified in the operation are in different accounts.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the association.

    " + }, + "vpcIdentifier":{ + "shape":"VpcId", + "documentation":"

    The ID of the VPC.

    " + } + } + }, + "CreateServiceNetworkVpcAssociationRequestSecurityGroupIdsList":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5, + "min":0 + }, + "CreateServiceNetworkVpcAssociationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkVpcAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "createdBy":{ + "shape":"AccountId", + "documentation":"

    The account that created the association.

    " + }, + "id":{ + "shape":"ServiceNetworkVpcAssociationId", + "documentation":"

    The ID of the association.

    " + }, + "securityGroupIds":{ + "shape":"SecurityGroupList", + "documentation":"

    The IDs of the security groups.

    " + }, + "status":{ + "shape":"ServiceNetworkVpcAssociationStatus", + "documentation":"

    The operation's status.

    " + } + } + }, + "CreateServiceRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    • NONE: The resource does not use an IAM policy. This is the default.

    • AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is required.

    " + }, + "certificateArn":{ + "shape":"CertificateArn", + "documentation":"

    The Amazon Resource Name (ARN) of the certificate.

    " + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "name":{ + "shape":"ServiceName", + "documentation":"

    The name of the service. The name must be unique within the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the service.

    " + } + } + }, + "CreateServiceResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    " + }, + "certificateArn":{ + "shape":"CertificateArn", + "documentation":"

    The Amazon Resource Name (ARN) of the certificate.

    " + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "dnsEntry":{ + "shape":"DnsEntry", + "documentation":"

    The public DNS name of the service.

    " + }, + "id":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + }, + "name":{ + "shape":"ServiceName", + "documentation":"

    The name of the service.

    " + }, + "status":{ + "shape":"ServiceStatus", + "documentation":"

    The status. If the status is CREATE_FAILED, you will have to delete and recreate the service.

    " + } + } + }, + "CreateTargetGroupRequest":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

    ", + "idempotencyToken":true + }, + "config":{ + "shape":"TargetGroupConfig", + "documentation":"

    The target group configuration. If type is set to LAMBDA, this parameter doesn't apply.

    " + }, + "name":{ + "shape":"TargetGroupName", + "documentation":"

    The name of the target group. The name must be unique within the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.

    " + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the target group.

    " + }, + "type":{ + "shape":"TargetGroupType", + "documentation":"

    The type of target group.

    " + } + } + }, + "CreateTargetGroupResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"TargetGroupArn", + "documentation":"

    The Amazon Resource Name (ARN) of the target group.

    " + }, + "config":{ + "shape":"TargetGroupConfig", + "documentation":"

    The target group configuration. If type is set to LAMBDA, this parameter doesn't apply.

    " + }, + "id":{ + "shape":"TargetGroupId", + "documentation":"

    The ID of the target group.

    " + }, + "name":{ + "shape":"TargetGroupName", + "documentation":"

    The name of the target group.

    " + }, + "status":{ + "shape":"TargetGroupStatus", + "documentation":"

    The operation's status. You can retry the operation if the status is CREATE_FAILED. However, if you retry it while the status is CREATE_IN_PROGRESS, there is no change in the status.

    " + }, + "type":{ + "shape":"TargetGroupType", + "documentation":"

    The type of target group.

    " + } + } + }, + "DeleteAccessLogSubscriptionRequest":{ + "type":"structure", + "required":["accessLogSubscriptionIdentifier"], + "members":{ + "accessLogSubscriptionIdentifier":{ + "shape":"AccessLogSubscriptionIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the access log subscription.

    ", + "location":"uri", + "locationName":"accessLogSubscriptionIdentifier" + } + } + }, + "DeleteAccessLogSubscriptionResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteAuthPolicyRequest":{ + "type":"structure", + "required":["resourceIdentifier"], + "members":{ + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the resource.

    ", + "location":"uri", + "locationName":"resourceIdentifier" + } + } + }, + "DeleteAuthPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteListenerRequest":{ + "type":"structure", + "required":[ + "listenerIdentifier", + "serviceIdentifier" + ], + "members":{ + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "DeleteListenerResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteResourcePolicyRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the resource.

    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "DeleteResourcePolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRuleRequest":{ + "type":"structure", + "required":[ + "listenerIdentifier", + "ruleIdentifier", + "serviceIdentifier" + ], + "members":{ + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "ruleIdentifier":{ + "shape":"RuleIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the rule.

    ", + "location":"uri", + "locationName":"ruleIdentifier" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "DeleteRuleResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteServiceNetworkRequest":{ + "type":"structure", + "required":["serviceNetworkIdentifier"], + "members":{ + "serviceNetworkIdentifier":{ + "shape":"ServiceNetworkIdentifier", + "documentation":"

    The Amazon Resource Name (ARN) or ID of the service network.

    ", + "location":"uri", + "locationName":"serviceNetworkIdentifier" + } + } + }, + "DeleteServiceNetworkResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteServiceNetworkServiceAssociationRequest":{ + "type":"structure", + "required":["serviceNetworkServiceAssociationIdentifier"], + "members":{ + "serviceNetworkServiceAssociationIdentifier":{ + "shape":"ServiceNetworkServiceAssociationIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the association.

    ", + "location":"uri", + "locationName":"serviceNetworkServiceAssociationIdentifier" + } + } + }, + "DeleteServiceNetworkServiceAssociationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkServiceAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "id":{ + "shape":"ServiceNetworkServiceAssociationIdentifier", + "documentation":"

    The ID of the association.

    " + }, + "status":{ + "shape":"ServiceNetworkServiceAssociationStatus", + "documentation":"

    The operation's status. You can retry the operation if the status is DELETE_FAILED. However, if you retry it when the status is DELETE_IN_PROGRESS, there is no change in the status.

    " + } + } + }, + "DeleteServiceNetworkVpcAssociationRequest":{ + "type":"structure", + "required":["serviceNetworkVpcAssociationIdentifier"], + "members":{ + "serviceNetworkVpcAssociationIdentifier":{ + "shape":"ServiceNetworkVpcAssociationIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the association.

    ", + "location":"uri", + "locationName":"serviceNetworkVpcAssociationIdentifier" + } + } + }, + "DeleteServiceNetworkVpcAssociationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkVpcAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "id":{ + "shape":"ServiceNetworkVpcAssociationId", + "documentation":"

    The ID of the association.

    " + }, + "status":{ + "shape":"ServiceNetworkVpcAssociationStatus", + "documentation":"

    The status. You can retry the operation if the status is DELETE_FAILED. However, if you retry it when the status is DELETE_IN_PROGRESS, there is no change in the status.

    " + } + } + }, + "DeleteServiceRequest":{ + "type":"structure", + "required":["serviceIdentifier"], + "members":{ + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "DeleteServiceResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "id":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + }, + "name":{ + "shape":"ServiceName", + "documentation":"

    The name of the service.

    " + }, + "status":{ + "shape":"ServiceStatus", + "documentation":"

    The status. You can retry the operation if the status is DELETE_FAILED. However, if you retry it while the status is DELETE_IN_PROGRESS, the status doesn't change.

    " + } + } + }, + "DeleteTargetGroupRequest":{ + "type":"structure", + "required":["targetGroupIdentifier"], + "members":{ + "targetGroupIdentifier":{ + "shape":"TargetGroupIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the target group.

    ", + "location":"uri", + "locationName":"targetGroupIdentifier" + } + } + }, + "DeleteTargetGroupResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"TargetGroupArn", + "documentation":"

    The Amazon Resource Name (ARN) of the target group.

    " + }, + "id":{ + "shape":"TargetGroupId", + "documentation":"

    The ID of the target group.

    " + }, + "status":{ + "shape":"TargetGroupStatus", + "documentation":"

    The status. You can retry the operation if the status is DELETE_FAILED. However, if you retry it while the status is DELETE_IN_PROGRESS, the status doesn't change.

    " + } + } + }, + "DeregisterTargetsRequest":{ + "type":"structure", + "required":[ + "targetGroupIdentifier", + "targets" + ], + "members":{ + "targetGroupIdentifier":{ + "shape":"TargetGroupIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the target group.

    ", + "location":"uri", + "locationName":"targetGroupIdentifier" + }, + "targets":{ + "shape":"DeregisterTargetsRequestTargetsList", + "documentation":"

    The targets to deregister.

    " + } + } + }, + "DeregisterTargetsRequestTargetsList":{ + "type":"list", + "member":{"shape":"Target"}, + "max":100, + "min":1 + }, + "DeregisterTargetsResponse":{ + "type":"structure", + "members":{ + "successful":{ + "shape":"TargetList", + "documentation":"

    The targets that were successfully deregistered.

    " + }, + "unsuccessful":{ + "shape":"TargetFailureList", + "documentation":"

    The targets that the operation couldn't deregister.

    " + } + } + }, + "DnsEntry":{ + "type":"structure", + "members":{ + "domainName":{ + "shape":"String", + "documentation":"

    The domain name of the service.

    " + }, + "hostedZoneId":{ + "shape":"String", + "documentation":"

    The ID of the hosted zone.

    " + } + }, + "documentation":"

    Describes the DNS information of a service.

    " + }, + "FailureCode":{"type":"string"}, + "FailureMessage":{"type":"string"}, + "FixedResponseAction":{ + "type":"structure", + "required":["statusCode"], + "members":{ + "statusCode":{ + "shape":"HttpStatusCode", + "documentation":"

    The HTTP response code.

    " + } + }, + "documentation":"

    Information about an action that returns a custom HTTP response.

    " + }, + "ForwardAction":{ + "type":"structure", + "required":["targetGroups"], + "members":{ + "targetGroups":{ + "shape":"WeightedTargetGroupList", + "documentation":"

    The target groups. Traffic matching the rule is forwarded to the specified target groups. With forward actions, you can assign a weight that controls the prioritization and selection of each target group. This means that requests are distributed to individual target groups based on their weights. For example, if two target groups have the same weight, each target group receives half of the traffic.

    The default value is 1. This means that if only one target group is provided, there is no need to set the weight; 100% of traffic will go to that target group.

    " + } + }, + "documentation":"

    Describes a forward action. You can use forward actions to route requests to one or more target groups.

    " + }, + "GetAccessLogSubscriptionRequest":{ + "type":"structure", + "required":["accessLogSubscriptionIdentifier"], + "members":{ + "accessLogSubscriptionIdentifier":{ + "shape":"AccessLogSubscriptionIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the access log subscription.

    ", + "location":"uri", + "locationName":"accessLogSubscriptionIdentifier" + } + } + }, + "GetAccessLogSubscriptionResponse":{ + "type":"structure", + "required":[ + "arn", + "createdAt", + "destinationArn", + "id", + "lastUpdatedAt", + "resourceArn", + "resourceId" + ], + "members":{ + "arn":{ + "shape":"AccessLogSubscriptionArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log subscription.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the access log subscription was created, specified in ISO-8601 format.

    " + }, + "destinationArn":{ + "shape":"AccessLogDestinationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log destination.

    " + }, + "id":{ + "shape":"AccessLogSubscriptionId", + "documentation":"

    The ID of the access log subscription.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the access log subscription was last updated, specified in ISO-8601 format.

    " + }, + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network or service.

    " + }, + "resourceId":{ + "shape":"ResourceId", + "documentation":"

    The ID of the service network or service.

    " + } + } + }, + "GetAuthPolicyRequest":{ + "type":"structure", + "required":["resourceIdentifier"], + "members":{ + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network or service.

    ", + "location":"uri", + "locationName":"resourceIdentifier" + } + } + }, + "GetAuthPolicyResponse":{ + "type":"structure", + "members":{ + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the auth policy was created, specified in ISO-8601 format.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the auth policy was last updated, specified in ISO-8601 format.

    " + }, + "policy":{ + "shape":"AuthPolicyString", + "documentation":"

    The auth policy.

    " + }, + "state":{ + "shape":"AuthPolicyState", + "documentation":"

    The state of the auth policy. The auth policy is only active when the auth type is set to AWS_IAM. If you provide a policy, then authentication and authorization decisions are made based on this policy and the client's IAM policy. If the auth type is NONE, then any auth policy you provide will remain inactive. For more information, see Create a service network in the Amazon VPC Lattice User Guide.

    " + } + } + }, + "GetListenerRequest":{ + "type":"structure", + "required":[ + "listenerIdentifier", + "serviceIdentifier" + ], + "members":{ + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "GetListenerResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ListenerArn", + "documentation":"

    The Amazon Resource Name (ARN) of the listener.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener was created, specified in ISO-8601 format.

    " + }, + "defaultAction":{ + "shape":"RuleAction", + "documentation":"

    The actions for the default listener rule.

    " + }, + "id":{ + "shape":"ListenerId", + "documentation":"

    The ID of the listener.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener was last updated, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"ListenerName", + "documentation":"

    The name of the listener.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The listener port.

    " + }, + "protocol":{ + "shape":"ListenerProtocol", + "documentation":"

    The listener protocol.

    " + }, + "serviceArn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "serviceId":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + } + } + }, + "GetResourcePolicyRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network or service.

    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "GetResourcePolicyResponse":{ + "type":"structure", + "members":{ + "policy":{ + "shape":"PolicyString", + "documentation":"

    An IAM policy.

    " + } + } + }, + "GetRuleRequest":{ + "type":"structure", + "required":[ + "listenerIdentifier", + "ruleIdentifier", + "serviceIdentifier" + ], + "members":{ + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "ruleIdentifier":{ + "shape":"RuleIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener rule.

    ", + "location":"uri", + "locationName":"ruleIdentifier" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "GetRuleResponse":{ + "type":"structure", + "members":{ + "action":{ + "shape":"RuleAction", + "documentation":"

    The action for the default rule.

    " + }, + "arn":{ + "shape":"RuleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the listener.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener rule was created, specified in ISO-8601 format.

    " + }, + "id":{ + "shape":"RuleId", + "documentation":"

    The ID of the listener.

    " + }, + "isDefault":{ + "shape":"Boolean", + "documentation":"

    Indicates whether this is the default rule.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener rule was last updated, specified in ISO-8601 format.

    " + }, + "match":{ + "shape":"RuleMatch", + "documentation":"

    The rule match.

    " + }, + "name":{ + "shape":"RuleName", + "documentation":"

    The name of the listener.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The priority level for the specified rule.

    " + } + } + }, + "GetServiceNetworkRequest":{ + "type":"structure", + "required":["serviceNetworkIdentifier"], + "members":{ + "serviceNetworkIdentifier":{ + "shape":"ServiceNetworkIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network.

    ", + "location":"uri", + "locationName":"serviceNetworkIdentifier" + } + } + }, + "GetServiceNetworkResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the service network was created, specified in ISO-8601 format.

    " + }, + "id":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time of the last update, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + }, + "numberOfAssociatedServices":{ + "shape":"Long", + "documentation":"

    The number of services associated with the service network.

    " + }, + "numberOfAssociatedVPCs":{ + "shape":"Long", + "documentation":"

    The number of VPCs associated with the service network.

    " + } + } + }, + "GetServiceNetworkServiceAssociationRequest":{ + "type":"structure", + "required":["serviceNetworkServiceAssociationIdentifier"], + "members":{ + "serviceNetworkServiceAssociationIdentifier":{ + "shape":"ServiceNetworkServiceAssociationIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the association.

    ", + "location":"uri", + "locationName":"serviceNetworkServiceAssociationIdentifier" + } + } + }, + "GetServiceNetworkServiceAssociationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkServiceAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the association was created, specified in ISO-8601 format.

    " + }, + "createdBy":{ + "shape":"AccountId", + "documentation":"

    The account that created the association.

    " + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "dnsEntry":{ + "shape":"DnsEntry", + "documentation":"

    The DNS name of the service.

    " + }, + "failureCode":{ + "shape":"String", + "documentation":"

    The failure code.

    " + }, + "failureMessage":{ + "shape":"String", + "documentation":"

    The failure message.

    " + }, + "id":{ + "shape":"ServiceNetworkServiceAssociationIdentifier", + "documentation":"

    The ID of the service network and service association.

    " + }, + "serviceArn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "serviceId":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + }, + "serviceName":{ + "shape":"ServiceName", + "documentation":"

    The name of the service.

    " + }, + "serviceNetworkArn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "serviceNetworkId":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "serviceNetworkName":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + }, + "status":{ + "shape":"ServiceNetworkServiceAssociationStatus", + "documentation":"

    The status of the association.

    " + } + } + }, + "GetServiceNetworkVpcAssociationRequest":{ + "type":"structure", + "required":["serviceNetworkVpcAssociationIdentifier"], + "members":{ + "serviceNetworkVpcAssociationIdentifier":{ + "shape":"ServiceNetworkVpcAssociationIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the association.

    ", + "location":"uri", + "locationName":"serviceNetworkVpcAssociationIdentifier" + } + } + }, + "GetServiceNetworkVpcAssociationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkVpcAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the association was created, specified in ISO-8601 format.

    " + }, + "createdBy":{ + "shape":"AccountId", + "documentation":"

    The account that created the association.

    " + }, + "failureCode":{ + "shape":"String", + "documentation":"

    The failure code.

    " + }, + "failureMessage":{ + "shape":"String", + "documentation":"

    The failure message.

    " + }, + "id":{ + "shape":"ServiceNetworkVpcAssociationId", + "documentation":"

    The ID of the specified association between the service network and the VPC.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the association was last updated, specified in ISO-8601 format.

    " + }, + "securityGroupIds":{ + "shape":"SecurityGroupList", + "documentation":"

    The IDs of the security groups.

    " + }, + "serviceNetworkArn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "serviceNetworkId":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "serviceNetworkName":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + }, + "status":{ + "shape":"ServiceNetworkVpcAssociationStatus", + "documentation":"

    The status of the association.

    " + }, + "vpcId":{ + "shape":"VpcId", + "documentation":"

    The ID of the VPC.

    " + } + } + }, + "GetServiceRequest":{ + "type":"structure", + "required":["serviceIdentifier"], + "members":{ + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "GetServiceResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    " + }, + "certificateArn":{ + "shape":"CertificateArn", + "documentation":"

    The Amazon Resource Name (ARN) of the certificate.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the service was created, specified in ISO-8601 format.

    " + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "dnsEntry":{ + "shape":"DnsEntry", + "documentation":"

    The DNS name of the service.

    " + }, + "failureCode":{ + "shape":"FailureCode", + "documentation":"

    The failure code.

    " + }, + "failureMessage":{ + "shape":"FailureMessage", + "documentation":"

    The failure message.

    " + }, + "id":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the service was last updated, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"ServiceName", + "documentation":"

    The name of the service.

    " + }, + "status":{ + "shape":"ServiceStatus", + "documentation":"

    The status of the service.

    " + } + } + }, + "GetTargetGroupRequest":{ + "type":"structure", + "required":["targetGroupIdentifier"], + "members":{ + "targetGroupIdentifier":{ + "shape":"TargetGroupIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the target group.

    ", + "location":"uri", + "locationName":"targetGroupIdentifier" + } + } + }, + "GetTargetGroupResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"TargetGroupArn", + "documentation":"

    The Amazon Resource Name (ARN) of the target group.

    " + }, + "config":{ + "shape":"TargetGroupConfig", + "documentation":"

    The target group configuration.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the target group was created, specified in ISO-8601 format.

    " + }, + "failureCode":{ + "shape":"String", + "documentation":"

    The failure code.

    " + }, + "failureMessage":{ + "shape":"String", + "documentation":"

    The failure message.

    " + }, + "id":{ + "shape":"TargetGroupId", + "documentation":"

    The ID of the target group.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the target group was last updated, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"TargetGroupName", + "documentation":"

    The name of the target group.

    " + }, + "serviceArns":{ + "shape":"ServiceArnList", + "documentation":"

    The Amazon Resource Names (ARNs) of the service.

    " + }, + "status":{ + "shape":"TargetGroupStatus", + "documentation":"

    The status.

    " + }, + "type":{ + "shape":"TargetGroupType", + "documentation":"

    The target group type.

    " + } + } + }, + "HeaderMatch":{ + "type":"structure", + "required":[ + "match", + "name" + ], + "members":{ + "caseSensitive":{ + "shape":"Boolean", + "documentation":"

    Indicates whether the match is case sensitive. Defaults to false.

    " + }, + "match":{ + "shape":"HeaderMatchType", + "documentation":"

    The header match type.

    " + }, + "name":{ + "shape":"HeaderMatchName", + "documentation":"

    The name of the header.

    " + } + }, + "documentation":"

    Describes the constraints for a header match. Matches incoming requests with rule based on request header value before applying rule action.

    " + }, + "HeaderMatchContains":{ + "type":"string", + "max":200, + "min":1 + }, + "HeaderMatchExact":{ + "type":"string", + "max":200, + "min":1 + }, + "HeaderMatchList":{ + "type":"list", + "member":{"shape":"HeaderMatch"}, + "max":5, + "min":1 + }, + "HeaderMatchName":{ + "type":"string", + "max":100, + "min":1 + }, + "HeaderMatchPrefix":{ + "type":"string", + "max":200, + "min":1 + }, + "HeaderMatchType":{ + "type":"structure", + "members":{ + "contains":{ + "shape":"HeaderMatchContains", + "documentation":"

    Specifies a contains type match.

    " + }, + "exact":{ + "shape":"HeaderMatchExact", + "documentation":"

    Specifies an exact type match.

    " + }, + "prefix":{ + "shape":"HeaderMatchPrefix", + "documentation":"

    Specifies a prefix type match. Matches the value with the prefix.

    " + } + }, + "documentation":"

    Describes a header match type. Only one can be provided.

    ", + "union":true + }, + "HealthCheckConfig":{ + "type":"structure", + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

    Indicates whether health checking is enabled.

    " + }, + "healthCheckIntervalSeconds":{ + "shape":"HealthCheckIntervalSeconds", + "documentation":"

    The approximate amount of time, in seconds, between health checks of an individual target. The range is 5–300 seconds. The default is 30 seconds.

    " + }, + "healthCheckTimeoutSeconds":{ + "shape":"HealthCheckTimeoutSeconds", + "documentation":"

    The amount of time, in seconds, to wait before reporting a target as unhealthy. The range is 1–120 seconds. The default is 5 seconds.

    " + }, + "healthyThresholdCount":{ + "shape":"HealthyThresholdCount", + "documentation":"

    The number of consecutive successful health checks required before considering an unhealthy target healthy. The range is 2–10. The default is 5.

    " + }, + "matcher":{ + "shape":"Matcher", + "documentation":"

    The codes to use when checking for a successful response from a target. These are called Success codes in the console.

    " + }, + "path":{ + "shape":"HealthCheckPath", + "documentation":"

    The destination for health checks on the targets. If the protocol version is HTTP/1.1 or HTTP/2, specify a valid URI (for example, /path?query). The default path is /. Health checks are not supported if the protocol version is gRPC, however, you can choose HTTP/1.1 or HTTP/2 and specify a valid URI.

    " + }, + "port":{ + "shape":"HealthCheckPort", + "documentation":"

    The port used when performing health checks on targets. The default setting is the port that a target receives traffic on.

    " + }, + "protocol":{ + "shape":"TargetGroupProtocol", + "documentation":"

    The protocol used when performing health checks on targets. The possible protocols are HTTP and HTTPS. The default is HTTP.

    " + }, + "protocolVersion":{ + "shape":"HealthCheckProtocolVersion", + "documentation":"

    The protocol version used when performing health checks on targets. The possible protocol versions are HTTP1 and HTTP2.

    " + }, + "unhealthyThresholdCount":{ + "shape":"UnhealthyThresholdCount", + "documentation":"

    The number of consecutive failed health checks required before considering a target unhealthy. The range is 2–10. The default is 2.

    " + } + }, + "documentation":"

    The health check configuration of a target group. Health check configurations aren't used for LAMBDA and ALB target groups.

    " + }, + "HealthCheckIntervalSeconds":{ + "type":"integer", + "box":true, + "max":300, + "min":0 + }, + "HealthCheckPath":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"(^/[a-zA-Z0-9@:%_+.~#?&/=-]*$|(^$))" + }, + "HealthCheckPort":{ + "type":"integer", + "box":true, + "max":65535, + "min":0 + }, + "HealthCheckProtocolVersion":{ + "type":"string", + "enum":[ + "HTTP1", + "HTTP2" + ] + }, + "HealthCheckTimeoutSeconds":{ + "type":"integer", + "box":true, + "max":120, + "min":0 + }, + "HealthyThresholdCount":{ + "type":"integer", + "box":true, + "max":10, + "min":0 + }, + "HttpCodeMatcher":{ + "type":"string", + "max":2000, + "min":0, + "pattern":"(^[0-9-,]+$|(^$))" + }, + "HttpMatch":{ + "type":"structure", + "members":{ + "headerMatches":{ + "shape":"HeaderMatchList", + "documentation":"

    The header matches. Matches incoming requests with rule based on request header value before applying rule action.

    " + }, + "method":{ + "shape":"HttpMethod", + "documentation":"

    The HTTP method type.

    " + }, + "pathMatch":{ + "shape":"PathMatch", + "documentation":"

    The path match.

    " + } + }, + "documentation":"

    Describes criteria that can be applied to incoming requests.

    " + }, + "HttpMethod":{ + "type":"string", + "max":16, + "min":0 + }, + "HttpStatusCode":{ + "type":"integer", + "box":true, + "max":599, + "min":100 + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

    The number of seconds to wait before retrying.

    ", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

    An unexpected error occurred while processing the request.

    ", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "IpAddressType":{ + "type":"string", + "enum":[ + "IPV4", + "IPV6" + ] + }, + "ListAccessLogSubscriptionsRequest":{ + "type":"structure", + "required":["resourceIdentifier"], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network or service.

    ", + "location":"querystring", + "locationName":"resourceIdentifier" + } + } + }, + "ListAccessLogSubscriptionsResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"AccessLogSubscriptionList", + "documentation":"

    The access log subscriptions.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    " + } + } + }, + "ListListenersRequest":{ + "type":"structure", + "required":["serviceIdentifier"], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "ListListenersResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"ListenerSummaryList", + "documentation":"

    Information about the listeners.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListRulesRequest":{ + "type":"structure", + "required":[ + "listenerIdentifier", + "serviceIdentifier" + ], + "members":{ + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "ListRulesResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"RuleSummaryList", + "documentation":"

    Information about the rules.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListServiceNetworkServiceAssociationsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"querystring", + "locationName":"serviceIdentifier" + }, + "serviceNetworkIdentifier":{ + "shape":"ServiceNetworkIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network.

    ", + "location":"querystring", + "locationName":"serviceNetworkIdentifier" + } + } + }, + "ListServiceNetworkServiceAssociationsResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"ServiceNetworkServiceAssociationList", + "documentation":"

    Information about the associations.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListServiceNetworkVpcAssociationsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "serviceNetworkIdentifier":{ + "shape":"ServiceNetworkIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network.

    ", + "location":"querystring", + "locationName":"serviceNetworkIdentifier" + }, + "vpcIdentifier":{ + "shape":"VpcId", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the VPC.

    ", + "location":"querystring", + "locationName":"vpcIdentifier" + } + } + }, + "ListServiceNetworkVpcAssociationsResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"ServiceNetworkVpcAssociationList", + "documentation":"

    Information about the associations.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListServiceNetworksRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListServiceNetworksResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"ServiceNetworkList", + "documentation":"

    Information about the service networks.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListServicesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListServicesResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ServiceList", + "documentation":"

    The services.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

    The Amazon Resource Name (ARN) of the resource.

    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags.

    " + } + } + }, + "ListTargetGroupsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "targetGroupType":{ + "shape":"TargetGroupType", + "documentation":"

    The target group type.

    ", + "location":"querystring", + "locationName":"targetGroupType" + }, + "vpcIdentifier":{ + "shape":"VpcId", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"querystring", + "locationName":"vpcIdentifier" + } + } + }, + "ListTargetGroupsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"TargetGroupList", + "documentation":"

    Information about the target groups.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListTargetsRequest":{ + "type":"structure", + "required":["targetGroupIdentifier"], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to return.

    ", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    A pagination token for the next page of results.

    ", + "location":"querystring", + "locationName":"nextToken" + }, + "targetGroupIdentifier":{ + "shape":"TargetGroupIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the target group.

    ", + "location":"uri", + "locationName":"targetGroupIdentifier" + }, + "targets":{ + "shape":"ListTargetsRequestTargetsList", + "documentation":"

    The targets to list.

    " + } + } + }, + "ListTargetsRequestTargetsList":{ + "type":"list", + "member":{"shape":"Target"}, + "max":20, + "min":0 + }, + "ListTargetsResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"TargetSummaryList", + "documentation":"

    Information about the targets.

    " + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

    If there are additional results, a pagination token for the next page of results.

    " + } + } + }, + "ListenerArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:service/svc-[0-9a-z]{17}/listener/listener-[0-9a-z]{17}$" + }, + "ListenerId":{ + "type":"string", + "max":26, + "min":26, + "pattern":"^listener-[0-9a-z]{17}$" + }, + "ListenerIdentifier":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^((listener-[0-9a-z]{17})|(^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:service/svc-[0-9a-z]{17}/listener/listener-[0-9a-z]{17}$))$" + }, + "ListenerName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^(?!listener-)(?![-])(?!.*[-]$)(?!.*[-]{2})[a-z0-9-]+$" + }, + "ListenerProtocol":{ + "type":"string", + "enum":[ + "HTTP", + "HTTPS" + ] + }, + "ListenerSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ListenerArn", + "documentation":"

    The Amazon Resource Name (ARN) of the listener.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener was created, specified in ISO-8601 format.

    " + }, + "id":{ + "shape":"ListenerId", + "documentation":"

    The ID of the listener.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener was last updated, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"ListenerName", + "documentation":"

    The name of the listener.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The listener port.

    " + }, + "protocol":{ + "shape":"ListenerProtocol", + "documentation":"

    The listener protocol.

    " + } + }, + "documentation":"

    Summary information about a listener.

    " + }, + "ListenerSummaryList":{ + "type":"list", + "member":{"shape":"ListenerSummary"} + }, + "Long":{ + "type":"long", + "box":true + }, + "Matcher":{ + "type":"structure", + "members":{ + "httpCode":{ + "shape":"HttpCodeMatcher", + "documentation":"

    The HTTP code to use when checking for a successful response from a target.

    " + } + }, + "documentation":"

    The codes to use when checking for a successful response from a target for health checks.

    ", + "union":true + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "PathMatch":{ + "type":"structure", + "required":["match"], + "members":{ + "caseSensitive":{ + "shape":"Boolean", + "documentation":"

    Indicates whether the match is case sensitive. Defaults to false.

    " + }, + "match":{ + "shape":"PathMatchType", + "documentation":"

    The type of path match.

    " + } + }, + "documentation":"

    Describes the conditions that can be applied when matching a path for incoming requests.

    " + }, + "PathMatchExact":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^/[a-zA-Z0-9@:%_+.~#?&/=-]*$" + }, + "PathMatchPrefix":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^/[a-zA-Z0-9@:%_+.~#?&/=-]*$" + }, + "PathMatchType":{ + "type":"structure", + "members":{ + "exact":{ + "shape":"PathMatchExact", + "documentation":"

    An exact match of the path.

    " + }, + "prefix":{ + "shape":"PathMatchPrefix", + "documentation":"

    A prefix match of the path.

    " + } + }, + "documentation":"

    Describes a path match type. Each rule can include only one of the following types of paths.

    ", + "union":true + }, + "PolicyString":{ + "type":"string", + "max":10000, + "min":1, + "pattern":"^.*\\S.*$" + }, + "Port":{ + "type":"integer", + "box":true, + "max":65535, + "min":1 + }, + "PutAuthPolicyRequest":{ + "type":"structure", + "required":[ + "policy", + "resourceIdentifier" + ], + "members":{ + "policy":{ + "shape":"AuthPolicyString", + "documentation":"

    The auth policy. The policy string in JSON must not contain newlines or blank lines.

    " + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network or service for which the policy is created.

    ", + "location":"uri", + "locationName":"resourceIdentifier" + } + } + }, + "PutAuthPolicyResponse":{ + "type":"structure", + "members":{ + "policy":{ + "shape":"AuthPolicyString", + "documentation":"

    The auth policy. The policy string in JSON must not contain newlines or blank lines.

    " + }, + "state":{ + "shape":"AuthPolicyState", + "documentation":"

    The state of the auth policy. The auth policy is only active when the auth type is set to AWS_IAM. If you provide a policy, then authentication and authorization decisions are made based on this policy and the client's IAM policy. If the Auth type is NONE, then, any auth policy you provide will remain inactive. For more information, see Create a service network in the Amazon VPC Lattice User Guide.

    " + } + } + }, + "PutResourcePolicyRequest":{ + "type":"structure", + "required":[ + "policy", + "resourceArn" + ], + "members":{ + "policy":{ + "shape":"PolicyString", + "documentation":"

    An IAM policy. The policy string in JSON must not contain newlines or blank lines.

    " + }, + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network or service for which the policy is created.

    ", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "PutResourcePolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "RegisterTargetsRequest":{ + "type":"structure", + "required":[ + "targetGroupIdentifier", + "targets" + ], + "members":{ + "targetGroupIdentifier":{ + "shape":"TargetGroupIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the target group.

    ", + "location":"uri", + "locationName":"targetGroupIdentifier" + }, + "targets":{ + "shape":"RegisterTargetsRequestTargetsList", + "documentation":"

    The targets.

    " + } + } + }, + "RegisterTargetsRequestTargetsList":{ + "type":"list", + "member":{"shape":"Target"}, + "max":100, + "min":1 + }, + "RegisterTargetsResponse":{ + "type":"structure", + "members":{ + "successful":{ + "shape":"TargetList", + "documentation":"

    The targets that were successfully registered.

    " + }, + "unsuccessful":{ + "shape":"TargetFailureList", + "documentation":"

    The targets that were not registered.

    " + } + } + }, + "ResourceArn":{ + "type":"string", + "max":200, + "min":20, + "pattern":"^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}$" + }, + "ResourceId":{ + "type":"string", + "max":50, + "min":20, + "pattern":"^((sn)|(svc))-[0-9a-z]{17}$" + }, + "ResourceIdentifier":{ + "type":"string", + "max":200, + "min":17, + "pattern":"^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

    The resource ID.

    " + }, + "resourceType":{ + "shape":"String", + "documentation":"

    The resource type.

    " + } + }, + "documentation":"

    The request references a resource that does not exist.

    ", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RuleAction":{ + "type":"structure", + "members":{ + "fixedResponse":{ + "shape":"FixedResponseAction", + "documentation":"

    Describes the rule action that returns a custom HTTP response.

    " + }, + "forward":{ + "shape":"ForwardAction", + "documentation":"

    The forward action. Traffic that matches the rule is forwarded to the specified target groups.

    " + } + }, + "documentation":"

    Describes the action for a rule. Each rule must include exactly one of the following types of actions: forward or fixed-response, and it must be the last action to be performed.

    ", + "union":true + }, + "RuleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:service/svc-[0-9a-z]{17}/listener/listener-[0-9a-z]{17}/rule/rule-[0-9a-z]{17}$" + }, + "RuleId":{ + "type":"string", + "max":22, + "min":5, + "pattern":"^rule-[0-9a-z]{17}$" + }, + "RuleIdentifier":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^((rule-[0-9a-z]{17})|(^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:service/svc-[0-9a-z]{17}/listener/listener-[0-9a-z]{17}/rule/rule-[0-9a-z]{17}$))$" + }, + "RuleMatch":{ + "type":"structure", + "members":{ + "httpMatch":{ + "shape":"HttpMatch", + "documentation":"

    The HTTP criteria that a rule must match.

    " + } + }, + "documentation":"

    Describes a rule match.

    ", + "union":true + }, + "RuleName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^(?!rule-)(?![-])(?!.*[-]$)(?!.*[-]{2})[a-z0-9-]+$" + }, + "RulePriority":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "RuleSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"RuleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the rule.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener rule was created, specified in ISO-8601 format.

    " + }, + "id":{ + "shape":"RuleId", + "documentation":"

    The ID of the rule.

    " + }, + "isDefault":{ + "shape":"Boolean", + "documentation":"

    Indicates whether this is the default rule. Listener rules are created when you create a listener. Each listener has a default rule for checking connection requests.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the listener rule was last updated, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"RuleName", + "documentation":"

    The name of the rule.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The priority of the rule.

    " + } + }, + "documentation":"

    Summary information about the listener rule.

    " + }, + "RuleSummaryList":{ + "type":"list", + "member":{"shape":"RuleSummary"} + }, + "RuleUpdate":{ + "type":"structure", + "required":["ruleIdentifier"], + "members":{ + "action":{ + "shape":"RuleAction", + "documentation":"

    The rule action.

    " + }, + "match":{ + "shape":"RuleMatch", + "documentation":"

    The rule match.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The rule priority. A listener can't have multiple rules with the same priority.

    " + }, + "ruleIdentifier":{ + "shape":"RuleIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the rule.

    " + } + }, + "documentation":"

    Represents an object when updating a rule.

    " + }, + "RuleUpdateFailure":{ + "type":"structure", + "members":{ + "failureCode":{ + "shape":"FailureCode", + "documentation":"

    The failure code.

    " + }, + "failureMessage":{ + "shape":"FailureMessage", + "documentation":"

    The failure message.

    " + }, + "ruleIdentifier":{ + "shape":"RuleIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the rule.

    " + } + }, + "documentation":"

    Describes a rule update that failed.

    " + }, + "RuleUpdateFailureList":{ + "type":"list", + "member":{"shape":"RuleUpdateFailure"} + }, + "RuleUpdateList":{ + "type":"list", + "member":{"shape":"RuleUpdate"}, + "max":5, + "min":1 + }, + "RuleUpdateSuccess":{ + "type":"structure", + "members":{ + "action":{ + "shape":"RuleAction", + "documentation":"

    The action for the default rule.

    " + }, + "arn":{ + "shape":"RuleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the listener.

    " + }, + "id":{ + "shape":"RuleId", + "documentation":"

    The ID of the listener.

    " + }, + "isDefault":{ + "shape":"Boolean", + "documentation":"

    Indicates whether this is the default rule.

    " + }, + "match":{ + "shape":"RuleMatch", + "documentation":"

    The rule match.

    " + }, + "name":{ + "shape":"RuleName", + "documentation":"

    The name of the listener.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The rule priority.

    " + } + }, + "documentation":"

    Describes a successful rule update.

    " + }, + "RuleUpdateSuccessList":{ + "type":"list", + "member":{"shape":"RuleUpdateSuccess"} + }, + "SecurityGroupId":{ + "type":"string", + "max":200, + "min":5, + "pattern":"^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$" + }, + "SecurityGroupList":{ + "type":"list", + "member":{"shape":"SecurityGroupId"} + }, + "ServiceArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:service/svc-[0-9a-z]{17}$" + }, + "ServiceArnList":{ + "type":"list", + "member":{"shape":"ServiceArn"} + }, + "ServiceCustomDomainName":{ + "type":"string", + "max":255, + "min":3 + }, + "ServiceId":{ + "type":"string", + "max":21, + "min":21, + "pattern":"^svc-[0-9a-z]{17}$" + }, + "ServiceIdentifier":{ + "type":"string", + "max":2048, + "min":17, + "pattern":"^((svc-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:service/svc-[0-9a-z]{17}))$" + }, + "ServiceList":{ + "type":"list", + "member":{"shape":"ServiceSummary"} + }, + "ServiceName":{ + "type":"string", + "max":40, + "min":3, + "pattern":"^(?!svc-)(?![-])(?!.*[-]$)(?!.*[-]{2})[a-z0-9-]+$" + }, + "ServiceNetworkArn":{ + "type":"string", + "max":2048, + "min":32, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetwork/sn-[0-9a-z]{17}$" + }, + "ServiceNetworkId":{ + "type":"string", + "max":32, + "min":32, + "pattern":"^servicenetwork-[0-9a-z]{17}$" + }, + "ServiceNetworkIdentifier":{ + "type":"string", + "max":2048, + "min":3, + "pattern":"^((sn-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetwork/sn-[0-9a-z]{17}))$" + }, + "ServiceNetworkList":{ + "type":"list", + "member":{"shape":"ServiceNetworkSummary"} + }, + "ServiceNetworkName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^(?!servicenetwork-)(?![-])(?!.*[-]$)(?!.*[-]{2})[a-z0-9-]+$" + }, + "ServiceNetworkServiceAssociationArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkserviceassociation/snsa-[0-9a-z]{17}$" + }, + "ServiceNetworkServiceAssociationIdentifier":{ + "type":"string", + "max":2048, + "min":17, + "pattern":"^((snsa-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkserviceassociation/snsa-[0-9a-z]{17}))$" + }, + "ServiceNetworkServiceAssociationList":{ + "type":"list", + "member":{"shape":"ServiceNetworkServiceAssociationSummary"} + }, + "ServiceNetworkServiceAssociationStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "ACTIVE", + "DELETE_IN_PROGRESS", + "CREATE_FAILED", + "DELETE_FAILED" + ] + }, + "ServiceNetworkServiceAssociationSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkServiceAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the association was created, specified in ISO-8601 format.

    " + }, + "createdBy":{ + "shape":"AccountId", + "documentation":"

    The account that created the association.

    " + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "dnsEntry":{ + "shape":"DnsEntry", + "documentation":"

    DNS information about the service.

    " + }, + "id":{ + "shape":"ServiceNetworkServiceAssociationIdentifier", + "documentation":"

    The ID of the association.

    " + }, + "serviceArn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "serviceId":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + }, + "serviceName":{ + "shape":"ServiceName", + "documentation":"

    The name of the service.

    " + }, + "serviceNetworkArn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "serviceNetworkId":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "serviceNetworkName":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + }, + "status":{ + "shape":"ServiceNetworkServiceAssociationStatus", + "documentation":"

    The status. If the deletion fails, try to delete again.

    " + } + }, + "documentation":"

    Summary information about the association between a service network and a service.

    " + }, + "ServiceNetworkSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the service network was created, specified in ISO-8601 format.

    " + }, + "id":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the service network was last updated, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + }, + "numberOfAssociatedServices":{ + "shape":"Long", + "documentation":"

    The number of services associated with the service network.

    " + }, + "numberOfAssociatedVPCs":{ + "shape":"Long", + "documentation":"

    The number of VPCs associated with the service network.

    " + } + }, + "documentation":"

    Summary information about a service network.

    " + }, + "ServiceNetworkVpcAssociationArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkvpcassociation/snva-[0-9a-z]{17}$" + }, + "ServiceNetworkVpcAssociationId":{ + "type":"string", + "max":22, + "min":22, + "pattern":"^snva-[0-9a-z]{17}$" + }, + "ServiceNetworkVpcAssociationIdentifier":{ + "type":"string", + "max":2048, + "min":17, + "pattern":"^((snva-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkvpcassociation/snva-[0-9a-z]{17}))$" + }, + "ServiceNetworkVpcAssociationList":{ + "type":"list", + "member":{"shape":"ServiceNetworkVpcAssociationSummary"} + }, + "ServiceNetworkVpcAssociationStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "ACTIVE", + "UPDATE_IN_PROGRESS", + "DELETE_IN_PROGRESS", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED" + ] + }, + "ServiceNetworkVpcAssociationSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkVpcAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the association was created, specified in ISO-8601 format.

    " + }, + "createdBy":{ + "shape":"AccountId", + "documentation":"

    The account that created the association.

    " + }, + "id":{ + "shape":"ServiceNetworkVpcAssociationId", + "documentation":"

    The ID of the association.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the association was last updated, specified in ISO-8601 format.

    " + }, + "serviceNetworkArn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "serviceNetworkId":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "serviceNetworkName":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + }, + "status":{ + "shape":"ServiceNetworkVpcAssociationStatus", + "documentation":"

    The status.

    " + }, + "vpcId":{ + "shape":"VpcId", + "documentation":"

    The ID of the VPC.

    " + } + }, + "documentation":"

    Summary information about an association between a service network and a VPC.

    " + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "quotaCode", + "resourceType", + "serviceCode" + ], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

    The ID of the service quota that was exceeded.

    " + }, + "resourceId":{ + "shape":"String", + "documentation":"

    The resource ID.

    " + }, + "resourceType":{ + "shape":"String", + "documentation":"

    The resource type.

    " + }, + "serviceCode":{ + "shape":"String", + "documentation":"

    The service code.

    " + } + }, + "documentation":"

    The request would cause a service quota to be exceeded.

    ", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "ServiceStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "CREATE_IN_PROGRESS", + "DELETE_IN_PROGRESS", + "CREATE_FAILED", + "DELETE_FAILED" + ] + }, + "ServiceSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the service was created, specified in ISO-8601 format.

    " + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "dnsEntry":{ + "shape":"DnsEntry", + "documentation":"

    DNS information about the service.

    " + }, + "id":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the service was last updated. The format is ISO-8601.

    " + }, + "name":{ + "shape":"ServiceName", + "documentation":"

    The name of the service.

    " + }, + "status":{ + "shape":"ServiceStatus", + "documentation":"

    The status.

    " + } + }, + "documentation":"

    Summary information about a service.

    " + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{ + "shape":"TagKey", + "documentation":"

    The key of the tag.

    Constraints: Tag keys are case-sensitive and accept a maximum of 128 Unicode characters. Valid characters are Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @ May not begin with aws:.

    " + }, + "value":{ + "shape":"TagValue", + "documentation":"

    The value of the tag.

    Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters. Valid characters are Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @

    " + }, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

    The Amazon Resource Name (ARN) of the resource.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

    The tags for the resource.

    " + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "Target":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"TargetIdString", + "documentation":"

    The ID of the target. If the target type of the target group is INSTANCE, this is an instance ID. If the target type is IP , this is an IP address. If the target type is LAMBDA, this is the ARN of the Lambda function. If the target type is ALB, this is the ARN of the Application Load Balancer.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The port on which the target is listening. For HTTP, the default is 80. For HTTPS, the default is 443.

    " + } + }, + "documentation":"

    Describes a target.

    " + }, + "TargetFailure":{ + "type":"structure", + "members":{ + "failureCode":{ + "shape":"String", + "documentation":"

    The failure code.

    " + }, + "failureMessage":{ + "shape":"String", + "documentation":"

    The failure message.

    " + }, + "id":{ + "shape":"String", + "documentation":"

    The ID of the target. If the target type of the target group is INSTANCE, this is an instance ID. If the target type is IP , this is an IP address. If the target type is LAMBDA, this is the ARN of the Lambda function. If the target type is ALB, this is the ARN of the Application Load Balancer.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The port on which the target is listening. This parameter doesn't apply if the target is a Lambda function.

    " + } + }, + "documentation":"

    Describes a target failure.

    " + }, + "TargetFailureList":{ + "type":"list", + "member":{"shape":"TargetFailure"} + }, + "TargetGroupArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:targetgroup/tg-[0-9a-z]{17}$" + }, + "TargetGroupConfig":{ + "type":"structure", + "required":[ + "port", + "protocol", + "vpcIdentifier" + ], + "members":{ + "healthCheck":{ + "shape":"HealthCheckConfig", + "documentation":"

    The health check configuration.

    " + }, + "ipAddressType":{ + "shape":"IpAddressType", + "documentation":"

    The type of IP address used for the target group. The possible values are ipv4 and ipv6. This is an optional parameter. If not specified, the IP address type defaults to ipv4.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The port on which the targets are listening. For HTTP, the default is 80. For HTTPS, the default is 443

    " + }, + "protocol":{ + "shape":"TargetGroupProtocol", + "documentation":"

    The protocol to use for routing traffic to the targets. Default is the protocol of a target group.

    " + }, + "protocolVersion":{ + "shape":"TargetGroupProtocolVersion", + "documentation":"

    The protocol version. Default value is HTTP1.

    " + }, + "vpcIdentifier":{ + "shape":"VpcId", + "documentation":"

    The ID of the VPC.

    " + } + }, + "documentation":"

    Describes the configuration of a target group. Lambda functions don't support target group configuration.

    " + }, + "TargetGroupId":{ + "type":"string", + "max":20, + "min":20, + "pattern":"^tg-[0-9a-z]{17}$" + }, + "TargetGroupIdentifier":{ + "type":"string", + "max":2048, + "min":17, + "pattern":"^((tg-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:targetgroup/tg-[0-9a-z]{17}))$" + }, + "TargetGroupList":{ + "type":"list", + "member":{"shape":"TargetGroupSummary"} + }, + "TargetGroupName":{ + "type":"string", + "max":128, + "min":3, + "pattern":"^(?!tg-)(?![-])(?!.*[-]$)(?!.*[-]{2})[a-z0-9-]+$" + }, + "TargetGroupProtocol":{ + "type":"string", + "enum":[ + "HTTP", + "HTTPS" + ] + }, + "TargetGroupProtocolVersion":{ + "type":"string", + "enum":[ + "HTTP1", + "HTTP2", + "GRPC" + ] + }, + "TargetGroupStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "ACTIVE", + "DELETE_IN_PROGRESS", + "CREATE_FAILED", + "DELETE_FAILED" + ] + }, + "TargetGroupSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"TargetGroupArn", + "documentation":"

    The ARN (Amazon Resource Name) of the target group.

    " + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the target group was created, specified in ISO-8601 format.

    " + }, + "id":{ + "shape":"TargetGroupId", + "documentation":"

    The ID of the target group.

    " + }, + "ipAddressType":{ + "shape":"IpAddressType", + "documentation":"

    The type of IP address used for the target group. The possible values are ipv4 and ipv6. This is an optional parameter. If not specified, the IP address type defaults to ipv4.

    " + }, + "lastUpdatedAt":{ + "shape":"Timestamp", + "documentation":"

    The date and time that the target group was last updated, specified in ISO-8601 format.

    " + }, + "name":{ + "shape":"TargetGroupName", + "documentation":"

    The name of the target group.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The port of the target group.

    " + }, + "protocol":{ + "shape":"TargetGroupProtocol", + "documentation":"

    The protocol of the target group.

    " + }, + "serviceArns":{ + "shape":"ServiceArnList", + "documentation":"

    The list of Amazon Resource Names (ARNs) of the service.

    " + }, + "status":{ + "shape":"TargetGroupStatus", + "documentation":"

    The status.

    " + }, + "type":{ + "shape":"TargetGroupType", + "documentation":"

    The target group type.

    " + }, + "vpcIdentifier":{ + "shape":"VpcId", + "documentation":"

    The ID of the VPC of the target group.

    " + } + }, + "documentation":"

    Summary information about a target group.

    " + }, + "TargetGroupType":{ + "type":"string", + "enum":[ + "IP", + "LAMBDA", + "INSTANCE", + "ALB" + ] + }, + "TargetGroupWeight":{ + "type":"integer", + "box":true, + "max":999, + "min":0 + }, + "TargetIdString":{ + "type":"string", + "max":200, + "min":1 + }, + "TargetList":{ + "type":"list", + "member":{"shape":"Target"} + }, + "TargetStatus":{ + "type":"string", + "enum":[ + "DRAINING", + "UNAVAILABLE", + "HEALTHY", + "UNHEALTHY", + "INITIAL", + "UNUSED" + ] + }, + "TargetSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

    The ID of the target. If the target type of the target group is INSTANCE, this is an instance ID. If the target type is IP , this is an IP address. If the target type is LAMBDA, this is the ARN of the Lambda function. If the target type is ALB, this is the ARN of the Application Load Balancer.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The port on which the target is listening.

    " + }, + "reasonCode":{ + "shape":"String", + "documentation":"

    The code for why the target status is what it is.

    " + }, + "status":{ + "shape":"TargetStatus", + "documentation":"

    The status of the target.

    • Draining: The target is being deregistered. No new connections will be sent to this target while current connections are being drained. Default draining time is 5 minutes.

    • Unavailable: Health checks are unavailable for the target group.

    • Healthy: The target is healthy.

    • Unhealthy: The target is unhealthy.

    • Initial: Initial health checks on the target are being performed.

    • Unused: Target group is not used in a service.

    " + } + }, + "documentation":"

    Summary information about a target.

    " + }, + "TargetSummaryList":{ + "type":"list", + "member":{"shape":"TargetSummary"} + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

    The ID of the service quota that was exceeded.

    " + }, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

    The number of seconds to wait before retrying.

    ", + "location":"header", + "locationName":"Retry-After" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

    The service code.

    " + } + }, + "documentation":"

    The limit on the number of requests per second was exceeded.

    ", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "UnhealthyThresholdCount":{ + "type":"integer", + "box":true, + "max":10, + "min":0 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

    The Amazon Resource Name (ARN) of the resource.

    ", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "documentation":"

    The tag keys of the tags to remove.

    ", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateAccessLogSubscriptionRequest":{ + "type":"structure", + "required":[ + "accessLogSubscriptionIdentifier", + "destinationArn" + ], + "members":{ + "accessLogSubscriptionIdentifier":{ + "shape":"AccessLogSubscriptionIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the access log subscription.

    ", + "location":"uri", + "locationName":"accessLogSubscriptionIdentifier" + }, + "destinationArn":{ + "shape":"AccessLogDestinationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log destination.

    " + } + } + }, + "UpdateAccessLogSubscriptionResponse":{ + "type":"structure", + "required":[ + "arn", + "destinationArn", + "id", + "resourceArn", + "resourceId" + ], + "members":{ + "arn":{ + "shape":"AccessLogSubscriptionArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log subscription.

    " + }, + "destinationArn":{ + "shape":"AccessLogDestinationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log destination.

    " + }, + "id":{ + "shape":"AccessLogSubscriptionId", + "documentation":"

    The ID of the access log subscription.

    " + }, + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the access log subscription.

    " + }, + "resourceId":{ + "shape":"ResourceId", + "documentation":"

    The ID of the resource.

    " + } + } + }, + "UpdateListenerRequest":{ + "type":"structure", + "required":[ + "defaultAction", + "listenerIdentifier", + "serviceIdentifier" + ], + "members":{ + "defaultAction":{ + "shape":"RuleAction", + "documentation":"

    The action for the default rule.

    " + }, + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "UpdateListenerResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ListenerArn", + "documentation":"

    The Amazon Resource Name (ARN) of the listener.

    " + }, + "defaultAction":{ + "shape":"RuleAction", + "documentation":"

    The action for the default rule.

    " + }, + "id":{ + "shape":"ListenerId", + "documentation":"

    The ID of the listener.

    " + }, + "name":{ + "shape":"ListenerName", + "documentation":"

    The name of the listener.

    " + }, + "port":{ + "shape":"Port", + "documentation":"

    The listener port.

    " + }, + "protocol":{ + "shape":"ListenerProtocol", + "documentation":"

    The protocol of the listener.

    " + }, + "serviceArn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "serviceId":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + } + } + }, + "UpdateRuleRequest":{ + "type":"structure", + "required":[ + "listenerIdentifier", + "ruleIdentifier", + "serviceIdentifier" + ], + "members":{ + "action":{ + "shape":"RuleAction", + "documentation":"

    Information about the action for the specified listener rule.

    " + }, + "listenerIdentifier":{ + "shape":"ListenerIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the listener.

    ", + "location":"uri", + "locationName":"listenerIdentifier" + }, + "match":{ + "shape":"RuleMatch", + "documentation":"

    The rule match.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The rule priority. A listener can't have multiple rules with the same priority.

    " + }, + "ruleIdentifier":{ + "shape":"RuleIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the rule.

    ", + "location":"uri", + "locationName":"ruleIdentifier" + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "UpdateRuleResponse":{ + "type":"structure", + "members":{ + "action":{ + "shape":"RuleAction", + "documentation":"

    Information about the action for the specified listener rule.

    " + }, + "arn":{ + "shape":"RuleArn", + "documentation":"

    The Amazon Resource Name (ARN) of the listener.

    " + }, + "id":{ + "shape":"RuleId", + "documentation":"

    The ID of the listener.

    " + }, + "isDefault":{ + "shape":"Boolean", + "documentation":"

    Indicates whether this is the default rule.

    " + }, + "match":{ + "shape":"RuleMatch", + "documentation":"

    The rule match.

    " + }, + "name":{ + "shape":"RuleName", + "documentation":"

    The name of the listener.

    " + }, + "priority":{ + "shape":"RulePriority", + "documentation":"

    The rule priority.

    " + } + } + }, + "UpdateServiceNetworkRequest":{ + "type":"structure", + "required":[ + "authType", + "serviceNetworkIdentifier" + ], + "members":{ + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    • NONE: The resource does not use an IAM policy. This is the default.

    • AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is required.

    " + }, + "serviceNetworkIdentifier":{ + "shape":"ServiceNetworkIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service network.

    ", + "location":"uri", + "locationName":"serviceNetworkIdentifier" + } + } + }, + "UpdateServiceNetworkResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service network.

    " + }, + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    " + }, + "id":{ + "shape":"ServiceNetworkId", + "documentation":"

    The ID of the service network.

    " + }, + "name":{ + "shape":"ServiceNetworkName", + "documentation":"

    The name of the service network.

    " + } + } + }, + "UpdateServiceNetworkVpcAssociationRequest":{ + "type":"structure", + "required":[ + "securityGroupIds", + "serviceNetworkVpcAssociationIdentifier" + ], + "members":{ + "securityGroupIds":{ + "shape":"UpdateServiceNetworkVpcAssociationRequestSecurityGroupIdsList", + "documentation":"

    The IDs of the security groups.

    " + }, + "serviceNetworkVpcAssociationIdentifier":{ + "shape":"ServiceNetworkVpcAssociationIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the association.

    ", + "location":"uri", + "locationName":"serviceNetworkVpcAssociationIdentifier" + } + } + }, + "UpdateServiceNetworkVpcAssociationRequestSecurityGroupIdsList":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5, + "min":1 + }, + "UpdateServiceNetworkVpcAssociationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceNetworkVpcAssociationArn", + "documentation":"

    The Amazon Resource Name (ARN) of the association.

    " + }, + "createdBy":{ + "shape":"AccountId", + "documentation":"

    The account that created the association.

    " + }, + "id":{ + "shape":"ServiceNetworkVpcAssociationId", + "documentation":"

    The ID of the association.

    " + }, + "securityGroupIds":{ + "shape":"SecurityGroupList", + "documentation":"

    The IDs of the security groups.

    " + }, + "status":{ + "shape":"ServiceNetworkVpcAssociationStatus", + "documentation":"

    The status. You can retry the operation if the status is DELETE_FAILED. However, if you retry it while the status is DELETE_IN_PROGRESS, there is no change in the status.

    " + } + } + }, + "UpdateServiceRequest":{ + "type":"structure", + "required":["serviceIdentifier"], + "members":{ + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    • NONE: The resource does not use an IAM policy. This is the default.

    • AWS_IAM: The resource uses an IAM policy. When this type is used, auth is enabled and an auth policy is required.

    " + }, + "certificateArn":{ + "shape":"CertificateArn", + "documentation":"

    The Amazon Resource Name (ARN) of the certificate.

    " + }, + "serviceIdentifier":{ + "shape":"ServiceIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the service.

    ", + "location":"uri", + "locationName":"serviceIdentifier" + } + } + }, + "UpdateServiceResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ServiceArn", + "documentation":"

    The Amazon Resource Name (ARN) of the service.

    " + }, + "authType":{ + "shape":"AuthType", + "documentation":"

    The type of IAM policy.

    " + }, + "certificateArn":{ + "shape":"CertificateArn", + "documentation":"

    The Amazon Resource Name (ARN) of the certificate.

    " + }, + "customDomainName":{ + "shape":"ServiceCustomDomainName", + "documentation":"

    The custom domain name of the service.

    " + }, + "id":{ + "shape":"ServiceId", + "documentation":"

    The ID of the service.

    " + }, + "name":{ + "shape":"ServiceName", + "documentation":"

    The name of the service.

    " + } + } + }, + "UpdateTargetGroupRequest":{ + "type":"structure", + "required":[ + "healthCheck", + "targetGroupIdentifier" + ], + "members":{ + "healthCheck":{ + "shape":"HealthCheckConfig", + "documentation":"

    The health check configuration.

    " + }, + "targetGroupIdentifier":{ + "shape":"TargetGroupIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the target group.

    ", + "location":"uri", + "locationName":"targetGroupIdentifier" + } + } + }, + "UpdateTargetGroupResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"TargetGroupArn", + "documentation":"

    The Amazon Resource Name (ARN) of the target group.

    " + }, + "config":{ + "shape":"TargetGroupConfig", + "documentation":"

    The target group configuration.

    " + }, + "id":{ + "shape":"TargetGroupId", + "documentation":"

    The ID of the target group.

    " + }, + "name":{ + "shape":"TargetGroupName", + "documentation":"

    The name of the target group.

    " + }, + "status":{ + "shape":"TargetGroupStatus", + "documentation":"

    The status.

    " + }, + "type":{ + "shape":"TargetGroupType", + "documentation":"

    The target group type.

    " + } + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

    The fields that failed validation.

    " + }, + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

    The reason.

    " + } + }, + "documentation":"

    The input does not satisfy the constraints specified by an Amazon Web Services service.

    ", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

    Additional details about why the validation failed.

    " + }, + "name":{ + "shape":"String", + "documentation":"

    The name of the validation exception.

    " + } + }, + "documentation":"

    Describes a validation failure.

    " + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + }, + "VpcId":{ + "type":"string", + "max":50, + "min":5, + "pattern":"^vpc-(([0-9a-z]{8})|([0-9a-z]{17}))$" + }, + "WeightedTargetGroup":{ + "type":"structure", + "required":["targetGroupIdentifier"], + "members":{ + "targetGroupIdentifier":{ + "shape":"TargetGroupIdentifier", + "documentation":"

    The ID or Amazon Resource Name (ARN) of the target group.

    " + }, + "weight":{ + "shape":"TargetGroupWeight", + "documentation":"

    Only required if you specify multiple target groups for a forward action. The \"weight\" determines how requests are distributed to the target group. For example, if you specify two target groups, each with a weight of 10, each target group receives half the requests. If you specify two target groups, one with a weight of 10 and the other with a weight of 20, the target group with a weight of 20 receives twice as many requests as the other target group. If there's only one target group specified, then the default value is 100.

    " + } + }, + "documentation":"

    Describes the weight of a target group.

    " + }, + "WeightedTargetGroupList":{ + "type":"list", + "member":{"shape":"WeightedTargetGroup"}, + "max":2, + "min":1 + } + }, + "documentation":"

    Amazon VPC Lattice is a fully managed application networking service that you use to connect, secure, and monitor all of your services across multiple accounts and virtual private clouds (VPCs). Amazon VPC Lattice interconnects your microservices and legacy services within a logical boundary, so that you can discover and manage them more efficiently. For more information, see the Amazon VPC Lattice User Guide

    " +} diff --git a/services/waf/pom.xml b/services/waf/pom.xml index 60279b8305d7..b18dcb75fb97 100644 --- a/services/waf/pom.xml +++ b/services/waf/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT waf AWS Java SDK :: Services :: AWS WAF diff --git a/services/wafv2/pom.xml b/services/wafv2/pom.xml index e9de8dc2451e..7c2773b00ed2 100644 --- a/services/wafv2/pom.xml +++ b/services/wafv2/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT wafv2 AWS Java SDK :: Services :: WAFV2 diff --git a/services/wafv2/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/wafv2/src/main/resources/codegen-resources/endpoint-rule-set.json index b3db6ba531ff..0adc23f0eae5 100644 --- a/services/wafv2/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/wafv2/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wafv2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wafv2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://wafv2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wafv2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://wafv2-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://wafv2.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://wafv2.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://wafv2.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/wafv2/src/main/resources/codegen-resources/endpoint-tests.json b/services/wafv2/src/main/resources/codegen-resources/endpoint-tests.json index 2ef09db627c6..3463382c4a33 100644 --- a/services/wafv2/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/wafv2/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,276 +1,276 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.ap-south-1.api.aws" + "url": "https://wafv2.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-south-1" + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.ap-south-1.amazonaws.com" + "url": "https://wafv2-fips.af-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "af-south-1", "UseFIPS": true, - "Region": "ap-south-1" + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.ap-south-1.api.aws" + "url": "https://wafv2.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.ap-south-1.amazonaws.com" + "url": "https://wafv2-fips.ap-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-south-1" + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-south-1.api.aws" + "url": "https://wafv2.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-south-1" + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-south-1.amazonaws.com" + "url": "https://wafv2-fips.ap-northeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-1", "UseFIPS": true, - "Region": "eu-south-1" + "UseDualStack": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-south-1.api.aws" + "url": "https://wafv2.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "eu-south-1" + "UseDualStack": false } }, { - "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-south-1.amazonaws.com" + "url": "https://wafv2-fips.ap-northeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-south-1" + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-gov-east-1.api.aws" + "url": "https://wafv2.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-east-1" + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-gov-east-1.amazonaws.com" + "url": "https://wafv2-fips.ap-northeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-3", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-gov-east-1.api.aws" + "url": "https://wafv2.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-gov-east-1.amazonaws.com" + "url": "https://wafv2-fips.ap-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-east-1" + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.me-central-1.api.aws" + "url": "https://wafv2.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-central-1" + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.me-central-1.amazonaws.com" + "url": "https://wafv2-fips.ap-southeast-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-1", "UseFIPS": true, - "Region": "me-central-1" + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.me-central-1.api.aws" + "url": "https://wafv2.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "me-central-1" + "UseDualStack": false } }, { - "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.me-central-1.amazonaws.com" + "url": "https://wafv2-fips.ap-southeast-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-central-1" + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.ca-central-1.api.aws" + "url": "https://wafv2.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ca-central-1" + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.ca-central-1.amazonaws.com" + "url": "https://wafv2-fips.ap-southeast-3.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-3", "UseFIPS": true, - "Region": "ca-central-1" + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.ca-central-1.api.aws" + "url": "https://wafv2.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.ca-central-1.amazonaws.com" + "url": "https://wafv2-fips.ca-central-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ca-central-1" + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-central-1.api.aws" + "url": "https://wafv2.eu-central-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-central-1" + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false } }, { @@ -281,737 +281,386 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-central-1", "UseFIPS": true, - "Region": "eu-central-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-central-1.api.aws" + "url": "https://wafv2.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-north-1", "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-central-1.amazonaws.com" + "url": "https://wafv2-fips.eu-north-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-central-1" + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-west-1.api.aws" + "url": "https://wafv2.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-1" + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-west-1.amazonaws.com" + "url": "https://wafv2-fips.eu-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-south-1", "UseFIPS": true, - "Region": "us-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-west-1.api.aws" + "url": "https://wafv2.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "us-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-west-1.amazonaws.com" + "url": "https://wafv2-fips.eu-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-1" + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-west-2.api.aws" + "url": "https://wafv2.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-west-2" + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-west-2.amazonaws.com" + "url": "https://wafv2-fips.eu-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": true, - "Region": "us-west-2" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-west-2.api.aws" + "url": "https://wafv2.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "eu-west-3", "UseFIPS": false, - "Region": "us-west-2" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-west-2.amazonaws.com" + "url": "https://wafv2-fips.eu-west-3.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-west-2" + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.af-south-1.api.aws" + "url": "https://wafv2.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "af-south-1" + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.af-south-1.amazonaws.com" + "url": "https://wafv2-fips.me-south-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "me-south-1", "UseFIPS": true, - "Region": "af-south-1" + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.af-south-1.api.aws" + "url": "https://wafv2.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "sa-east-1", "UseFIPS": false, - "Region": "af-south-1" + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.af-south-1.amazonaws.com" + "url": "https://wafv2-fips.sa-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "af-south-1" + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-north-1.api.aws" + "url": "https://wafv2.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-north-1" + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-north-1.amazonaws.com" + "url": "https://wafv2-fips.us-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "eu-north-1" + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-north-1.api.aws" + "url": "https://wafv2.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-2", "UseFIPS": false, - "Region": "eu-north-1" + "UseDualStack": false } }, { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-north-1.amazonaws.com" + "url": "https://wafv2-fips.us-east-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-north-1" + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-west-3.api.aws" + "url": "https://wafv2.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-3" + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-west-3.amazonaws.com" + "url": "https://wafv2-fips.us-west-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-west-1", "UseFIPS": true, - "Region": "eu-west-3" + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-west-3.api.aws" + "url": "https://wafv2.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-west-2", "UseFIPS": false, - "Region": "eu-west-3" + "UseDualStack": false } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-west-3.amazonaws.com" + "url": "https://wafv2-fips.us-west-2.amazonaws.com" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-3" + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-west-2.api.aws" + "url": "https://wafv2-fips.us-east-1.api.aws" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "eu-west-2" + "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-west-2.amazonaws.com" + "url": "https://wafv2.us-east-1.api.aws" } }, "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "eu-west-2" + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-west-2.api.aws" + "url": "https://wafv2.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-west-2.amazonaws.com" + "url": "https://wafv2-fips.cn-north-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-2" + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-west-1.api.aws" + "url": "https://wafv2.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "eu-west-1" + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.eu-west-1.amazonaws.com" + "url": "https://wafv2-fips.cn-northwest-1.amazonaws.com.cn" } }, "params": { - "UseDualStack": false, + "Region": "cn-northwest-1", "UseFIPS": true, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wafv2.eu-west-1.api.aws" + "url": "https://wafv2-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.eu-west-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-northeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-northeast-3.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-3" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-northeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-2" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-northeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-northeast-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.me-south-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.me-south-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "me-south-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.sa-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "sa-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-east-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-east-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-east-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.cn-north-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.cn-north-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-north-1" + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -1022,61 +671,35 @@ } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": true } }, { - "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.cn-north-1.amazonaws.com.cn" + "url": "https://wafv2.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "cn-north-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-gov-west-1.amazonaws.com" + "url": "https://wafv2-fips.us-gov-east-1.amazonaws.com" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.us-gov-west-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -1087,334 +710,170 @@ } }, "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "us-gov-west-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-southeast-1.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-southeast-1.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": false, - "Region": "ap-southeast-1" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-southeast-2.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-southeast-2.amazonaws.com" - } - }, - "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.ap-southeast-3.api.aws" + "url": "https://wafv2-fips.us-gov-west-1.amazonaws.com" } }, "params": { - "UseDualStack": true, + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.ap-southeast-3.amazonaws.com" + "url": "https://wafv2-fips.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "ap-southeast-3" - } - }, - { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2.ap-southeast-3.api.aws" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wafv2.ap-southeast-3.amazonaws.com" + "url": "https://wafv2.us-gov-east-1.api.aws" } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wafv2-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-east-1.amazonaws.com" + "url": "https://wafv2-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wafv2.us-east-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-east-1.amazonaws.com" + "url": "https://wafv2.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wafv2-fips.us-east-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2-fips.us-east-2.amazonaws.com" + "url": "https://wafv2-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": false } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wafv2.us-east-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseDualStack": true, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": true } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wafv2.us-east-2.amazonaws.com" + "url": "https://wafv2.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-east-2" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.cn-northwest-1.api.amazonwebservices.com.cn" - } - }, - "params": { - "UseDualStack": true, - "UseFIPS": true, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2-fips.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { - "UseDualStack": false, - "UseFIPS": true, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://wafv2.cn-northwest-1.api.amazonwebservices.com.cn" + "url": "https://example.com" } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "cn-northwest-1" - } - }, - { - "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wafv2.cn-northwest-1.amazonaws.com.cn" - } - }, - "params": { "UseDualStack": false, - "UseFIPS": false, - "Region": "cn-northwest-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseDualStack": false, "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1424,9 +883,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -1436,11 +895,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/wafv2/src/main/resources/codegen-resources/service-2.json b/services/wafv2/src/main/resources/codegen-resources/service-2.json index 2ca6d530b78d..83426a802a88 100644 --- a/services/wafv2/src/main/resources/codegen-resources/service-2.json +++ b/services/wafv2/src/main/resources/codegen-resources/service-2.json @@ -28,7 +28,7 @@ {"shape":"WAFUnavailableEntityException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

    Associates a web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To associate a web ACL, in the CloudFront call UpdateDistribution, set the web ACL ID to the Amazon Resource Name (ARN) of the web ACL. For information, see UpdateDistribution.

    When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

    " + "documentation":"

    Associates a web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To associate a web ACL, in the CloudFront call UpdateDistribution, set the web ACL ID to the Amazon Resource Name (ARN) of the web ACL. For information, see UpdateDistribution in the Amazon CloudFront Developer Guide.

    When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

    " }, "CheckCapacity":{ "name":"CheckCapacity", @@ -49,7 +49,7 @@ {"shape":"WAFExpiredManagedRuleGroupVersionException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

    Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a RuleGroup or WebACL.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

    " + "documentation":"

    Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a RuleGroup or WebACL.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see WAF web ACL capacity units (WCU) in the WAF Developer Guide.

    " }, "CreateIPSet":{ "name":"CreateIPSet", @@ -138,7 +138,7 @@ {"shape":"WAFConfigurationWarningException"}, {"shape":"WAFExpiredManagedRuleGroupVersionException"} ], - "documentation":"

    Creates a WebACL per the specifications provided.

    A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool.

    " + "documentation":"

    Creates a WebACL per the specifications provided.

    A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    " }, "DeleteFirewallManagerRuleGroups":{ "name":"DeleteFirewallManagerRuleGroups", @@ -267,7 +267,7 @@ {"shape":"WAFTagOperationInternalErrorException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

    Deletes the specified WebACL.

    You can only use this if ManagedByFirewallManager is false in the specified WebACL.

    Before deleting any web ACL, first disassociate it from all resources.

    • To retrieve a list of the resources that are associated with a web ACL, use the following calls:

    • To disassociate a resource from a web ACL, use the following calls:

      • For regional resources, call DisassociateWebACL.

      • For Amazon CloudFront distributions, provide an empty web ACL ID in the CloudFront call UpdateDistribution. For information, see UpdateDistribution.

    " + "documentation":"

    Deletes the specified WebACL.

    You can only use this if ManagedByFirewallManager is false in the specified WebACL.

    Before deleting any web ACL, first disassociate it from all resources.

    • To retrieve a list of the resources that are associated with a web ACL, use the following calls:

    • To disassociate a resource from a web ACL, use the following calls:

      • For regional resources, call DisassociateWebACL.

      • For Amazon CloudFront distributions, provide an empty web ACL ID in the CloudFront call UpdateDistribution. For information, see UpdateDistribution in the Amazon CloudFront API Reference.

    " }, "DescribeManagedRuleGroup":{ "name":"DescribeManagedRuleGroup", @@ -301,7 +301,7 @@ {"shape":"WAFNonexistentItemException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

    Disassociates the specified regional application resource from any existing web ACL association. A resource can have at most one web ACL association. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To disassociate a web ACL, provide an empty web ACL ID in the CloudFront call UpdateDistribution. For information, see UpdateDistribution.

    " + "documentation":"

    Disassociates the specified regional application resource from any existing web ACL association. A resource can have at most one web ACL association. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To disassociate a web ACL, provide an empty web ACL ID in the CloudFront call UpdateDistribution. For information, see UpdateDistribution in the Amazon CloudFront API Reference.

    " }, "GenerateMobileSdkReleaseUrl":{ "name":"GenerateMobileSdkReleaseUrl", @@ -853,20 +853,39 @@ {"shape":"WAFExpiredManagedRuleGroupVersionException"}, {"shape":"WAFConfigurationWarningException"} ], - "documentation":"

    Updates the specified WebACL. While updating a web ACL, WAF provides continuous coverage to the resources that you have associated with the web ACL.

    This operation completely replaces the mutable specifications that you already have for the web ACL with the ones that you provide to this call.

    To modify a web ACL, do the following:

    1. Retrieve it by calling GetWebACL

    2. Update its settings as needed

    3. Provide the complete web ACL specification to this call

    When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

    A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool.

    " + "documentation":"

    Updates the specified WebACL. While updating a web ACL, WAF provides continuous coverage to the resources that you have associated with the web ACL.

    This operation completely replaces the mutable specifications that you already have for the web ACL with the ones that you provide to this call.

    To modify a web ACL, do the following:

    1. Retrieve it by calling GetWebACL

    2. Update its settings as needed

    3. Provide the complete web ACL specification to this call

    When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

    A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    " } }, "shapes":{ + "AWSManagedRulesATPRuleSet":{ + "type":"structure", + "required":["LoginPath"], + "members":{ + "LoginPath":{ + "shape":"String", + "documentation":"

    The path of the login endpoint for your application. For example, for the URL https://example.com/web/login, you would provide the path /web/login.

    The rule group inspects only HTTP POST requests to your specified login endpoint.

    " + }, + "RequestInspection":{ + "shape":"RequestInspection", + "documentation":"

    The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage.

    " + }, + "ResponseInspection":{ + "shape":"ResponseInspection", + "documentation":"

    The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates.

    The ATP rule group evaluates the responses that your protected resources send back to client login attempts, keeping count of successful and failed attempts from each IP address and client session. Using this information, the rule group labels and mitigates requests from client sessions and IP addresses that submit too many failed login attempts in a short amount of time.

    Response inspection is available only in web ACLs that protect Amazon CloudFront distributions.

    " + } + }, + "documentation":"

    Details for your use of the account takeover prevention managed rule group, AWSManagedRulesATPRuleSet. This configuration is used in ManagedRuleGroupConfig.

    " + }, "AWSManagedRulesBotControlRuleSet":{ "type":"structure", "required":["InspectionLevel"], "members":{ "InspectionLevel":{ "shape":"InspectionLevel", - "documentation":"

    The inspection level to use for the Bot Control rule group. The common level is the least expensive. The targeted level includes all common level rules and adds rules with more advanced inspection criteria. For details, see WAF Bot Control rule group.

    " + "documentation":"

    The inspection level to use for the Bot Control rule group. The common level is the least expensive. The targeted level includes all common level rules and adds rules with more advanced inspection criteria. For details, see WAF Bot Control rule group in the WAF Developer Guide.

    " } }, - "documentation":"

    Details for your use of the Bot Control managed rule group, used in ManagedRuleGroupConfig.

    " + "documentation":"

    Details for your use of the Bot Control managed rule group, AWSManagedRulesBotControlRuleSet. This configuration is used in ManagedRuleGroupConfig.

    " }, "Action":{"type":"string"}, "ActionCondition":{ @@ -908,7 +927,7 @@ "members":{ "CustomRequestHandling":{ "shape":"CustomRequestHandling", - "documentation":"

    Defines custom handling for the web request.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " + "documentation":"

    Defines custom handling for the web request.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " } }, "documentation":"

    Specifies that WAF should allow the request and optionally defines additional custom handling for the request.

    This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

    " @@ -937,7 +956,7 @@ }, "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

    The Amazon Resource Name (ARN) of the resource to associate with the web ACL.

    The ARN must be in one of the following formats:

    • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

    • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

    • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

    • For an Amazon Cognito user pool: arn:aws:cognito-idp:region:account-id:userpool/user-pool-id

    " + "documentation":"

    The Amazon Resource Name (ARN) of the resource to associate with the web ACL.

    The ARN must be in one of the following formats:

    • For an Application Load Balancer: arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

    • For an Amazon API Gateway REST API: arn:partition:apigateway:region::/restapis/api-id/stages/stage-name

    • For an AppSync GraphQL API: arn:partition:appsync:region:account-id:apis/GraphQLApiId

    • For an Amazon Cognito user pool: arn:partition:cognito-idp:region:account-id:userpool/user-pool-id

    • For an App Runner service: arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id

    " } } }, @@ -946,12 +965,26 @@ "members":{ } }, + "AssociatedResourceType":{ + "type":"string", + "enum":["CLOUDFRONT"] + }, + "AssociationConfig":{ + "type":"structure", + "members":{ + "RequestBody":{ + "shape":"RequestBody", + "documentation":"

    Customizes the maximum size of the request body that your protected CloudFront distributions forward to WAF for inspection. The default size is 16 KB (16,384 kilobytes).

    You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see WAF Pricing.

    " + } + }, + "documentation":"

    Specifies custom configurations for the associations between the web ACL and protected resources.

    Use this to customize the maximum size of the request body that your protected CloudFront distributions forward to WAF for inspection. The default is 16 KB (16,384 kilobytes).

    You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see WAF Pricing.

    " + }, "BlockAction":{ "type":"structure", "members":{ "CustomResponse":{ "shape":"CustomResponse", - "documentation":"

    Defines a custom response for the web request.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " + "documentation":"

    Defines a custom response for the web request.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " } }, "documentation":"

    Specifies that WAF should block the request and optionally defines additional custom handling for the response to the web request.

    This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

    " @@ -961,7 +994,7 @@ "members":{ "OversizeHandling":{ "shape":"OversizeHandling", - "documentation":"

    What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service.

    The options for oversize handling are the following:

    • CONTINUE - Inspect the body normally, according to the rule inspection criteria.

    • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

    • NO_MATCH - Treat the web request as not matching the rule statement.

    You can combine the MATCH or NO_MATCH settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over 8 KB.

    Default: CONTINUE

    " + "documentation":"

    What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

    The default limit is 8 KB (8,192 kilobytes) for regional resources and 16 KB (16,384 kilobytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

    The options for oversize handling are the following:

    • CONTINUE - Inspect the body normally, according to the rule inspection criteria.

    • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

    • NO_MATCH - Treat the web request as not matching the rule statement.

    You can combine the MATCH or NO_MATCH settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit.

    Default: CONTINUE

    " } }, "documentation":"

    Inspect the body of the web request. The body immediately follows the request headers.

    This is used to indicate the web request component to inspect, in the FieldToMatch specification.

    " @@ -986,7 +1019,7 @@ "members":{ "SearchString":{ "shape":"SearchString", - "documentation":"

    A string value that you want WAF to search for. WAF searches only in the part of web requests that you designate for inspection in FieldToMatch. The maximum length of the value is 50 bytes.

    Valid values depend on the component that you specify for inspection in FieldToMatch:

    • Method: The HTTP method that you want WAF to search for. This indicates the type of operation specified in the request.

    • UriPath: The value that you want WAF to search for in the URI path, for example, /images/daily-ad.jpg.

    If SearchString includes alphabetic characters A-Z and a-z, note that the value is case sensitive.

    If you're using the WAF API

    Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 50 bytes.

    For example, suppose the value of Type is HEADER and the value of Data is User-Agent. If you want to search the User-Agent header for the value BadBot, you base64-encode BadBot using MIME base64-encoding and include the resulting value, QmFkQm90, in the value of SearchString.

    If you're using the CLI or one of the Amazon Web Services SDKs

    The value that you want WAF to search for. The SDK automatically base64 encodes the value.

    " + "documentation":"

    A string value that you want WAF to search for. WAF searches only in the part of web requests that you designate for inspection in FieldToMatch. The maximum length of the value is 200 bytes.

    Valid values depend on the component that you specify for inspection in FieldToMatch:

    • Method: The HTTP method that you want WAF to search for. This indicates the type of operation specified in the request.

    • UriPath: The value that you want WAF to search for in the URI path, for example, /images/daily-ad.jpg.

    If SearchString includes alphabetic characters A-Z and a-z, note that the value is case sensitive.

    If you're using the WAF API

    Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 200 bytes.

    For example, suppose the value of Type is HEADER and the value of Data is User-Agent. If you want to search the User-Agent header for the value BadBot, you base64-encode BadBot using MIME base64-encoding and include the resulting value, QmFkQm90, in the value of SearchString.

    If you're using the CLI or one of the Amazon Web Services SDKs

    The value that you want WAF to search for. The SDK automatically base64 encodes the value.

    " }, "FieldToMatch":{ "shape":"FieldToMatch", @@ -1012,7 +1045,7 @@ "members":{ "CustomRequestHandling":{ "shape":"CustomRequestHandling", - "documentation":"

    Defines custom handling for the web request, used when the CAPTCHA inspection determines that the request's token is valid and unexpired.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " + "documentation":"

    Defines custom handling for the web request, used when the CAPTCHA inspection determines that the request's token is valid and unexpired.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " } }, "documentation":"

    Specifies that WAF should run a CAPTCHA check against the request:

    • If the request includes a valid, unexpired CAPTCHA token, WAF applies any custom request handling and labels that you've configured and then allows the web request inspection to proceed to the next rule, similar to a CountAction.

    • If the request doesn't include a valid, unexpired token, WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination.

      WAF generates a response that it sends back to the client, which includes the following:

      • The header x-amzn-waf-action with a value of captcha.

      • The HTTP status code 405 Method Not Allowed.

      • If the request contains an Accept header with a value of text/html, the response includes a CAPTCHA JavaScript page interstitial.

    You can configure the expiration time in the CaptchaConfig ImmunityTimeProperty setting at the rule and web ACL level. The rule setting overrides the web ACL setting.

    This action option is available for rules. It isn't available for web ACL default actions.

    " @@ -1050,7 +1083,7 @@ "members":{ "CustomRequestHandling":{ "shape":"CustomRequestHandling", - "documentation":"

    Defines custom handling for the web request, used when the challenge inspection determines that the request's token is valid and unexpired.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " + "documentation":"

    Defines custom handling for the web request, used when the challenge inspection determines that the request's token is valid and unexpired.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " } }, "documentation":"

    Specifies that WAF should run a Challenge check against the request to verify that the request is coming from a legitimate client session:

    • If the request includes a valid, unexpired challenge token, WAF applies any custom request handling and labels that you've configured and then allows the web request inspection to proceed to the next rule, similar to a CountAction.

    • If the request doesn't include a valid, unexpired challenge token, WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination.

      WAF then generates a challenge response that it sends back to the client, which includes the following:

      • The header x-amzn-waf-action with a value of challenge.

      • The HTTP status code 202 Request Accepted.

      • If the request contains an Accept header with a value of text/html, the response includes a JavaScript page interstitial with a challenge script.

      Challenges run silent browser interrogations in the background, and don't generally affect the end user experience.

      A challenge enforces token acquisition using an interstitial JavaScript challenge that inspects the client session for legitimate behavior. The challenge blocks bots or at least increases the cost of operating sophisticated bots.

      After the client session successfully responds to the challenge, it receives a new token from WAF, which the challenge script uses to resubmit the original request.

    You can configure the expiration time in the ChallengeConfig ImmunityTimeProperty setting at the rule and web ACL level. The rule setting overrides the web ACL setting.

    This action option is available for rules. It isn't available for web ACL default actions.

    " @@ -1092,7 +1125,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Rules":{ "shape":"Rules", @@ -1195,7 +1228,7 @@ "members":{ "CustomRequestHandling":{ "shape":"CustomRequestHandling", - "documentation":"

    Defines custom handling for the web request.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " + "documentation":"

    Defines custom handling for the web request.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " } }, "documentation":"

    Specifies that WAF should count the request. Optionally defines additional custom handling for the request.

    This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

    " @@ -1476,7 +1509,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Description":{ "shape":"EntityDescription", @@ -1519,7 +1552,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Description":{ "shape":"EntityDescription", @@ -1559,11 +1592,11 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Capacity":{ "shape":"CapacityUnit", - "documentation":"

    The web ACL capacity units (WCUs) required for this rule group.

    When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

    " + "documentation":"

    The web ACL capacity units (WCUs) required for this rule group.

    When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see WAF web ACL capacity units (WCU) in the WAF Developer Guide.

    " }, "Description":{ "shape":"EntityDescription", @@ -1583,7 +1616,7 @@ }, "CustomResponseBodies":{ "shape":"CustomResponseBodies", - "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " } } }, @@ -1611,7 +1644,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "DefaultAction":{ "shape":"DefaultAction", @@ -1635,7 +1668,7 @@ }, "CustomResponseBodies":{ "shape":"CustomResponseBodies", - "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " }, "CaptchaConfig":{ "shape":"CaptchaConfig", @@ -1648,6 +1681,10 @@ "TokenDomains":{ "shape":"TokenDomains", "documentation":"

    Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

    Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

    Public suffixes aren't allowed. For example, you can't use usa.gov or co.uk as token domains.

    " + }, + "AssociationConfig":{ + "shape":"AssociationConfig", + "documentation":"

    Specifies custom configurations for the associations between the web ACL and protected resources.

    Use this to customize the maximum size of the request body that your protected CloudFront distributions forward to WAF for inspection. The default is 16 KB (16,384 kilobytes).

    You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see WAF Pricing.

    " } } }, @@ -1701,10 +1738,10 @@ "members":{ "InsertHeaders":{ "shape":"CustomHTTPHeaders", - "documentation":"

    The HTTP headers to insert into the request. Duplicate header names are not allowed.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    The HTTP headers to insert into the request. Duplicate header names are not allowed.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " } }, - "documentation":"

    Custom request handling behavior that inserts custom headers into a web request. You can add custom request handling for WAF to use when the rule action doesn't block the request. For example, CaptchaAction for requests with valid t okens, and AllowAction.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " + "documentation":"

    Custom request handling behavior that inserts custom headers into a web request. You can add custom request handling for WAF to use when the rule action doesn't block the request. For example, CaptchaAction for requests with valid t okens, and AllowAction.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " }, "CustomResponse":{ "type":"structure", @@ -1712,7 +1749,7 @@ "members":{ "ResponseCode":{ "shape":"ResponseStatusCode", - "documentation":"

    The HTTP status code to return to the client.

    For a list of status codes that you can use in your custom responses, see Supported status codes for custom response in the WAF Developer Guide.

    " + "documentation":"

    The HTTP status code to return to the client.

    For a list of status codes that you can use in your custom responses, see Supported status codes for custom response in the WAF Developer Guide.

    " }, "CustomResponseBodyKey":{ "shape":"EntityName", @@ -1720,10 +1757,10 @@ }, "ResponseHeaders":{ "shape":"CustomHTTPHeaders", - "documentation":"

    The HTTP headers to use in the response. Duplicate header names are not allowed.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    The HTTP headers to use in the response. Duplicate header names are not allowed.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " } }, - "documentation":"

    A custom response to send to the client. You can define a custom response for rule actions and default web ACL actions that are set to BlockAction.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " + "documentation":"

    A custom response to send to the client. You can define a custom response for rule actions and default web ACL actions that are set to BlockAction.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    " }, "CustomResponseBodies":{ "type":"map", @@ -1744,7 +1781,7 @@ }, "Content":{ "shape":"ResponseContent", - "documentation":"

    The payload of the custom response.

    You can use JSON escape strings in JSON content. To do this, you must specify JSON content in the ContentType setting.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    The payload of the custom response.

    You can use JSON escape strings in JSON content. To do this, you must specify JSON content in the ContentType setting.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " } }, "documentation":"

    The response body to use in a custom response to a web request. This is referenced by key from CustomResponse CustomResponseBodyKey.

    " @@ -1804,7 +1841,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -1866,7 +1903,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -1898,7 +1935,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -1930,7 +1967,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -1965,7 +2002,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "VersionName":{ "shape":"VersionKeyString", @@ -1986,7 +2023,7 @@ }, "Capacity":{ "shape":"CapacityUnit", - "documentation":"

    The web ACL capacity units (WCUs) required for this rule group. WAF uses web ACL capacity units (WCU) to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect each rule's relative cost. Rule group capacity is fixed at creation, so users can plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

    " + "documentation":"

    The web ACL capacity units (WCUs) required for this rule group.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see WAF web ACL capacity units (WCU) in the WAF Developer Guide.

    " }, "Rules":{ "shape":"RuleSummaries", @@ -2012,7 +2049,7 @@ "members":{ "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

    The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.

    The ARN must be in one of the following formats:

    • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

    • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

    • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

    • For an Amazon Cognito user pool: arn:aws:cognito-idp:region:account-id:userpool/user-pool-id

    " + "documentation":"

    The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.

    The ARN must be in one of the following formats:

    • For an Application Load Balancer: arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

    • For an Amazon API Gateway REST API: arn:partition:apigateway:region::/restapis/api-id/stages/stage-name

    • For an AppSync GraphQL API: arn:partition:appsync:region:account-id:apis/GraphQLApiId

    • For an Amazon Cognito user pool: arn:partition:cognito-idp:region:account-id:userpool/user-pool-id

    • For an App Runner service: arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id

    " } } }, @@ -2058,6 +2095,11 @@ "member":{"shape":"ExcludedRule"}, "max":100 }, + "FailureCode":{ + "type":"integer", + "max":999, + "min":0 + }, "FailureReason":{ "type":"string", "enum":[ @@ -2067,6 +2109,12 @@ "TOKEN_DOMAIN_MISMATCH" ] }, + "FailureValue":{ + "type":"string", + "max":100, + "min":1, + "pattern":".*\\S.*" + }, "FallbackBehavior":{ "type":"string", "enum":[ @@ -2105,7 +2153,7 @@ }, "Body":{ "shape":"Body", - "documentation":"

    Inspect the request body as plain text. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.

    Only the first 8 KB (8192 bytes) of the request body are forwarded to WAF for inspection by the underlying host service. For information about how to handle oversized request bodies, see the Body object configuration.

    " + "documentation":"

    Inspect the request body as plain text. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.

    A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

    For information about how to handle oversized request bodies, see the Body object configuration.

    " }, "Method":{ "shape":"Method", @@ -2113,7 +2161,7 @@ }, "JsonBody":{ "shape":"JsonBody", - "documentation":"

    Inspect the request body as JSON. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.

    Only the first 8 KB (8192 bytes) of the request body are forwarded to WAF for inspection by the underlying host service. For information about how to handle oversized request bodies, see the JsonBody object configuration.

    " + "documentation":"

    Inspect the request body as JSON. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.

    A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

    For information about how to handle oversized request bodies, see the JsonBody object configuration.

    " }, "Headers":{ "shape":"Headers", @@ -2216,14 +2264,14 @@ "members":{ "ManagedRuleGroupStatement":{ "shape":"ManagedRuleGroupStatement", - "documentation":"

    A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.

    You cannot nest a ManagedRuleGroupStatement, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

    You are charged additional fees when you use the WAF Bot Control managed rule group AWSManagedRulesBotControlRuleSet or the WAF Fraud Control account takeover prevention (ATP) managed rule group AWSManagedRulesATPRuleSet. For more information, see WAF Pricing.

    " + "documentation":"

    A statement used by Firewall Manager to run the rules that are defined in a managed rule group. This is managed by Firewall Manager for an Firewall Manager WAF policy.

    " }, "RuleGroupReferenceStatement":{ "shape":"RuleGroupReferenceStatement", - "documentation":"

    A rule statement used to run the rules that are defined in a RuleGroup. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.

    You cannot nest a RuleGroupReferenceStatement, for example for use inside a NotStatement or OrStatement. You can only use a rule group reference statement at the top level inside a web ACL.

    " + "documentation":"

    A statement used by Firewall Manager to run the rules that are defined in a rule group. This is managed by Firewall Manager for an Firewall Manager WAF policy.

    " } }, - "documentation":"

    The processing guidance for an Firewall Manager rule. This is like a regular rule Statement, but it can only contain a rule group reference.

    " + "documentation":"

    The processing guidance for an Firewall Manager rule. This is like a regular rule Statement, but it can only contain a single rule group reference.

    " }, "ForwardedIPConfig":{ "type":"structure", @@ -2311,7 +2359,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -2365,7 +2413,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -2442,7 +2490,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "WebACLName":{ "shape":"EntityName", @@ -2489,7 +2537,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -2519,7 +2567,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -2564,7 +2612,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "TimeWindow":{ "shape":"TimeWindow", @@ -2599,7 +2647,7 @@ "members":{ "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

    The Amazon Resource Name (ARN) of the resource whose web ACL you want to retrieve.

    The ARN must be in one of the following formats:

    • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

    • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

    • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

    • For an Amazon Cognito user pool: arn:aws:cognito-idp:region:account-id:userpool/user-pool-id

    " + "documentation":"

    The Amazon Resource Name (ARN) of the resource whose web ACL you want to retrieve.

    The ARN must be in one of the following formats:

    • For an Application Load Balancer: arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

    • For an Amazon API Gateway REST API: arn:partition:apigateway:region::/restapis/api-id/stages/stage-name

    • For an AppSync GraphQL API: arn:partition:appsync:region:account-id:apis/GraphQLApiId

    • For an Amazon Cognito user pool: arn:partition:cognito-idp:region:account-id:userpool/user-pool-id

    • For an App Runner service: arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id

    " } } }, @@ -2626,7 +2674,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -2912,7 +2960,7 @@ }, "OversizeHandling":{ "shape":"OversizeHandling", - "documentation":"

    What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service.

    The options for oversize handling are the following:

    • CONTINUE - Inspect the body normally, according to the rule inspection criteria.

    • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

    • NO_MATCH - Treat the web request as not matching the rule statement.

    You can combine the MATCH or NO_MATCH settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over 8 KB.

    Default: CONTINUE

    " + "documentation":"

    What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

    The default limit is 8 KB (8,192 kilobytes) for regional resources and 16 KB (16,384 kilobytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

    The options for oversize handling are the following:

    • CONTINUE - Inspect the body normally, according to the rule inspection criteria.

    • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

    • NO_MATCH - Treat the web request as not matching the rule statement.

    You can combine the MATCH or NO_MATCH settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit.

    Default: CONTINUE

    " } }, "documentation":"

    Inspect the body of the web request as JSON. The body immediately follows the request headers.

    This is used to indicate the web request component to inspect, in the FieldToMatch specification.

    Use the specifications in this object to indicate which parts of the JSON body to inspect using the rule's inspection criteria. WAF inspects only the parts of the JSON that result from the matches that you indicate.

    Example JSON: \"JsonBody\": { \"MatchPattern\": { \"All\": {} }, \"MatchScope\": \"ALL\" }

    " @@ -3045,7 +3093,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3080,7 +3128,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3111,7 +3159,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3142,7 +3190,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3173,7 +3221,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3240,7 +3288,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3275,7 +3323,7 @@ }, "ResourceType":{ "shape":"ResourceType", - "documentation":"

    Used for web ACLs that are scoped for regional applications. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    If you don't provide a resource type, the call uses the resource type APPLICATION_LOAD_BALANCER.

    Default: APPLICATION_LOAD_BALANCER

    " + "documentation":"

    Used for web ACLs that are scoped for regional applications. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    If you don't provide a resource type, the call uses the resource type APPLICATION_LOAD_BALANCER.

    Default: APPLICATION_LOAD_BALANCER

    " } } }, @@ -3294,7 +3342,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3356,7 +3404,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "NextMarker":{ "shape":"NextMarker", @@ -3410,7 +3458,7 @@ }, "RedactedFields":{ "shape":"RedactedFields", - "documentation":"

    The parts of the request that you want to keep out of the logs. For example, if you redact the SingleHeader field, the HEADER field in the logs will be xxx.

    You can specify only the following fields for redaction: UriPath, QueryString, SingleHeader, Method, and JsonBody.

    " + "documentation":"

    The parts of the request that you want to keep out of the logs. For example, if you redact the SingleHeader field, the HEADER field in the logs will be REDACTED.

    You can specify only the following fields for redaction: UriPath, QueryString, SingleHeader, Method, and JsonBody.

    " }, "ManagedByFirewallManager":{ "shape":"Boolean", @@ -3456,31 +3504,42 @@ "members":{ "LoginPath":{ "shape":"LoginPathString", - "documentation":"

    The path of the login endpoint for your application. For example, for the URL https://example.com/web/login, you would provide the path /web/login.

    " + "documentation":"

    Instead of this setting, provide your configuration under AWSManagedRulesATPRuleSet.

    ", + "deprecated":true, + "deprecatedMessage":"Deprecated. Use AWSManagedRulesATPRuleSet LoginPath" }, "PayloadType":{ "shape":"PayloadType", - "documentation":"

    The payload type for your login endpoint, either JSON or form encoded.

    " + "documentation":"

    Instead of this setting, provide your configuration under AWSManagedRulesATPRuleSet RequestInspection.

    ", + "deprecated":true, + "deprecatedMessage":"Deprecated. Use AWSManagedRulesATPRuleSet RequestInspection PayloadType" }, "UsernameField":{ "shape":"UsernameField", - "documentation":"

    Details about your login page username field.

    " + "documentation":"

    Instead of this setting, provide your configuration under AWSManagedRulesATPRuleSet RequestInspection.

    ", + "deprecated":true, + "deprecatedMessage":"Deprecated. Use AWSManagedRulesATPRuleSet RequestInspection UsernameField" }, "PasswordField":{ "shape":"PasswordField", - "documentation":"

    Details about your login page password field.

    " + "documentation":"

    Instead of this setting, provide your configuration under AWSManagedRulesATPRuleSet RequestInspection.

    ", + "deprecated":true, + "deprecatedMessage":"Deprecated. Use AWSManagedRulesATPRuleSet RequestInspection PasswordField" }, "AWSManagedRulesBotControlRuleSet":{ "shape":"AWSManagedRulesBotControlRuleSet", "documentation":"

    Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see WAF Bot Control rule group and WAF Bot Control in the WAF Developer Guide.

    " + }, + "AWSManagedRulesATPRuleSet":{ + "shape":"AWSManagedRulesATPRuleSet", + "documentation":"

    Additional configuration for using the account takeover prevention (ATP) managed rule group, AWSManagedRulesATPRuleSet. Use this to provide login request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests.

    This configuration replaces the individual configuration fields in ManagedRuleGroupConfig and provides additional feature configuration.

    For information about using the ATP managed rule group, see WAF Fraud Control account takeover prevention (ATP) rule group and WAF Fraud Control account takeover prevention (ATP) in the WAF Developer Guide.

    " } }, - "documentation":"

    Additional information that's used by a managed rule group. Many managed rule groups don't require this.

    Use the AWSManagedRulesBotControlRuleSet configuration object to configure the protection level that you want the Bot Control rule group to use.

    For example specifications, see the examples section of CreateWebACL.

    " + "documentation":"

    Additional information that's used by a managed rule group. Many managed rule groups don't require this.

    Use the AWSManagedRulesATPRuleSet configuration object for the account takeover prevention managed rule group, to provide information such as the sign-in page of your application and the type of content to accept or reject from the client.

    Use the AWSManagedRulesBotControlRuleSet configuration object to configure the protection level that you want the Bot Control rule group to use.

    For example specifications, see the examples section of CreateWebACL.

    " }, "ManagedRuleGroupConfigs":{ "type":"list", - "member":{"shape":"ManagedRuleGroupConfig"}, - "min":1 + "member":{"shape":"ManagedRuleGroupConfig"} }, "ManagedRuleGroupStatement":{ "type":"structure", @@ -3511,7 +3570,7 @@ }, "ManagedRuleGroupConfigs":{ "shape":"ManagedRuleGroupConfigs", - "documentation":"

    Additional information that's used by a managed rule group. Many managed rule groups don't require this.

    Use the AWSManagedRulesBotControlRuleSet configuration object to configure the protection level that you want the Bot Control rule group to use.

    " + "documentation":"

    Additional information that's used by a managed rule group. Many managed rule groups don't require this.

    Use the AWSManagedRulesATPRuleSet configuration object for the account takeover prevention managed rule group, to provide information such as the sign-in page of your application and the type of content to accept or reject from the client.

    Use the AWSManagedRulesBotControlRuleSet configuration object to configure the protection level that you want the Bot Control rule group to use.

    " }, "RuleActionOverrides":{ "shape":"RuleActionOverrides", @@ -3646,7 +3705,7 @@ }, "Capacity":{ "shape":"CapacityUnit", - "documentation":"

    The web ACL capacity units (WCUs) required for this rule group.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

    " + "documentation":"

    The web ACL capacity units (WCUs) required for this rule group.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see WAF web ACL capacity units (WCU) in the WAF Developer Guide.

    " }, "ForecastedLifetime":{ "shape":"TimeWindowDay", @@ -3838,7 +3897,9 @@ "MAP_MATCH_SCOPE", "OVERSIZE_HANDLING", "CHALLENGE_CONFIG", - "TOKEN_DOMAIN" + "TOKEN_DOMAIN", + "ATP_RULE_SET_RESPONSE_INSPECTION", + "ASSOCIATED_RESOURCE_TYPE" ] }, "ParameterExceptionParameter":{ @@ -3854,7 +3915,7 @@ "documentation":"

    The name of the password field. For example /form/password.

    " } }, - "documentation":"

    Details about your login page password field, used in a ManagedRuleGroupConfig.

    " + "documentation":"

    Details about your login page password field for request inspection, used in the AWSManagedRulesATPRuleSet RequestInspection configuration.

    " }, "PayloadType":{ "type":"string", @@ -3926,7 +3987,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -3968,7 +4029,7 @@ }, "Policy":{ "shape":"PolicyString", - "documentation":"

    The policy to attach to the specified rule group.

    The policy specifications must conform to the following:

    • The policy must be composed using IAM Policy version 2012-10-17 or version 2015-01-01.

    • The policy must include specifications for Effect, Action, and Principal.

    • Effect must specify Allow.

    • Action must specify wafv2:CreateWebACL, wafv2:UpdateWebACL, and wafv2:PutFirewallManagerRuleGroups and may optionally specify wafv2:GetRuleGroup. WAF rejects any extra actions or wildcard actions in the policy.

    • The policy must not include a Resource parameter.

    For more information, see IAM Policies.

    " + "documentation":"

    The policy to attach to the specified rule group.

    The policy specifications must conform to the following:

    • The policy must be composed using IAM Policy version 2012-10-17.

    • The policy must include specifications for Effect, Action, and Principal.

    • Effect must specify Allow.

    • Action must specify wafv2:CreateWebACL, wafv2:UpdateWebACL, and wafv2:PutFirewallManagerRuleGroups and may optionally specify wafv2:GetRuleGroup. WAF rejects any extra actions or wildcard actions in the policy.

    • The policy must not include a Resource parameter.

    For more information, see IAM Policies.

    " } } }, @@ -4007,7 +4068,7 @@ "documentation":"

    The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.

    If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.

    This is required if AggregateKeyType is set to FORWARDED_IP.

    " } }, - "documentation":"

    A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

    WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

    When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

    You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

    • An IP match statement with an IP set that specified the address 192.0.2.44.

    • A string match statement that searches in the User-Agent header for the string BadBot.

    In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.

    You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

    " + "documentation":"

    A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

    WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

    When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

    You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

    • An IP match statement with an IP set that specifies the address 192.0.2.44.

    • A string match statement that searches in the User-Agent header for the string BadBot.

    In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.

    You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

    " }, "RateBasedStatementAggregateKeyType":{ "type":"string", @@ -4181,6 +4242,45 @@ }, "documentation":"

    High level information for an SDK release.

    " }, + "RequestBody":{ + "type":"map", + "key":{"shape":"AssociatedResourceType"}, + "value":{"shape":"RequestBodyAssociatedResourceTypeConfig"} + }, + "RequestBodyAssociatedResourceTypeConfig":{ + "type":"structure", + "required":["DefaultSizeInspectionLimit"], + "members":{ + "DefaultSizeInspectionLimit":{ + "shape":"SizeInspectionLimit", + "documentation":"

    Specifies the maximum size of the web request body component that an associated CloudFront distribution should send to WAF for inspection. This applies to statements in the web ACL that inspect the body or JSON body.

    Default: 16 KB (16,384 kilobytes)

    " + } + }, + "documentation":"

    Customizes the maximum size of the request body that your protected CloudFront distributions forward to WAF for inspection. The default size is 16 KB (16,384 kilobytes).

    You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see WAF Pricing.

    This is used in the AssociationConfig of the web ACL.

    " + }, + "RequestInspection":{ + "type":"structure", + "required":[ + "PayloadType", + "UsernameField", + "PasswordField" + ], + "members":{ + "PayloadType":{ + "shape":"PayloadType", + "documentation":"

    The payload type for your login endpoint, either JSON or form encoded.

    " + }, + "UsernameField":{ + "shape":"UsernameField", + "documentation":"

    Details about your login page username field.

    How you specify this depends on the payload type.

    • For JSON payloads, specify the field name in JSON pointer syntax. For information about the JSON Pointer syntax, see the Internet Engineering Task Force (IETF) documentation JavaScript Object Notation (JSON) Pointer.

      For example, for the JSON payload { \"login\": { \"username\": \"THE_USERNAME\", \"password\": \"THE_PASSWORD\" } }, the username field specification is /login/username and the password field specification is /login/password.

    • For form encoded payload types, use the HTML form names.

      For example, for an HTML form with input elements named username1 and password1, the username field specification is username1 and the password field specification is password1.

    " + }, + "PasswordField":{ + "shape":"PasswordField", + "documentation":"

    Details about your login page password field.

    How you specify this depends on the payload type.

    • For JSON payloads, specify the field name in JSON pointer syntax. For information about the JSON Pointer syntax, see the Internet Engineering Task Force (IETF) documentation JavaScript Object Notation (JSON) Pointer.

      For example, for the JSON payload { \"login\": { \"username\": \"THE_USERNAME\", \"password\": \"THE_PASSWORD\" } }, the username field specification is /login/username and the password field specification is /login/password.

    • For form encoded payload types, use the HTML form names.

      For example, for an HTML form with input elements named username1 and password1, the username field specification is username1 and the password field specification is password1.

    " + } + }, + "documentation":"

    The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage.

    This is part of the AWSManagedRulesATPRuleSet configuration in ManagedRuleGroupConfig.

    In these settings, you specify how your application accepts login attempts by providing the request payload type and the names of the fields within the request body where the username and password are provided.

    " + }, "ResourceArn":{ "type":"string", "max":2048, @@ -4197,7 +4297,8 @@ "APPLICATION_LOAD_BALANCER", "API_GATEWAY", "APPSYNC", - "COGNITO_USER_POOL" + "COGNITO_USER_POOL", + "APP_RUNNER_SERVICE" ] }, "ResponseCode":{"type":"integer"}, @@ -4215,6 +4316,164 @@ "APPLICATION_JSON" ] }, + "ResponseInspection":{ + "type":"structure", + "members":{ + "StatusCode":{ + "shape":"ResponseInspectionStatusCode", + "documentation":"

    Configures inspection of the response status code.

    " + }, + "Header":{ + "shape":"ResponseInspectionHeader", + "documentation":"

    Configures inspection of the response header.

    " + }, + "BodyContains":{ + "shape":"ResponseInspectionBodyContains", + "documentation":"

    Configures inspection of the response body. WAF can inspect the first 65,536 bytes (64 KB) of the response body.

    " + }, + "Json":{ + "shape":"ResponseInspectionJson", + "documentation":"

    Configures inspection of the response JSON. WAF can inspect the first 65,536 bytes (64 KB) of the response JSON.

    " + } + }, + "documentation":"

    The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates.

    The ATP rule group evaluates the responses that your protected resources send back to client login attempts, keeping count of successful and failed attempts from each IP address and client session. Using this information, the rule group labels and mitigates requests from client sessions and IP addresses that submit too many failed login attempts in a short amount of time.

    Response inspection is available only in web ACLs that protect Amazon CloudFront distributions.

    This is part of the AWSManagedRulesATPRuleSet configuration in ManagedRuleGroupConfig.

    Enable login response inspection by configuring exactly one component of the response to inspect. You can't configure more than one. If you don't configure any of the response inspection options, response inspection is disabled.

    " + }, + "ResponseInspectionBodyContains":{ + "type":"structure", + "required":[ + "SuccessStrings", + "FailureStrings" + ], + "members":{ + "SuccessStrings":{ + "shape":"ResponseInspectionBodyContainsSuccessStrings", + "documentation":"

    Strings in the body of the response that indicate a successful login attempt. To be counted as a successful login, the string can be anywhere in the body and must be an exact match, including case. Each string must be unique among the success and failure strings.

    JSON example: \"SuccessStrings\": [ \"Login successful\", \"Welcome to our site!\" ]

    " + }, + "FailureStrings":{ + "shape":"ResponseInspectionBodyContainsFailureStrings", + "documentation":"

    Strings in the body of the response that indicate a failed login attempt. To be counted as a failed login, the string can be anywhere in the body and must be an exact match, including case. Each string must be unique among the success and failure strings.

    JSON example: \"FailureStrings\": [ \"Login failed\" ]

    " + } + }, + "documentation":"

    Configures inspection of the response body. WAF can inspect the first 65,536 bytes (64 KB) of the response body. This is part of the ResponseInspection configuration for AWSManagedRulesATPRuleSet.

    Response inspection is available only in web ACLs that protect Amazon CloudFront distributions.

    " + }, + "ResponseInspectionBodyContainsFailureStrings":{ + "type":"list", + "member":{"shape":"FailureValue"}, + "max":5, + "min":1 + }, + "ResponseInspectionBodyContainsSuccessStrings":{ + "type":"list", + "member":{"shape":"SuccessValue"}, + "max":5, + "min":1 + }, + "ResponseInspectionHeader":{ + "type":"structure", + "required":[ + "Name", + "SuccessValues", + "FailureValues" + ], + "members":{ + "Name":{ + "shape":"ResponseInspectionHeaderName", + "documentation":"

    The name of the header to match against. The name must be an exact match, including case.

    JSON example: \"Name\": [ \"LoginResult\" ]

    " + }, + "SuccessValues":{ + "shape":"ResponseInspectionHeaderSuccessValues", + "documentation":"

    Values in the response header with the specified name that indicate a successful login attempt. To be counted as a successful login, the value must be an exact match, including case. Each value must be unique among the success and failure values.

    JSON example: \"SuccessValues\": [ \"LoginPassed\", \"Successful login\" ]

    " + }, + "FailureValues":{ + "shape":"ResponseInspectionHeaderFailureValues", + "documentation":"

    Values in the response header with the specified name that indicate a failed login attempt. To be counted as a failed login, the value must be an exact match, including case. Each value must be unique among the success and failure values.

    JSON example: \"FailureValues\": [ \"LoginFailed\", \"Failed login\" ]

    " + } + }, + "documentation":"

    Configures inspection of the response header. This is part of the ResponseInspection configuration for AWSManagedRulesATPRuleSet.

    Response inspection is available only in web ACLs that protect Amazon CloudFront distributions.

    " + }, + "ResponseInspectionHeaderFailureValues":{ + "type":"list", + "member":{"shape":"FailureValue"}, + "max":3, + "min":1 + }, + "ResponseInspectionHeaderName":{ + "type":"string", + "max":200, + "min":1, + "pattern":".*\\S.*" + }, + "ResponseInspectionHeaderSuccessValues":{ + "type":"list", + "member":{"shape":"SuccessValue"}, + "max":3, + "min":1 + }, + "ResponseInspectionJson":{ + "type":"structure", + "required":[ + "Identifier", + "SuccessValues", + "FailureValues" + ], + "members":{ + "Identifier":{ + "shape":"FieldIdentifier", + "documentation":"

    The identifier for the value to match against in the JSON. The identifier must be an exact match, including case.

    JSON example: \"Identifier\": [ \"/login/success\" ]

    " + }, + "SuccessValues":{ + "shape":"ResponseInspectionJsonSuccessValues", + "documentation":"

    Values for the specified identifier in the response JSON that indicate a successful login attempt. To be counted as a successful login, the value must be an exact match, including case. Each value must be unique among the success and failure values.

    JSON example: \"SuccessValues\": [ \"True\", \"Succeeded\" ]

    " + }, + "FailureValues":{ + "shape":"ResponseInspectionJsonFailureValues", + "documentation":"

    Values for the specified identifier in the response JSON that indicate a failed login attempt. To be counted as a failed login, the value must be an exact match, including case. Each value must be unique among the success and failure values.

    JSON example: \"FailureValues\": [ \"False\", \"Failed\" ]

    " + } + }, + "documentation":"

    Configures inspection of the response JSON. WAF can inspect the first 65,536 bytes (64 KB) of the response JSON. This is part of the ResponseInspection configuration for AWSManagedRulesATPRuleSet.

    Response inspection is available only in web ACLs that protect Amazon CloudFront distributions.

    " + }, + "ResponseInspectionJsonFailureValues":{ + "type":"list", + "member":{"shape":"FailureValue"}, + "max":5, + "min":1 + }, + "ResponseInspectionJsonSuccessValues":{ + "type":"list", + "member":{"shape":"SuccessValue"}, + "max":5, + "min":1 + }, + "ResponseInspectionStatusCode":{ + "type":"structure", + "required":[ + "SuccessCodes", + "FailureCodes" + ], + "members":{ + "SuccessCodes":{ + "shape":"ResponseInspectionStatusCodeSuccessCodes", + "documentation":"

    Status codes in the response that indicate a successful login attempt. To be counted as a successful login, the response status code must match one of these. Each code must be unique among the success and failure status codes.

    JSON example: \"SuccessCodes\": [ 200, 201 ]

    " + }, + "FailureCodes":{ + "shape":"ResponseInspectionStatusCodeFailureCodes", + "documentation":"

    Status codes in the response that indicate a failed login attempt. To be counted as a failed login, the response status code must match one of these. Each code must be unique among the success and failure status codes.

    JSON example: \"FailureCodes\": [ 400, 404 ]

    " + } + }, + "documentation":"

    Configures inspection of the response status code. This is part of the ResponseInspection configuration for AWSManagedRulesATPRuleSet.

    Response inspection is available only in web ACLs that protect Amazon CloudFront distributions.

    " + }, + "ResponseInspectionStatusCodeFailureCodes":{ + "type":"list", + "member":{"shape":"FailureCode"}, + "max":10, + "min":1 + }, + "ResponseInspectionStatusCodeSuccessCodes":{ + "type":"list", + "member":{"shape":"SuccessCode"}, + "max":10, + "min":1 + }, "ResponseStatusCode":{ "type":"integer", "max":599, @@ -4338,7 +4597,7 @@ }, "Capacity":{ "shape":"CapacityUnit", - "documentation":"

    The web ACL capacity units (WCUs) required for this rule group.

    When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

    " + "documentation":"

    The web ACL capacity units (WCUs) required for this rule group.

    When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see WAF web ACL capacity units (WCU) in the WAF Developer Guide.

    " }, "ARN":{ "shape":"ResourceArn", @@ -4362,7 +4621,7 @@ }, "CustomResponseBodies":{ "shape":"CustomResponseBodies", - "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " }, "AvailableLabels":{ "shape":"LabelSummaries", @@ -4586,7 +4845,16 @@ "documentation":"

    Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. If you specify one or more transformations in a rule statement, WAF performs all transformations on the content of the request component identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

    " } }, - "documentation":"

    A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

    If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you could use a size constraint statement to block requests that have a request body greater than 8192 bytes.

    If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

    " + "documentation":"

    A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

    If you configure WAF to inspect the request body, WAF inspects only the number of bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this limit is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the web ACL AssociationConfig, for additional fees. If you know that the request body for your web requests should never exceed the inspection limit, you could use a size constraint statement to block requests that have a larger request body size.

    If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

    " + }, + "SizeInspectionLimit":{ + "type":"string", + "enum":[ + "KB_16", + "KB_32", + "KB_48", + "KB_64" + ] }, "SolveTimestamp":{"type":"long"}, "SqliMatchStatement":{ @@ -4628,7 +4896,7 @@ }, "SizeConstraintStatement":{ "shape":"SizeConstraintStatement", - "documentation":"

    A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

    If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you could use a size constraint statement to block requests that have a request body greater than 8192 bytes.

    If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

    " + "documentation":"

    A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

    If you configure WAF to inspect the request body, WAF inspects only the number of bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this limit is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the web ACL AssociationConfig, for additional fees. If you know that the request body for your web requests should never exceed the inspection limit, you could use a size constraint statement to block requests that have a larger request body size.

    If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

    " }, "GeoMatchStatement":{ "shape":"GeoMatchStatement", @@ -4648,7 +4916,7 @@ }, "RateBasedStatement":{ "shape":"RateBasedStatement", - "documentation":"

    A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

    WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

    When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

    You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

    • An IP match statement with an IP set that specified the address 192.0.2.44.

    • A string match statement that searches in the User-Agent header for the string BadBot.

    In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.

    You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

    " + "documentation":"

    A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

    WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

    When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

    You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

    • An IP match statement with an IP set that specifies the address 192.0.2.44.

    • A string match statement that searches in the User-Agent header for the string BadBot.

    In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.

    You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

    " }, "AndStatement":{ "shape":"AndStatement", @@ -4681,6 +4949,18 @@ "type":"list", "member":{"shape":"Statement"} }, + "String":{"type":"string"}, + "SuccessCode":{ + "type":"integer", + "max":999, + "min":0 + }, + "SuccessValue":{ + "type":"string", + "max":100, + "min":1, + "pattern":".*\\S.*" + }, "Tag":{ "type":"structure", "required":[ @@ -4846,8 +5126,7 @@ }, "TokenDomains":{ "type":"list", - "member":{"shape":"TokenDomain"}, - "min":1 + "member":{"shape":"TokenDomain"} }, "URIString":{"type":"string"}, "UntagResourceRequest":{ @@ -4888,7 +5167,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -4934,7 +5213,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -4987,7 +5266,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -5032,7 +5311,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -5056,7 +5335,7 @@ }, "CustomResponseBodies":{ "shape":"CustomResponseBodies", - "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " } } }, @@ -5086,7 +5365,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " + "documentation":"

    Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

    • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

    • API and SDKs - For all calls, use the Region endpoint us-east-1.

    " }, "Id":{ "shape":"EntityId", @@ -5114,7 +5393,7 @@ }, "CustomResponseBodies":{ "shape":"CustomResponseBodies", - "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " }, "CaptchaConfig":{ "shape":"CaptchaConfig", @@ -5127,6 +5406,10 @@ "TokenDomains":{ "shape":"TokenDomains", "documentation":"

    Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

    Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

    Public suffixes aren't allowed. For example, you can't use usa.gov or co.uk as token domains.

    " + }, + "AssociationConfig":{ + "shape":"AssociationConfig", + "documentation":"

    Specifies custom configurations for the associations between the web ACL and protected resources.

    Use this to customize the maximum size of the request body that your protected CloudFront distributions forward to WAF for inspection. The default is 16 KB (16,384 kilobytes).

    You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see WAF Pricing.

    " } } }, @@ -5154,7 +5437,7 @@ "documentation":"

    The name of the username field. For example /form/username.

    " } }, - "documentation":"

    Details about your login page username field, used in a ManagedRuleGroupConfig.

    " + "documentation":"

    Details about your login page username field for request inspection, used in the AWSManagedRulesATPRuleSet RequestInspection configuration.

    " }, "VendorName":{ "type":"string", @@ -5201,7 +5484,7 @@ }, "CloudWatchMetricsEnabled":{ "shape":"Boolean", - "documentation":"

    A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see WAF Metrics.

    " + "documentation":"

    A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see WAF Metrics in the WAF Developer Guide.

    " }, "MetricName":{ "shape":"MetricName", @@ -5284,7 +5567,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

    The operation failed because the specified policy isn't in the proper format.

    The policy specifications must conform to the following:

    • The policy must be composed using IAM Policy version 2012-10-17 or version 2015-01-01.

    • The policy must include specifications for Effect, Action, and Principal.

    • Effect must specify Allow.

    • Action must specify wafv2:CreateWebACL, wafv2:UpdateWebACL, and wafv2:PutFirewallManagerRuleGroups and may optionally specify wafv2:GetRuleGroup. WAF rejects any extra actions or wildcard actions in the policy.

    • The policy must not include a Resource parameter.

    For more information, see IAM Policies.

    ", + "documentation":"

    The operation failed because the specified policy isn't in the proper format.

    The policy specifications must conform to the following:

    • The policy must be composed using IAM Policy version 2012-10-17.

    • The policy must include specifications for Effect, Action, and Principal.

    • Effect must specify Allow.

    • Action must specify wafv2:CreateWebACL, wafv2:UpdateWebACL, and wafv2:PutFirewallManagerRuleGroups and may optionally specify wafv2:GetRuleGroup. WAF rejects any extra actions or wildcard actions in the policy.

    • The policy must not include a Resource parameter.

    For more information, see IAM Policies.

    ", "exception":true }, "WAFInvalidResourceException":{ @@ -5408,7 +5691,7 @@ }, "Capacity":{ "shape":"ConsumedCapacity", - "documentation":"

    The web ACL capacity units (WCUs) currently being used by this web ACL.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

    " + "documentation":"

    The web ACL capacity units (WCUs) currently being used by this web ACL.

    WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see WAF web ACL capacity units (WCU) in the WAF Developer Guide.

    " }, "PreProcessFirewallManagerRuleGroups":{ "shape":"FirewallManagerRuleGroups", @@ -5428,7 +5711,7 @@ }, "CustomResponseBodies":{ "shape":"CustomResponseBodies", - "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " + "documentation":"

    A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.

    For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

    For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

    " }, "CaptchaConfig":{ "shape":"CaptchaConfig", @@ -5441,9 +5724,13 @@ "TokenDomains":{ "shape":"TokenDomains", "documentation":"

    Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

    " + }, + "AssociationConfig":{ + "shape":"AssociationConfig", + "documentation":"

    Specifies custom configurations for the associations between the web ACL and protected resources.

    Use this to customize the maximum size of the request body that your protected CloudFront distributions forward to WAF for inspection. The default is 16 KB (16,384 kilobytes).

    You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see WAF Pricing.

    " } }, - "documentation":"

    A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool.

    " + "documentation":"

    A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    " }, "WebACLSummaries":{ "type":"list", @@ -5494,5 +5781,5 @@ "documentation":"

    A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.

    " } }, - "documentation":"WAF

    This is the latest version of the WAF API, released in November, 2019. The names of the entities that you use to access this API, like endpoints and namespaces, all have the versioning information added, like \"V2\" or \"v2\", to distinguish from the prior version. We recommend migrating your resources to this version, because it has a number of significant improvements.

    If you used WAF prior to this release, you can't use this WAFV2 API to access any WAF resources that you created before. You can access your old rules, web ACLs, and other WAF resources only through the WAF Classic APIs. The WAF Classic APIs have retained the prior names, endpoints, and namespaces.

    For information, including how to migrate your WAF resources to this version, see the WAF Developer Guide.

    WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to Amazon CloudFront, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool. WAF also lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, the Amazon API Gateway REST API, CloudFront distribution, the Application Load Balancer, the AppSync GraphQL API, or the Amazon Cognito user pool responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You also can configure CloudFront to return a custom error page when a request is blocked.

    This API guide is for developers who need detailed information about WAF API actions, data types, and errors. For detailed information about WAF features and an overview of how to use WAF, see the WAF Developer Guide.

    You can make calls using the endpoints listed in WAF endpoints and quotas.

    • For regional applications, you can use any of the endpoints in the list. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

    • For Amazon CloudFront applications, you must use the API endpoint listed for US East (N. Virginia): us-east-1.

    Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

    We currently provide two versions of the WAF API: this API and the prior versions, the classic WAF APIs. This new API provides the same functionality as the older versions, with the following major improvements:

    • You use one API for both global and regional applications. Where you need to distinguish the scope, you specify a Scope parameter and set it to CLOUDFRONT or REGIONAL.

    • You can define a web ACL or rule group with a single call, and update it with a single call. You define all rule specifications in JSON format, and pass them to your rule group or web ACL calls.

    • The limits WAF places on the use of rules more closely reflects the cost of running each type of rule. Rule groups include capacity settings, so you know the maximum cost of a rule group when you use it.

    " + "documentation":"WAF

    This is the latest version of the WAF API, released in November, 2019. The names of the entities that you use to access this API, like endpoints and namespaces, all have the versioning information added, like \"V2\" or \"v2\", to distinguish from the prior version. We recommend migrating your resources to this version, because it has a number of significant improvements.

    If you used WAF prior to this release, you can't use this WAFV2 API to access any WAF resources that you created before. You can access your old rules, web ACLs, and other WAF resources only through the WAF Classic APIs. The WAF Classic APIs have retained the prior names, endpoints, and namespaces.

    For information, including how to migrate your WAF resources to this version, see the WAF Developer Guide.

    WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to an Amazon CloudFront distribution, Amazon API Gateway REST API, Application Load Balancer, AppSync GraphQL API, Amazon Cognito user pool, or App Runner service. WAF also lets you control access to your content, to protect the Amazon Web Services resource that WAF is monitoring. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, the protected resource responds to requests with either the requested content, an HTTP 403 status code (Forbidden), or with a custom response.

    This API guide is for developers who need detailed information about WAF API actions, data types, and errors. For detailed information about WAF features and guidance for configuring and using WAF, see the WAF Developer Guide.

    You can make calls using the endpoints listed in WAF endpoints and quotas.

    • For regional applications, you can use any of the endpoints in the list. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service.

    • For Amazon CloudFront applications, you must use the API endpoint listed for US East (N. Virginia): us-east-1.

    Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

    We currently provide two versions of the WAF API: this API and the prior versions, the classic WAF APIs. This new API provides the same functionality as the older versions, with the following major improvements:

    • You use one API for both global and regional applications. Where you need to distinguish the scope, you specify a Scope parameter and set it to CLOUDFRONT or REGIONAL.

    • You can define a web ACL or rule group with a single call, and update it with a single call. You define all rule specifications in JSON format, and pass them to your rule group or web ACL calls.

    • The limits WAF places on the use of rules more closely reflects the cost of running each type of rule. Rule groups include capacity settings, so you know the maximum cost of a rule group when you use it.

    " } diff --git a/services/wellarchitected/pom.xml b/services/wellarchitected/pom.xml index bf20fdda872f..d696b375b396 100644 --- a/services/wellarchitected/pom.xml +++ b/services/wellarchitected/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT wellarchitected AWS Java SDK :: Services :: Well Architected diff --git a/services/wellarchitected/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/wellarchitected/src/main/resources/codegen-resources/endpoint-rule-set.json index 5e94b36780a8..3067f5198231 100644 --- a/services/wellarchitected/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/wellarchitected/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,23 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] - }, - { - "fn": "parseURL", - "argv": [ - { - "ref": "Endpoint" - } - ], - "assign": "url" } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -71,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -140,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wellarchitected-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wellarchitected-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://wellarchitected-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wellarchitected.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -231,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://wellarchitected-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://wellarchitected.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -240,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://wellarchitected.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://wellarchitected.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/wellarchitected/src/main/resources/codegen-resources/endpoint-tests.json b/services/wellarchitected/src/main/resources/codegen-resources/endpoint-tests.json index e20743591f7b..91d4c18caeb1 100644 --- a/services/wellarchitected/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/wellarchitected/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,510 +1,120 @@ { "testCases": [ { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.ap-south-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.ap-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.us-gov-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-gov-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "ca-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-central-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.us-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.us-west-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-west-2", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.eu-north-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.eu-north-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": false, - "Region": "eu-north-1", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.eu-west-3.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": true - } - }, - { - "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.eu-west-3.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "eu-west-3", - "UseDualStack": false - } - }, - { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.eu-west-3.api.aws" + "url": "https://wellarchitected.ap-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-east-1" } }, { - "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.eu-west-3.amazonaws.com" + "url": "https://wellarchitected.ap-northeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-3", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.eu-west-2.api.aws" + "url": "https://wellarchitected.ap-northeast-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.eu-west-2.amazonaws.com" + "url": "https://wellarchitected.ap-south-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-2", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.eu-west-2.api.aws" + "url": "https://wellarchitected.ap-southeast-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "ap-southeast-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.eu-west-2.amazonaws.com" + "url": "https://wellarchitected.ap-southeast-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "ap-southeast-2" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.eu-west-1.api.aws" + "url": "https://wellarchitected.ca-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": true + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.eu-west-1.amazonaws.com" + "url": "https://wellarchitected.eu-central-1.amazonaws.com" } }, "params": { - "UseFIPS": true, - "Region": "eu-west-1", - "UseDualStack": false + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.eu-west-1.api.aws" + "url": "https://wellarchitected.eu-north-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-north-1" } }, { @@ -516,532 +126,369 @@ }, "params": { "UseFIPS": false, - "Region": "eu-west-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ap-northeast-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ap-northeast-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-1" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-northeast-2.api.aws" + "url": "https://wellarchitected.eu-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "eu-west-2" } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-northeast-2.amazonaws.com" + "url": "https://wellarchitected.eu-west-3.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-2", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ap-northeast-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": true - } - }, - { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ap-northeast-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "ap-northeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "eu-west-3" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-northeast-1.api.aws" + "url": "https://wellarchitected.me-south-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "me-south-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-northeast-1.amazonaws.com" + "url": "https://wellarchitected.sa-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-northeast-1", - "UseDualStack": false - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.me-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": true - } - }, - { - "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.me-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "me-south-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "sa-east-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.me-south-1.api.aws" + "url": "https://wellarchitected.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.me-south-1.amazonaws.com" + "url": "https://wellarchitected.us-east-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "me-south-1", - "UseDualStack": false - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.sa-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": true - } - }, - { - "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.sa-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-2" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.sa-east-1.api.aws" + "url": "https://wellarchitected.us-west-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-west-1" } }, { - "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.sa-east-1.amazonaws.com" + "url": "https://wellarchitected.us-west-2.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "sa-east-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-west-2" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.ap-east-1.api.aws" + "url": "https://wellarchitected-fips.us-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.ap-east-1.amazonaws.com" + "url": "https://wellarchitected-fips.us-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.ap-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-east-1" } }, { - "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-east-1.amazonaws.com" + "url": "https://wellarchitected.us-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-east-1", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-east-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.us-gov-west-1.api.aws" + "url": "https://wellarchitected-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.us-gov-west-1.amazonaws.com" + "url": "https://wellarchitected-fips.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": true, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wellarchitected.us-gov-west-1.api.aws" + "url": "https://wellarchitected.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "cn-north-1" } }, { - "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.us-gov-west-1.amazonaws.com" + "url": "https://wellarchitected.cn-north-1.amazonaws.com.cn" } }, "params": { "UseFIPS": false, - "Region": "us-gov-west-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.ap-southeast-1.api.aws" + "url": "https://wellarchitected-fips.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.ap-southeast-1.amazonaws.com" + "url": "https://wellarchitected-fips.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-southeast-1.api.aws" + "url": "https://wellarchitected.us-gov-east-1.api.aws" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-southeast-1.amazonaws.com" + "url": "https://wellarchitected.us-gov-east-1.amazonaws.com" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-1", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.ap-southeast-2.amazonaws.com" + "url": "https://wellarchitected-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": true, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wellarchitected.ap-southeast-2.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.ap-southeast-2.amazonaws.com" + "url": "https://wellarchitected.us-iso-east-1.c2s.ic.gov" } }, "params": { "UseFIPS": false, - "Region": "ap-southeast-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-east-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected-fips.us-east-1.amazonaws.com" + "url": "https://wellarchitected-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": true, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://wellarchitected.us-east-1.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { "UseFIPS": false, - "Region": "us-east-1", - "UseDualStack": false - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-east-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": true - } - }, - { - "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://wellarchitected-fips.us-east-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.us-east-2.api.aws" + "url": "https://wellarchitected.us-isob-east-1.sc2s.sgov.gov" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": true + "UseDualStack": false, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://wellarchitected.us-east-2.amazonaws.com" + "url": "https://example.com" } }, "params": { "UseFIPS": false, - "Region": "us-east-2", - "UseDualStack": false + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -1049,7 +496,6 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, "Endpoint": "https://example.com" } @@ -1061,8 +507,8 @@ }, "params": { "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -1073,10 +519,16 @@ }, "params": { "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/services/wellarchitected/src/main/resources/codegen-resources/paginators-1.json b/services/wellarchitected/src/main/resources/codegen-resources/paginators-1.json index f83fd27e4f9d..e2d9e2d68289 100644 --- a/services/wellarchitected/src/main/resources/codegen-resources/paginators-1.json +++ b/services/wellarchitected/src/main/resources/codegen-resources/paginators-1.json @@ -1,5 +1,10 @@ { "pagination": { + "GetConsolidatedReport": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListAnswers": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/services/wellarchitected/src/main/resources/codegen-resources/service-2.json b/services/wellarchitected/src/main/resources/codegen-resources/service-2.json index 9d5c36b0dcef..fdda7ebeae26 100644 --- a/services/wellarchitected/src/main/resources/codegen-resources/service-2.json +++ b/services/wellarchitected/src/main/resources/codegen-resources/service-2.json @@ -47,7 +47,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Create a lens share.

    The owner of a lens can share it with other Amazon Web Services accounts, IAM users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Shared access to a lens is not removed until the lens invitation is deleted.

    Disclaimer

    By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

    " + "documentation":"

    Create a lens share.

    The owner of a lens can share it with other Amazon Web Services accounts, users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Lenses provided by Amazon Web Services (Amazon Web Services Official Content) cannot be shared.

    Shared access to a lens is not removed until the lens invitation is deleted.

    If you share a lens with an organization or OU, all accounts in the organization or OU are granted access to the lens.

    For more information, see Sharing a custom lens in the Well-Architected Tool User Guide.

    Disclaimer

    By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

    " }, "CreateLensVersion":{ "name":"CreateLensVersion", @@ -66,7 +66,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Create a new lens version.

    A lens can have up to 100 versions.

    After a lens has been imported, create a new lens version to publish it. The owner of a lens can share the lens with other Amazon Web Services accounts and IAM users in the same Amazon Web Services Region. Only the owner of a lens can delete it.

    " + "documentation":"

    Create a new lens version.

    A lens can have up to 100 versions.

    Use this operation to publish a new lens version after you have imported a lens. The LensAlias is used to identify the lens to be published. The owner of a lens can share the lens with other Amazon Web Services accounts and users in the same Amazon Web Services Region. Only the owner of a lens can delete it.

    " }, "CreateMilestone":{ "name":"CreateMilestone", @@ -101,9 +101,10 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Create a new workload.

    The owner of a workload can share the workload with other Amazon Web Services accounts, IAM users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Only the owner of a workload can delete it.

    For more information, see Defining a Workload in the Well-Architected Tool User Guide.

    " + "documentation":"

    Create a new workload.

    The owner of a workload can share the workload with other Amazon Web Services accounts, users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Only the owner of a workload can delete it.

    For more information, see Defining a Workload in the Well-Architected Tool User Guide.

    Either AwsRegions, NonAwsRegions, or both must be specified when creating a workload.

    You also must specify ReviewOwner, even though the parameter is listed as not being required in the following section.

    " }, "CreateWorkloadShare":{ "name":"CreateWorkloadShare", @@ -122,7 +123,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Create a workload share.

    The owner of a workload can share it with other Amazon Web Services accounts and IAM users in the same Amazon Web Services Region. Shared access to a workload is not removed until the workload invitation is deleted.

    For more information, see Sharing a Workload in the Well-Architected Tool User Guide.

    " + "documentation":"

    Create a workload share.

    The owner of a workload can share it with other Amazon Web Services accounts and users in the same Amazon Web Services Region. Shared access to a workload is not removed until the workload invitation is deleted.

    If you share a workload with an organization or OU, all accounts in the organization or OU are granted access to the workload.

    For more information, see Sharing a workload in the Well-Architected Tool User Guide.

    " }, "DeleteLens":{ "name":"DeleteLens", @@ -139,7 +140,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Delete an existing lens.

    Only the owner of a lens can delete it. After the lens is deleted, Amazon Web Services accounts and IAM users that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.

    Disclaimer

    By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

    " + "documentation":"

    Delete an existing lens.

    Only the owner of a lens can delete it. After the lens is deleted, Amazon Web Services accounts and users that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.

    Disclaimer

    By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

    " }, "DeleteLensShare":{ "name":"DeleteLensShare", @@ -156,7 +157,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Delete a lens share.

    After the lens share is deleted, Amazon Web Services accounts, IAM users, organizations, and organizational units (OUs) that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.

    Disclaimer

    By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

    " + "documentation":"

    Delete a lens share.

    After the lens share is deleted, Amazon Web Services accounts, users, organizations, and organizational units (OUs) that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.

    Disclaimer

    By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

    " }, "DeleteWorkload":{ "name":"DeleteWorkload", @@ -224,7 +225,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Export an existing lens.

    Lenses are defined in JSON. For more information, see JSON format specification in the Well-Architected Tool User Guide. Only the owner of a lens can export it.

    Disclaimer

    Do not include or gather personal identifiable information (PII) of end users or other identifiable individuals in or via your custom lenses. If your custom lens or those shared with you and used in your account do include or collect PII you are responsible for: ensuring that the included PII is processed in accordance with applicable law, providing adequate privacy notices, and obtaining necessary consents for processing such data.

    " + "documentation":"

    Export an existing lens.

    Only the owner of a lens can export it. Lenses provided by Amazon Web Services (Amazon Web Services Official Content) cannot be exported.

    Lenses are defined in JSON. For more information, see JSON format specification in the Well-Architected Tool User Guide.

    Disclaimer

    Do not include or gather personal identifiable information (PII) of end users or other identifiable individuals in or via your custom lenses. If your custom lens or those shared with you and used in your account do include or collect PII you are responsible for: ensuring that the included PII is processed in accordance with applicable law, providing adequate privacy notices, and obtaining necessary consents for processing such data.

    " }, "GetAnswer":{ "name":"GetAnswer", @@ -243,6 +244,23 @@ ], "documentation":"

    Get the answer to a specific question in a workload review.

    " }, + "GetConsolidatedReport":{ + "name":"GetConsolidatedReport", + "http":{ + "method":"GET", + "requestUri":"/consolidatedReport" + }, + "input":{"shape":"GetConsolidatedReportInput"}, + "output":{"shape":"GetConsolidatedReportOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"} + ], + "documentation":"

    Get a consolidated report of your workloads.

    You can optionally choose to include workloads that have been shared with you.

    " + }, "GetLens":{ "name":"GetLens", "http":{ @@ -362,7 +380,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Import a new lens.

    The lens cannot be applied to workloads or shared with other Amazon Web Services accounts until it's published with CreateLensVersion

    Lenses are defined in JSON. For more information, see JSON format specification in the Well-Architected Tool User Guide.

    A custom lens cannot exceed 500 KB in size.

    Disclaimer

    Do not include or gather personal identifiable information (PII) of end users or other identifiable individuals in or via your custom lenses. If your custom lens or those shared with you and used in your account do include or collect PII you are responsible for: ensuring that the included PII is processed in accordance with applicable law, providing adequate privacy notices, and obtaining necessary consents for processing such data.

    " + "documentation":"

    Import a new custom lens or update an existing custom lens.

    To update an existing custom lens, specify its ARN as the LensAlias. If no ARN is specified, a new custom lens is created.

    The new or updated lens will have a status of DRAFT. The lens cannot be applied to workloads or shared with other Amazon Web Services accounts until it's published with CreateLensVersion.

    Lenses are defined in JSON. For more information, see JSON format specification in the Well-Architected Tool User Guide.

    A custom lens cannot exceed 500 KB in size.

    Disclaimer

    Do not include or gather personal identifiable information (PII) of end users or other identifiable individuals in or via your custom lenses. If your custom lens or those shared with you and used in your account do include or collect PII you are responsible for: ensuring that the included PII is processed in accordance with applicable law, providing adequate privacy notices, and obtaining necessary consents for processing such data.

    " }, "ListAnswers":{ "name":"ListAnswers", @@ -379,7 +397,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    List of answers.

    " + "documentation":"

    List of answers for a particular workload and lens.

    " }, "ListCheckDetails":{ "name":"ListCheckDetails", @@ -447,7 +465,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    List lens reviews.

    " + "documentation":"

    List lens reviews for a particular workload.

    " }, "ListLensShares":{ "name":"ListLensShares", @@ -576,7 +594,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    List workloads. Paginated.

    " + "documentation":"

    Paginated list of workloads.

    " }, "TagResource":{ "name":"TagResource", @@ -656,7 +674,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Update lens review.

    " + "documentation":"

    Update lens review for a particular workload.

    " }, "UpdateShareInvitation":{ "name":"UpdateShareInvitation", @@ -727,7 +745,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

    Upgrade lens review.

    " + "documentation":"

    Upgrade lens review for a particular workload.

    " } }, "shapes":{ @@ -759,14 +777,14 @@ "members":{ "Type":{ "shape":"AdditionalResourceType", - "documentation":"

    Type of additional resource.

    " + "documentation":"

    Type of additional resource for a custom lens.

    " }, "Content":{ "shape":"Urls", - "documentation":"

    The URLs for additional resources, either helpful resources or improvement plans. Up to five additional URLs can be specified.

    " + "documentation":"

    The URLs for additional resources, either helpful resources or improvement plans, for a custom lens. Up to five additional URLs can be specified.

    " } }, - "documentation":"

    The choice level additional resources.

    " + "documentation":"

    The choice level additional resources for a custom lens.

    This field does not apply to Amazon Web Services official lenses.

    " }, "AdditionalResourcesList":{ "type":"list", @@ -783,7 +801,7 @@ "HelpfulResourceUrl":{"shape":"HelpfulResourceUrl"}, "HelpfulResourceDisplayText":{ "shape":"DisplayText", - "documentation":"

    The helpful resource text to be displayed.

    " + "documentation":"

    The helpful resource text to be displayed for a custom lens.

    This field does not apply to Amazon Web Services official lenses.

    " }, "Choices":{"shape":"Choices"}, "SelectedChoices":{"shape":"SelectedChoices"}, @@ -870,7 +888,19 @@ }, "Base64String":{ "type":"string", - "documentation":"

    The Base64-encoded string representation of a lens review report.

    This data can be used to create a PDF file.

    " + "documentation":"

    The Base64-encoded string representation of a lens review report.

    This data can be used to create a PDF file.

    Only returned by GetConsolidatedReport when PDF format is requested.

    " + }, + "BestPractice":{ + "type":"structure", + "members":{ + "ChoiceId":{"shape":"ChoiceId"}, + "ChoiceTitle":{"shape":"ChoiceTitle"} + }, + "documentation":"

    A best practice, or question choice, that has been identified as a risk in this question.

    " + }, + "BestPractices":{ + "type":"list", + "member":{"shape":"BestPractice"} }, "CheckDescription":{"type":"string"}, "CheckDetail":{ @@ -1000,15 +1030,15 @@ "Description":{"shape":"ChoiceDescription"}, "HelpfulResource":{ "shape":"ChoiceContent", - "documentation":"

    The choice level helpful resource.

    " + "documentation":"

    The helpful resource (both text and URL) for a particular choice.

    This field only applies to custom lenses. Each choice can have only one helpful resource.

    " }, "ImprovementPlan":{ "shape":"ChoiceContent", - "documentation":"

    The choice level improvement plan.

    " + "documentation":"

    The improvement plan (both text and URL) for a particular choice.

    This field only applies to custom lenses. Each choice can have only one improvement plan.

    " }, "AdditionalResources":{ "shape":"AdditionalResourcesList", - "documentation":"

    The additional resources for a choice. A choice can have up to two additional resources: one of type HELPFUL_RESOURCE, one of type IMPROVEMENT_PLAN, or both.

    " + "documentation":"

    The additional resources for a choice in a custom lens.

    A choice can have up to two additional resources: one of type HELPFUL_RESOURCE, one of type IMPROVEMENT_PLAN, or both.

    " } }, "documentation":"

    A choice available to answer question.

    " @@ -1166,7 +1196,7 @@ }, "ClientRequestToken":{ "type":"string", - "documentation":"

    A unique case-sensitive string used to ensure that this request is idempotent (executes only once).

    You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after it has completed successfully, the result of the original request is returned.

    This token is listed as required, however, if you do not specify it, the Amazon Web Services SDKs automatically generate one for you. If you are not using the Amazon Web Services SDK or the CLI, you must provide this token or the request will fail.

    " + "documentation":"

    A unique case-sensitive string used to ensure that this request is idempotent (executes only once).

    You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after the original request has completed successfully, the result of the original request is returned.

    This token is listed as required, however, if you do not specify it, the Amazon Web Services SDKs automatically generate one for you. If you are not using the Amazon Web Services SDK or the CLI, you must provide this token or the request will fail.

    " }, "ConflictException":{ "type":"structure", @@ -1180,10 +1210,37 @@ "ResourceId":{"shape":"ExceptionResourceId"}, "ResourceType":{"shape":"ExceptionResourceType"} }, - "documentation":"

    The resource already exists.

    ", + "documentation":"

    The resource has already been processed, was deleted, or is too large.

    ", "error":{"httpStatusCode":409}, "exception":true }, + "ConsolidatedReportMetric":{ + "type":"structure", + "members":{ + "MetricType":{ + "shape":"MetricType", + "documentation":"

    The metric type of a metric in the consolidated report. Currently only WORKLOAD metric types are supported.

    " + }, + "RiskCounts":{"shape":"RiskCounts"}, + "WorkloadId":{"shape":"WorkloadId"}, + "WorkloadName":{"shape":"WorkloadName"}, + "WorkloadArn":{"shape":"WorkloadArn"}, + "UpdatedAt":{"shape":"Timestamp"}, + "Lenses":{ + "shape":"LensMetrics", + "documentation":"

    The metrics for the lenses in the workload.

    " + }, + "LensesAppliedCount":{ + "shape":"LensesAppliedCount", + "documentation":"

    The total number of lenses applied to the workload.

    " + } + }, + "documentation":"

    A metric that contributes to the consolidated report.

    " + }, + "ConsolidatedReportMetrics":{ + "type":"list", + "member":{"shape":"ConsolidatedReportMetric"} + }, "Count":{ "type":"integer", "documentation":"

    A non-negative integer that denotes how many.

    ", @@ -1529,7 +1586,7 @@ "members":{ "LensJSON":{ "shape":"LensJSON", - "documentation":"

    The JSON for the lens.

    " + "documentation":"

    The JSON representation of a lens.

    " } } }, @@ -1583,6 +1640,51 @@ }, "documentation":"

    Output of a get answer call.

    " }, + "GetConsolidatedReportInput":{ + "type":"structure", + "required":["Format"], + "members":{ + "Format":{ + "shape":"ReportFormat", + "documentation":"

    The format of the consolidated report.

    For PDF, Base64String is returned. For JSON, Metrics is returned.

    ", + "location":"querystring", + "locationName":"Format" + }, + "IncludeSharedResources":{ + "shape":"IncludeSharedResources", + "documentation":"

    Set to true to have shared resources included in the report.

    ", + "location":"querystring", + "locationName":"IncludeSharedResources" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"GetConsolidatedReportMaxResults", + "documentation":"

    The maximum number of results to return for this request.

    ", + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "GetConsolidatedReportMaxResults":{ + "type":"integer", + "max":15, + "min":1 + }, + "GetConsolidatedReportOutput":{ + "type":"structure", + "members":{ + "Metrics":{ + "shape":"ConsolidatedReportMetrics", + "documentation":"

    The metrics that make up the consolidated report.

    Only returned when JSON format is requested.

    " + }, + "NextToken":{"shape":"NextToken"}, + "Base64String":{"shape":"Base64String"} + } + }, "GetLensInput":{ "type":"structure", "required":["LensAlias"], @@ -1772,7 +1874,7 @@ }, "HelpfulResourceUrl":{ "type":"string", - "documentation":"

    The helpful resource URL for a question.

    ", + "documentation":"

    The helpful resource URL.

    For Amazon Web Services official lenses, this is the helpful resource URL for a question or choice.

    For custom lenses, this is the helpful resource URL for a question and is only provided if HelpfulResourceDisplayText was specified for the question.

    ", "max":2048, "min":1 }, @@ -1803,7 +1905,7 @@ "members":{ "LensArn":{ "shape":"LensArn", - "documentation":"

    The ARN for the lens.

    " + "documentation":"

    The ARN for the lens that was created or updated.

    " }, "Status":{ "shape":"ImportLensStatus", @@ -1821,7 +1923,7 @@ }, "ImprovementPlanUrl":{ "type":"string", - "documentation":"

    The improvement plan URL for a question.

    This value is only available if the question has been answered.

    ", + "documentation":"

    The improvement plan URL for a question in an Amazon Web Services official lenses.

    This value is only available if the question has been answered.

    This value does not apply to custom lenses.

    ", "max":2048, "min":1 }, @@ -1845,6 +1947,7 @@ }, "documentation":"

    An improvement summary of a lens review in a workload.

    " }, + "IncludeSharedResources":{"type":"boolean"}, "InternalServerException":{ "type":"structure", "required":["Message"], @@ -1892,7 +1995,7 @@ }, "LensAlias":{ "type":"string", - "documentation":"

    The alias of the lens.

    For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

    For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

    Each lens is identified by its LensSummary$LensAlias.

    ", + "documentation":"

    The alias of the lens.

    For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-east-1::lens/serverless. Note that some operations (such as ExportLens and CreateLensShare) are not permitted on Amazon Web Services official lenses.

    For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-west-2:123456789012:lens/0123456789abcdef01234567890abcdef.

    Each lens is identified by its LensSummary$LensAlias.

    ", "max":128, "min":1 }, @@ -1914,6 +2017,25 @@ "max":500000, "min":2 }, + "LensMetric":{ + "type":"structure", + "members":{ + "LensArn":{ + "shape":"LensArn", + "documentation":"

    The lens ARN.

    " + }, + "Pillars":{ + "shape":"PillarMetrics", + "documentation":"

    The metrics for the pillars in a lens.

    " + }, + "RiskCounts":{"shape":"RiskCounts"} + }, + "documentation":"

    A metric for a particular lens in a workload.

    " + }, + "LensMetrics":{ + "type":"list", + "member":{"shape":"LensMetric"} + }, "LensName":{ "type":"string", "documentation":"

    The full name of the lens.

    ", @@ -2091,6 +2213,10 @@ "max":32, "min":1 }, + "LensesAppliedCount":{ + "type":"integer", + "min":0 + }, "ListAnswersInput":{ "type":"structure", "required":[ @@ -2604,6 +2730,10 @@ "max":50, "min":1 }, + "MetricType":{ + "type":"string", + "enum":["WORKLOAD"] + }, "Milestone":{ "type":"structure", "members":{ @@ -2716,6 +2846,22 @@ "max":64, "min":1 }, + "PillarMetric":{ + "type":"structure", + "members":{ + "PillarId":{"shape":"PillarId"}, + "RiskCounts":{"shape":"RiskCounts"}, + "Questions":{ + "shape":"QuestionMetrics", + "documentation":"

    The questions that have been identified as risks in the pillar.

    " + } + }, + "documentation":"

    A metric for a particular pillar in a lens.

    " + }, + "PillarMetrics":{ + "type":"list", + "member":{"shape":"PillarMetric"} + }, "PillarName":{ "type":"string", "documentation":"

    The name of the pillar.

    ", @@ -2771,6 +2917,22 @@ "max":128, "min":1 }, + "QuestionMetric":{ + "type":"structure", + "members":{ + "QuestionId":{"shape":"QuestionId"}, + "Risk":{"shape":"Risk"}, + "BestPractices":{ + "shape":"BestPractices", + "documentation":"

    The best practices, or choices, that have been identified as contributing to risk in a question.

    " + } + }, + "documentation":"

    A metric for a particular question in the pillar.

    " + }, + "QuestionMetrics":{ + "type":"list", + "member":{"shape":"QuestionMetric"} + }, "QuestionTitle":{ "type":"string", "documentation":"

    The title of the question.

    ", @@ -2781,6 +2943,13 @@ "type":"string", "documentation":"

    Service Quotas requirement to identify originating quota.

    " }, + "ReportFormat":{ + "type":"string", + "enum":[ + "PDF", + "JSON" + ] + }, "ResourceNotFoundException":{ "type":"structure", "required":[ @@ -2812,7 +2981,7 @@ "type":"map", "key":{"shape":"Risk"}, "value":{"shape":"Count"}, - "documentation":"

    A map from risk names to the count of how questions have that rating.

    " + "documentation":"

    A map from risk names to the count of how many questions have that rating.

    " }, "SelectedChoices":{ "type":"list", diff --git a/services/wisdom/pom.xml b/services/wisdom/pom.xml index a51a995c7532..7b6313aea580 100644 --- a/services/wisdom/pom.xml +++ b/services/wisdom/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT wisdom AWS Java SDK :: Services :: Wisdom diff --git a/services/wisdom/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/wisdom/src/main/resources/codegen-resources/endpoint-rule-set.json index 84ca7760cecd..ed174d9d57a2 100644 --- a/services/wisdom/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/wisdom/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,90 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] }, - "supportsFIPS" + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] }, { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsDualStack" + true ] } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://wisdom-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsFIPS" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -222,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://wisdom-fips.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://wisdom.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -231,74 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://wisdom.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "endpoint": { - "url": "https://wisdom.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/wisdom/src/main/resources/codegen-resources/endpoint-tests.json b/services/wisdom/src/main/resources/codegen-resources/endpoint-tests.json index 2da46a4bac26..992d9927332d 100644 --- a/services/wisdom/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/wisdom/src/main/resources/codegen-resources/endpoint-tests.json @@ -1,42 +1,29 @@ { "testCases": [ { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wisdom-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.eu-central-1.amazonaws.com" + "url": "https://wisdom.ap-northeast-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-central-1" + "UseFIPS": false, + "Region": "ap-northeast-1" } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom.eu-central-1.api.aws" + "url": "https://wisdom.ap-southeast-2.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" + "Region": "ap-southeast-2" } }, { @@ -47,48 +34,35 @@ } }, "params": { - "UseFIPS": false, "UseDualStack": false, + "UseFIPS": false, "Region": "eu-central-1" } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://wisdom-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.us-west-2.amazonaws.com" + "url": "https://wisdom.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-west-2" + "UseFIPS": false, + "Region": "eu-west-2" } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom.us-west-2.api.aws" + "url": "https://wisdom.us-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" + "Region": "us-east-1" } }, { @@ -99,230 +73,230 @@ } }, "params": { - "UseFIPS": false, "UseDualStack": false, + "UseFIPS": false, "Region": "us-west-2" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.eu-west-2.api.aws" + "url": "https://wisdom-fips.us-east-1.api.aws" } }, "params": { - "UseFIPS": true, "UseDualStack": true, - "Region": "eu-west-2" + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.eu-west-2.amazonaws.com" + "url": "https://wisdom-fips.us-east-1.amazonaws.com" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "eu-west-2" + "UseFIPS": true, + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wisdom.eu-west-2.api.aws" + "url": "https://wisdom.us-east-1.api.aws" } }, "params": { - "UseFIPS": false, "UseDualStack": true, - "Region": "eu-west-2" + "UseFIPS": false, + "Region": "us-east-1" } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wisdom.eu-west-2.amazonaws.com" + "url": "https://wisdom-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.ap-northeast-1.api.aws" + "url": "https://wisdom-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.ap-northeast-1.amazonaws.com" + "url": "https://wisdom.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom.ap-northeast-1.api.aws" + "url": "https://wisdom.cn-north-1.amazonaws.com.cn" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" + "Region": "cn-north-1" } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wisdom.ap-northeast-1.amazonaws.com" + "url": "https://wisdom-fips.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.ap-southeast-2.api.aws" + "url": "https://wisdom-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.ap-southeast-2.amazonaws.com" + "url": "https://wisdom.us-gov-east-1.api.aws" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom.ap-southeast-2.api.aws" + "url": "https://wisdom.us-gov-east-1.amazonaws.com" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" + "Region": "us-gov-east-1" } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom.ap-southeast-2.amazonaws.com" + "url": "https://wisdom-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "ap-southeast-2" + "UseFIPS": true, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.us-east-1.api.aws" + "url": "https://wisdom.us-iso-east-1.c2s.ic.gov" } }, "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom-fips.us-east-1.amazonaws.com" + "url": "https://wisdom-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { - "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": true, + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://wisdom.us-east-1.api.aws" + "url": "https://wisdom.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "UseDualStack": false, "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "Region": "us-isob-east-1" } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://wisdom.us-east-1.amazonaws.com" + "url": "https://example.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { - "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -332,8 +306,8 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, "UseDualStack": false, + "UseFIPS": true, "Region": "us-east-1", "Endpoint": "https://example.com" } @@ -344,8 +318,8 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, "UseDualStack": true, + "UseFIPS": false, "Region": "us-east-1", "Endpoint": "https://example.com" } diff --git a/services/wisdom/src/main/resources/codegen-resources/service-2.json b/services/wisdom/src/main/resources/codegen-resources/service-2.json index b4b2f1ffecaa..c4c4b9ccfa60 100644 --- a/services/wisdom/src/main/resources/codegen-resources/service-2.json +++ b/services/wisdom/src/main/resources/codegen-resources/service-2.json @@ -83,7 +83,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

    Creates a knowledge base.

    When using this API, you cannot reuse Amazon AppIntegrations DataIntegrations with external knowledge bases such as Salesforce and ServiceNow. If you do, you'll get an InvalidRequestException error.

     <p>For example, you're programmatically managing your external knowledge base, and you want to add or remove one of the fields that is being ingested from Salesforce. Do the following:</p> <ol> <li> <p>Call <a href="https://docs.aws.amazon.com/wisdom/latest/APIReference/API_DeleteKnowledgeBase.html">DeleteKnowledgeBase</a>.</p> </li> <li> <p>Call <a href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_DeleteDataIntegration.html">DeleteDataIntegration</a>.</p> </li> <li> <p>Call <a href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a> to recreate the DataIntegration or a create different one.</p> </li> <li> <p>Call CreateKnowledgeBase.</p> </li> </ol> </note> 
    ", + "documentation":"

    Creates a knowledge base.

    When using this API, you cannot reuse Amazon AppIntegrations DataIntegrations with external knowledge bases such as Salesforce and ServiceNow. If you do, you'll get an InvalidRequestException error.

    For example, you're programmatically managing your external knowledge base, and you want to add or remove one of the fields that is being ingested from Salesforce. Do the following:

    1. Call DeleteKnowledgeBase.

    2. Call DeleteDataIntegration.

    3. Call CreateDataIntegration to recreate the DataIntegration or a create different one.

    4. Call CreateKnowledgeBase.

    ", "idempotent":true }, "CreateSession":{ @@ -537,18 +537,15 @@ }, "AppIntegrationsConfiguration":{ "type":"structure", - "required":[ - "appIntegrationArn", - "objectFields" - ], + "required":["appIntegrationArn"], "members":{ "appIntegrationArn":{ "shape":"GenericArn", - "documentation":"

    The Amazon Resource Name (ARN) of the AppIntegrations DataIntegration to use for ingesting content.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the AppIntegrations DataIntegration to use for ingesting content.

    • For Salesforce, your AppIntegrations DataIntegration must have an ObjectConfiguration if objectFields is not provided, including at least Id, ArticleNumber, VersionNumber, Title, PublishStatus, and IsDeleted as source fields.

    • For ServiceNow, your AppIntegrations DataIntegration must have an ObjectConfiguration if objectFields is not provided, including at least number, short_description, sys_mod_count, workflow_state, and active as source fields.

    • For Zendesk, your AppIntegrations DataIntegration must have an ObjectConfiguration if objectFields is not provided, including at least id, title, updated_at, and draft as source fields.

    • For SharePoint, your AppIntegrations DataIntegration must have a FileConfiguration, including only file extensions that are among docx, pdf, html, htm, and txt.

    " }, "objectFields":{ "shape":"ObjectFieldsList", - "documentation":"

    The fields from the source that are made available to your agents in Wisdom.

    • For Salesforce, you must include at least Id, ArticleNumber, VersionNumber, Title, PublishStatus, and IsDeleted.

    • For ServiceNow, you must include at least number, short_description, sys_mod_count, workflow_state, and active.

    Make sure to include additional fields. These fields are indexed and used to source recommendations.

    " + "documentation":"

    The fields from the source that are made available to your agents in Wisdom. Optional if ObjectConfiguration is included in the provided DataIntegration.

    • For Salesforce, you must include at least Id, ArticleNumber, VersionNumber, Title, PublishStatus, and IsDeleted.

    • For ServiceNow, you must include at least number, short_description, sys_mod_count, workflow_state, and active.

    • For Zendesk, you must include at least id, title, updated_at, and draft.

    Make sure to include additional fields. These fields are indexed and used to source recommendations.

    " } }, "documentation":"

    Configuration information for Amazon AppIntegrations to automatically ingest content.

    " @@ -1017,7 +1014,7 @@ }, "clientToken":{ "shape":"ClientToken", - "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "tags":{ @@ -1044,7 +1041,7 @@ "members":{ "clientToken":{ "shape":"ClientToken", - "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "description":{ @@ -1088,7 +1085,7 @@ "members":{ "clientToken":{ "shape":"NonEmptyString", - "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "knowledgeBaseId":{ @@ -1141,7 +1138,7 @@ "members":{ "clientToken":{ "shape":"NonEmptyString", - "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "description":{ @@ -1198,7 +1195,7 @@ }, "clientToken":{ "shape":"ClientToken", - "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    ", + "documentation":"

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

    ", "idempotencyToken":true }, "description":{ @@ -2221,7 +2218,7 @@ "members":{ "templateUri":{ "shape":"Uri", - "documentation":"

    A URI template containing exactly one variable in ${variableName} format. This can only be set for EXTERNAL knowledge bases. For Salesforce and ServiceNow, the variable must be one of the following:

    • Salesforce: Id, ArticleNumber, VersionNumber, Title, PublishStatus, or IsDeleted

    • ServiceNow: number, short_description, sys_mod_count, workflow_state, or active

     <p>The variable is replaced with the actual value for a piece of content when calling <a href="https://docs.aws.amazon.com/wisdom/latest/APIReference/API_GetContent.html">GetContent</a>. </p> 
    " + "documentation":"

    A URI template containing exactly one variable in ${variableName} format. This can only be set for EXTERNAL knowledge bases. For Salesforce, ServiceNow, and Zendesk, the variable must be one of the following:

    • Salesforce: Id, ArticleNumber, VersionNumber, Title, PublishStatus, or IsDeleted

    • ServiceNow: number, short_description, sys_mod_count, workflow_state, or active

    • Zendesk: id, title, updated_at, or draft

    The variable is replaced with the actual value for a piece of content when calling GetContent.

    " } }, "documentation":"

    Information about how to render the content.

    " @@ -2728,5 +2725,5 @@ "min":0 } }, - "documentation":"

    Amazon Connect Wisdom delivers agents the information they need to solve customer issues as they're actively speaking with customers. Agents can search across connected repositories from within their agent desktop to find answers quickly. Use the Amazon Connect Wisdom APIs to create an assistant and a knowledge base, for example, or manage content by uploading custom files.

    " + "documentation":"

    Amazon Connect Wisdom delivers agents the information they need to solve customer issues as they're actively speaking with customers. Agents can search across connected repositories from within their agent desktop to find answers quickly. Use Amazon Connect Wisdom to create an assistant and a knowledge base, for example, or manage content by uploading custom files.

    " } diff --git a/services/workdocs/pom.xml b/services/workdocs/pom.xml index 5c1e232c0196..b66481f119b6 100644 --- a/services/workdocs/pom.xml +++ b/services/workdocs/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT workdocs AWS Java SDK :: Services :: Amazon WorkDocs diff --git a/services/workdocs/src/main/resources/codegen-resources/endpoint-rule-set.json b/services/workdocs/src/main/resources/codegen-resources/endpoint-rule-set.json index 263bf0d6bea0..781aaf4e4d9d 100644 --- a/services/workdocs/src/main/resources/codegen-resources/endpoint-rule-set.json +++ b/services/workdocs/src/main/resources/codegen-resources/endpoint-rule-set.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,13 +32,12 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], "type": "tree", @@ -46,14 +45,20 @@ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true ] } ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], "type": "tree", "rules": [ { @@ -62,67 +67,42 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", "type": "error" }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "endpoint": { + "url": { + "ref": "Endpoint" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ { "conditions": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - }, - { - "fn": "booleanEquals", + "fn": "isSet", "argv": [ { - "ref": "UseDualStack" - }, - true + "ref": "Region" + } ] } ], @@ -131,154 +111,215 @@ { "conditions": [ { - "fn": "booleanEquals", + "fn": "aws.partition", "argv": [ - true, { - "fn": "getAttr", + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, + }, { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workdocs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://workdocs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseFIPS" }, - "supportsFIPS" + true ] } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], + ], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workdocs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, { "conditions": [], - "endpoint": { - "url": "https://workdocs-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } ] - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "ref": "UseDualStack" }, - "supportsDualStack" + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workdocs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] - } - ], - "type": "tree", - "rules": [ + }, { "conditions": [], "type": "tree", @@ -286,7 +327,7 @@ { "conditions": [], "endpoint": { - "url": "https://workdocs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "url": "https://workdocs.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -295,28 +336,13 @@ ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } ] }, { "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://workdocs.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } diff --git a/services/workdocs/src/main/resources/codegen-resources/endpoint-tests.json b/services/workdocs/src/main/resources/codegen-resources/endpoint-tests.json index a71de5623667..24d3d86a5f50 100644 --- a/services/workdocs/src/main/resources/codegen-resources/endpoint-tests.json +++ b/services/workdocs/src/main/resources/codegen-resources/endpoint-tests.json @@ -287,7 +287,7 @@ } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -300,6 +300,19 @@ "Endpoint": "https://example.com" } }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, { "documentation": "For custom endpoint with fips enabled and dualstack disabled", "expect": { diff --git a/services/workdocs/src/main/resources/codegen-resources/paginators-1.json b/services/workdocs/src/main/resources/codegen-resources/paginators-1.json index 42c39b2ff476..5d528c1069d5 100644 --- a/services/workdocs/src/main/resources/codegen-resources/paginators-1.json +++ b/services/workdocs/src/main/resources/codegen-resources/paginators-1.json @@ -1,5 +1,17 @@ { "pagination": { + "DescribeActivities": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "UserActivities" + }, + "DescribeComments": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Comments" + }, "DescribeDocumentVersions": { "input_token": "Marker", "limit_key": "Limit", @@ -15,11 +27,41 @@ "Documents" ] }, + "DescribeGroups": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Groups" + }, + "DescribeNotificationSubscriptions": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Subscriptions" + }, + "DescribeResourcePermissions": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Principals" + }, + "DescribeRootFolders": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Folders" + }, "DescribeUsers": { "input_token": "Marker", "limit_key": "Limit", "output_token": "Marker", "result_key": "Users" + }, + "SearchResources": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Items" } } } \ No newline at end of file diff --git a/services/workdocs/src/main/resources/codegen-resources/service-2.json b/services/workdocs/src/main/resources/codegen-resources/service-2.json index 1043622fe16d..1e1f1518f580 100644 --- a/services/workdocs/src/main/resources/codegen-resources/service-2.json +++ b/services/workdocs/src/main/resources/codegen-resources/service-2.json @@ -692,7 +692,8 @@ {"shape":"ServiceUnavailableException"}, {"shape":"DraftUploadOutOfSyncException"}, {"shape":"ResourceAlreadyCheckedOutException"}, - {"shape":"InvalidPasswordException"} + {"shape":"InvalidPasswordException"}, + {"shape":"InvalidArgumentException"} ], "documentation":"

    Creates a new document object and version object.

    The client specifies the parent folder ID and name of the document to upload. The ID is optionally specified when creating a new version of an existing document. This is the first step to upload a document. Next, upload the document to the URL returned from the call, and then call UpdateDocumentVersion.

    To cancel the document upload, call AbortDocumentVersionUpload.

    " }, @@ -748,6 +749,23 @@ ], "documentation":"

    Recovers a deleted version of an Amazon WorkDocs document.

    " }, + "SearchResources":{ + "name":"SearchResources", + "http":{ + "method":"POST", + "requestUri":"/api/v1/search", + "responseCode":200 + }, + "input":{"shape":"SearchResourcesRequest"}, + "output":{"shape":"SearchResourcesResponse"}, + "errors":[ + {"shape":"InvalidArgumentException"}, + {"shape":"UnauthorizedResourceAccessException"}, + {"shape":"UnauthorizedOperationException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

    Searches metadata and the content of folders, documents, document versions, and comments.

    " + }, "UpdateDocument":{ "name":"UpdateDocument", "http":{ @@ -1014,6 +1032,14 @@ } } }, + "AdditionalResponseFieldType":{ + "type":"string", + "enum":["WEBURL"] + }, + "AdditionalResponseFieldsList":{ + "type":"list", + "member":{"shape":"AdditionalResponseFieldType"} + }, "AuthenticationHeaderType":{ "type":"string", "max":8199, @@ -1103,6 +1129,10 @@ "RecipientId":{ "shape":"IdType", "documentation":"

    The ID of the user being replied to.

    " + }, + "ContributorId":{ + "shape":"IdType", + "documentation":"

    The ID of the user who made the comment.

    " } }, "documentation":"

    Describes the metadata of a comment.

    " @@ -1146,6 +1176,20 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ContentCategoryType":{ + "type":"string", + "enum":[ + "IMAGE", + "DOCUMENT", + "PDF", + "SPREADSHEET", + "PRESENTATION", + "AUDIO", + "VIDEO", + "SOURCE_CODE", + "OTHER" + ] + }, "CreateCommentRequest":{ "type":"structure", "required":[ @@ -1427,6 +1471,20 @@ "min":1, "pattern":"[a-zA-Z0-9._+-/=][a-zA-Z0-9 ._+-/=]*" }, + "DateRangeType":{ + "type":"structure", + "members":{ + "StartValue":{ + "shape":"TimestampType", + "documentation":"

    Timestamp range start value (in epochs)

    " + }, + "EndValue":{ + "shape":"TimestampType", + "documentation":"

    Timestamp range end value (in epochs).

    " + } + }, + "documentation":"

    Filters results based on timestamp range (in epochs).

    " + }, "DeactivateUserRequest":{ "type":"structure", "required":["UserId"], @@ -2419,6 +2477,52 @@ "min":1, "pattern":"[\\w,]+" }, + "Filters":{ + "type":"structure", + "members":{ + "TextLocales":{ + "shape":"TextLocaleTypeList", + "documentation":"

    Filters by the locale of the content or comment.

    " + }, + "ContentCategories":{ + "shape":"SearchContentCategoryTypeList", + "documentation":"

    Filters by content category.

    " + }, + "ResourceTypes":{ + "shape":"SearchResourceTypeList", + "documentation":"

    Filters based on entity type.

    " + }, + "Labels":{ + "shape":"SearchLabelList", + "documentation":"

    Filter by labels using exact match.

    " + }, + "Principals":{ + "shape":"SearchPrincipalTypeList", + "documentation":"

    Filter based on UserIds or GroupIds.

    " + }, + "AncestorIds":{ + "shape":"SearchAncestorIdList", + "documentation":"

    Filter based on resource’s path.

    " + }, + "SearchCollectionTypes":{ + "shape":"SearchCollectionTypeList", + "documentation":"

    Filter based on file groupings.

    " + }, + "SizeRange":{ + "shape":"LongRangeType", + "documentation":"

    Filter based on size (in bytes).

    " + }, + "CreatedRange":{ + "shape":"DateRangeType", + "documentation":"

    Filter based on resource’s creation timestamp.

    " + }, + "ModifiedRange":{ + "shape":"DateRangeType", + "documentation":"

    Filter based on resource’s modified timestamp.

    " + } + }, + "documentation":"

    Filters results based on entity metadata.

    " + }, "FolderContentType":{ "type":"string", "enum":[ @@ -2909,6 +3013,42 @@ "error":{"httpStatusCode":401}, "exception":true }, + "LanguageCodeType":{ + "type":"string", + "enum":[ + "AR", + "BG", + "BN", + "DA", + "DE", + "CS", + "EL", + "EN", + "ES", + "FA", + "FI", + "FR", + "HI", + "HU", + "ID", + "IT", + "JA", + "KO", + "LT", + "LV", + "NL", + "NO", + "PT", + "RO", + "RU", + "SV", + "SW", + "TH", + "TR", + "ZH", + "DEFAULT" + ] + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -2939,6 +3079,21 @@ "default" ] }, + "LongRangeType":{ + "type":"structure", + "members":{ + "StartValue":{ + "shape":"LongType", + "documentation":"

    The size start range (in bytes).

    " + }, + "EndValue":{ + "shape":"LongType", + "documentation":"

    The size end range (in bytes).

    " + } + }, + "documentation":"

    Filter based on size (in bytes).

    " + }, + "LongType":{"type":"long"}, "MarkerType":{ "type":"string", "max":2048, @@ -2951,6 +3106,12 @@ "min":0, "sensitive":true }, + "NextMarkerType":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\d]+" + }, "NotificationOptions":{ "type":"structure", "members":{ @@ -2965,6 +3126,16 @@ }, "documentation":"

    Set of options which defines notification preferences of given action.

    " }, + "OrderByFieldType":{ + "type":"string", + "enum":[ + "RELEVANCE", + "NAME", + "SIZE", + "CREATED_TIMESTAMP", + "MODIFIED_TIMESTAMP" + ] + }, "OrderType":{ "type":"string", "enum":[ @@ -3050,6 +3221,15 @@ "type":"list", "member":{"shape":"Principal"} }, + "PrincipalRoleType":{ + "type":"string", + "enum":[ + "VIEWER", + "CONTRIBUTOR", + "OWNER", + "COOWNER" + ] + }, "PrincipalType":{ "type":"string", "enum":[ @@ -3186,7 +3366,8 @@ "type":"string", "max":255, "min":1, - "pattern":"[\\u0020-\\u202D\\u202F-\\uFFFF]+" + "pattern":"[\\u0020-\\u202D\\u202F-\\uFFFF]+", + "sensitive":true }, "ResourcePath":{ "type":"structure", @@ -3239,6 +3420,57 @@ "DOCUMENT" ] }, + "ResponseItem":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"ResponseItemType", + "documentation":"

    The type of item being returned.

    " + }, + "WebUrl":{ + "shape":"ResponseItemWebUrl", + "documentation":"

    The webUrl of the item being returned.

    " + }, + "DocumentMetadata":{ + "shape":"DocumentMetadata", + "documentation":"

    The document that matches the query.

    " + }, + "FolderMetadata":{ + "shape":"FolderMetadata", + "documentation":"

    The folder that matches the query.

    " + }, + "CommentMetadata":{ + "shape":"CommentMetadata", + "documentation":"

    The comment that matches the query.

    " + }, + "DocumentVersionMetadata":{ + "shape":"DocumentVersionMetadata", + "documentation":"

    The document version that matches the metadata.

    " + } + }, + "documentation":"

    List of Documents, Folders, Comments, and Document Versions matching the query.

    " + }, + "ResponseItemType":{ + "type":"string", + "enum":[ + "DOCUMENT", + "FOLDER", + "COMMENT", + "DOCUMENT_VERSION" + ] + }, + "ResponseItemWebUrl":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\u0020-\\uFFFF]+", + "sensitive":true + }, + "ResponseItemsList":{ + "type":"list", + "member":{"shape":"ResponseItem"}, + "max":100 + }, "RestoreDocumentVersionsRequest":{ "type":"structure", "required":["DocumentId"], @@ -3273,12 +3505,86 @@ "COOWNER" ] }, + "SearchAncestorId":{ + "type":"string", + "max":128, + "min":1 + }, + "SearchAncestorIdList":{ + "type":"list", + "member":{"shape":"SearchAncestorId"}, + "max":10 + }, + "SearchCollectionType":{ + "type":"string", + "enum":[ + "OWNED", + "SHARED_WITH_ME" + ] + }, + "SearchCollectionTypeList":{ + "type":"list", + "member":{"shape":"SearchCollectionType"}, + "max":2 + }, + "SearchContentCategoryTypeList":{ + "type":"list", + "member":{"shape":"ContentCategoryType"}, + "max":9 + }, + "SearchLabel":{ + "type":"string", + "max":128, + "min":1 + }, + "SearchLabelList":{ + "type":"list", + "member":{"shape":"SearchLabel"}, + "max":10 + }, "SearchMarkerType":{ "type":"string", "max":12288, "min":1, "pattern":"[\\u0000-\\u00FF]+" }, + "SearchPrincipalRoleList":{ + "type":"list", + "member":{"shape":"PrincipalRoleType"}, + "max":4 + }, + "SearchPrincipalType":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"IdType", + "documentation":"

    UserIds or GroupIds.

    " + }, + "Roles":{ + "shape":"SearchPrincipalRoleList", + "documentation":"

    The Role of a User or Group.

    " + } + }, + "documentation":"

    Filter based on UserIds or GroupIds.

    " + }, + "SearchPrincipalTypeList":{ + "type":"list", + "member":{"shape":"SearchPrincipalType"}, + "max":10 + }, + "SearchQueryScopeType":{ + "type":"string", + "enum":[ + "NAME", + "CONTENT" + ] + }, + "SearchQueryScopeTypeList":{ + "type":"list", + "member":{"shape":"SearchQueryScopeType"}, + "max":2 + }, "SearchQueryType":{ "type":"string", "max":512, @@ -3286,6 +3592,100 @@ "pattern":"[\\u0020-\\uFFFF]+", "sensitive":true }, + "SearchResourceType":{ + "type":"string", + "enum":[ + "FOLDER", + "DOCUMENT", + "COMMENT", + "DOCUMENT_VERSION" + ] + }, + "SearchResourceTypeList":{ + "type":"list", + "member":{"shape":"SearchResourceType"}, + "max":4 + }, + "SearchResourcesRequest":{ + "type":"structure", + "members":{ + "AuthenticationToken":{ + "shape":"AuthenticationHeaderType", + "documentation":"

    Amazon WorkDocs authentication token. Not required when using Amazon Web Services administrator credentials to access the API.

    ", + "location":"header", + "locationName":"Authentication" + }, + "QueryText":{ + "shape":"SearchQueryType", + "documentation":"

    The String to search for. Searches across different text fields based on request parameters. Use double quotes around the query string for exact phrase matches.

    " + }, + "QueryScopes":{ + "shape":"SearchQueryScopeTypeList", + "documentation":"

    Filter based on the text field type. A Folder has only a name and no content. A Comment has only content and no name. A Document or Document Version has a name and content

    " + }, + "OrganizationId":{ + "shape":"IdType", + "documentation":"

    Filters based on the resource owner OrgId. This is a mandatory parameter when using Admin SigV4 credentials.

    " + }, + "AdditionalResponseFields":{ + "shape":"AdditionalResponseFieldsList", + "documentation":"

    A list of attributes to include in the response. Used to request fields that are not normally returned in a standard response.

    " + }, + "Filters":{ + "shape":"Filters", + "documentation":"

    Filters results based on entity metadata.

    " + }, + "OrderBy":{ + "shape":"SearchResultSortList", + "documentation":"

    Order by results in one or more categories.

    " + }, + "Limit":{ + "shape":"SearchResultsLimitType", + "documentation":"

    Max results count per page.

    " + }, + "Marker":{ + "shape":"NextMarkerType", + "documentation":"

    The marker for the next set of results.

    " + } + } + }, + "SearchResourcesResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"ResponseItemsList", + "documentation":"

    List of Documents, Folders, Comments, and Document Versions matching the query.

    " + }, + "Marker":{ + "shape":"NextMarkerType", + "documentation":"

    The marker to use when requesting the next set of results. If there are no additional results, the string is empty.

    " + } + } + }, + "SearchResultSortList":{ + "type":"list", + "member":{"shape":"SearchSortResult"}, + "max":1 + }, + "SearchResultsLimitType":{ + "type":"integer", + "max":100, + "min":1 + }, + "SearchSortResult":{ + "type":"structure", + "members":{ + "Field":{ + "shape":"OrderByFieldType", + "documentation":"

    Sort search results based on this field name.

    " + }, + "Order":{ + "shape":"SortOrder", + "documentation":"

    Sort direction.

    " + } + }, + "documentation":"

    The result of the sort operation.

    " + }, "ServiceUnavailableException":{ "type":"structure", "members":{ @@ -3381,6 +3781,13 @@ "value":{"shape":"HeaderValueType"} }, "SizeType":{"type":"long"}, + "SortOrder":{ + "type":"string", + "enum":[ + "ASC", + "DESC" + ] + }, "StorageLimitExceededException":{ "type":"structure", "members":{ @@ -3459,6 +3866,11 @@ "type":"string", "enum":["ALL"] }, + "TextLocaleTypeList":{ + "type":"list", + "member":{"shape":"LanguageCodeType"}, + "max":1 + }, "TimeZoneIdType":{ "type":"string", "max":256, @@ -3739,7 +4151,8 @@ "UserAttributeValueType":{ "type":"string", "max":64, - "min":1 + "min":1, + "sensitive":true }, "UserFilterType":{ "type":"string", @@ -3830,7 +4243,8 @@ "type":"string", "max":256, "min":1, - "pattern":"[\\w\\-+.]+(@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]+)?" + "pattern":"[\\w\\-+.]+(@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]+)?", + "sensitive":true } }, "documentation":"

    The Amazon WorkDocs API is designed for the following use cases:

    • File Migration: File migration applications are supported for users who want to migrate their files from an on-premises or off-premises file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files.

    • Security: Support security applications are supported for users who have additional security needs, such as antivirus or data loss prevention. The API actions, along with CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs. Then, the application can take the necessary actions and replace the target file. If the target file violates the policy, the application can also choose to email the user.

    • eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic or record the actions in an Amazon WorkDocs site, along with CloudTrail, to replicate data for eDiscovery, backup, or analytical applications.

    All Amazon WorkDocs API actions are Amazon authenticated and certificate-signed. They not only require the use of the Amazon Web Services SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model.

    The pricing for Amazon WorkDocs APIs varies depending on the API call type for these actions:

    • READ (Get*)

    • WRITE (Activate*, Add*, Create*, Deactivate*, Initiate*, Update*)

    • LIST (Describe*)

    • DELETE*, CANCEL

    For information about Amazon WorkDocs API pricing, see Amazon WorkDocs Pricing.

    " diff --git a/services/worklink/pom.xml b/services/worklink/pom.xml index 12e221bc91e9..df77aea154d1 100644 --- a/services/worklink/pom.xml +++ b/services/worklink/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT worklink AWS Java SDK :: Services :: WorkLink diff --git a/services/workmail/pom.xml b/services/workmail/pom.xml index bece39dae8f1..a3db783b4d34 100644 --- a/services/workmail/pom.xml +++ b/services/workmail/pom.xml @@ -20,7 +20,7 @@ services software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 workmail diff --git a/services/workmailmessageflow/pom.xml b/services/workmailmessageflow/pom.xml index 463ff1c54d23..e773b809350a 100644 --- a/services/workmailmessageflow/pom.xml +++ b/services/workmailmessageflow/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT workmailmessageflow AWS Java SDK :: Services :: WorkMailMessageFlow diff --git a/services/workspaces/pom.xml b/services/workspaces/pom.xml index c462745094cf..82a2765602cd 100644 --- a/services/workspaces/pom.xml +++ b/services/workspaces/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT workspaces AWS Java SDK :: Services :: Amazon WorkSpaces diff --git a/services/workspacesweb/pom.xml b/services/workspacesweb/pom.xml index ddfe4d453313..42c914aba253 100644 --- a/services/workspacesweb/pom.xml +++ b/services/workspacesweb/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT workspacesweb AWS Java SDK :: Services :: Work Spaces Web diff --git a/services/xray/pom.xml b/services/xray/pom.xml index d860136c1687..deef09fa9280 100644 --- a/services/xray/pom.xml +++ b/services/xray/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk services - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT xray AWS Java SDK :: Services :: AWS X-Ray diff --git a/test/auth-tests/pom.xml b/test/auth-tests/pom.xml index 3f21c9601f05..01979cc096b7 100644 --- a/test/auth-tests/pom.xml +++ b/test/auth-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/codegen-generated-classes-test/pom.xml b/test/codegen-generated-classes-test/pom.xml index 9dffd55b7a07..4b38621fd59a 100644 --- a/test/codegen-generated-classes-test/pom.xml +++ b/test/codegen-generated-classes-test/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/customization.config b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/customization.config index 135d79d23a04..293c611d1e24 100644 --- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/customization.config +++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/xml/customization.config @@ -1,4 +1,27 @@ { "skipEndpointTestGeneration": true, - "requiredTraitValidationEnabled": true + "requiredTraitValidationEnabled": true, + "customSdkShapes": { + "shapes":{ + "SdkPartType":{ + "type":"string", + "enum":[ + "DEFAULT", + "LAST" + ] + } + } + }, + "shapeModifiers": { + "AllTypesStructure": { + "inject": [ + { + "SdkPartType": { + "shape": "SdkPartType", + "documentation": "Indicates whether the request is a last part or not. This field will not be included in the request payload." + } + } + ] + } + } } diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/customsdkshape/CustomSdkShapeTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/customsdkshape/CustomSdkShapeTest.java new file mode 100644 index 000000000000..49a3a81d52e8 --- /dev/null +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/customsdkshape/CustomSdkShapeTest.java @@ -0,0 +1,67 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.customsdkshape; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.any; +import static com.github.tomakehurst.wiremock.client.WireMock.anyRequestedFor; +import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; +import static com.github.tomakehurst.wiremock.client.WireMock.notMatching; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; +import static com.github.tomakehurst.wiremock.client.WireMock.verify; + +import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; +import java.net.URI; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.http.SdkHttpClient; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.protocolrestxml.ProtocolRestXmlClient; + +@WireMockTest +public class CustomSdkShapeTest { + + private ProtocolRestXmlClient xmlClient; + @Mock + private SdkHttpClient mockHttpClient; + + @BeforeEach + public void setUp(WireMockRuntimeInfo wmRuntimeInfo) { + xmlClient = ProtocolRestXmlClient.builder() + .region(Region.US_WEST_2) + .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("akid", + "skid"))) + .httpClient(mockHttpClient) + .endpointOverride(URI.create("http://localhost:" + wmRuntimeInfo.getHttpPort())) + .build(); + + } + + @Test + public void requestPayloadDoesNotContainInjectedCustomShape() { + stubFor(any(urlMatching(".*")) + .willReturn(aResponse().withStatus(200).withBody(""))); + xmlClient.allTypes(c -> c.sdkPartType("DEFAULT").build()); + xmlClient.allTypes(c -> c.sdkPartType("LAST").build()); + verify(anyRequestedFor(anyUrl()).withRequestBody(notMatching("^.*SdkPartType.*$"))); + } + +} diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/serviceclientconfiguration/ServiceClientConfigurationTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/serviceclientconfiguration/ServiceClientConfigurationTest.java new file mode 100644 index 000000000000..6a0058400f27 --- /dev/null +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/serviceclientconfiguration/ServiceClientConfigurationTest.java @@ -0,0 +1,158 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package software.amazon.awssdk.services.serviceclientconfiguration; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.net.URI; +import java.time.Duration; +import org.junit.jupiter.api.Test; +import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.protocolrestxml.ProtocolRestXmlAsyncClient; +import software.amazon.awssdk.services.protocolrestxml.ProtocolRestXmlClient; + +public class ServiceClientConfigurationTest { + + @Test + public void syncClient_serviceClientConfiguration_shouldReturnCorrectRegion() { + ProtocolRestXmlClient client = ProtocolRestXmlClient.builder() + .region(Region.ME_SOUTH_1) + .build(); + + Region region = client.serviceClientConfiguration().region(); + assertThat(region).isEqualTo(Region.ME_SOUTH_1); + } + + @Test + public void syncClientWithEndpointOverride_serviceClientConfiguration_shouldReturnCorrectEndpointOverride() { + URI uri = URI.create("https://www.amazon.com/"); + ProtocolRestXmlClient client = ProtocolRestXmlClient.builder() + .endpointOverride(uri) + .build(); + + URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null); + assertThat(endpointOverride).isEqualTo(uri); + } + + @Test + public void syncClientWithoutEndpointOverride_serviceClientConfiguration_shouldReturnEmptyOptional() { + ProtocolRestXmlClient client = ProtocolRestXmlClient.builder() + .build(); + + URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null); + assertThat(endpointOverride).isNull(); + } + + @Test + public void syncClient_serviceClientConfiguration_shouldReturnCorrectClientOverrideConfigurationFields() { + ClientOverrideConfiguration overrideConfiguration = ClientOverrideConfiguration.builder() + .apiCallAttemptTimeout(Duration.ofSeconds(30)) + .apiCallTimeout(Duration.ofSeconds(90)) + .retryPolicy(c -> c.numRetries(4)) + .build(); + + ProtocolRestXmlClient client = ProtocolRestXmlClient.builder() + .overrideConfiguration(overrideConfiguration) + .build(); + + + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallAttemptTimeout().get()).isEqualTo(Duration.ofSeconds(30)); + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallTimeout().get()).isEqualTo(Duration.ofSeconds(90)); + assertThat(client.serviceClientConfiguration().overrideConfiguration().retryPolicy().get().numRetries()).isEqualTo(4); + assertThat(client.serviceClientConfiguration().overrideConfiguration().defaultProfileFile()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().metricPublishers()).isEmpty(); + } + + @Test + public void syncClient_serviceClientConfiguration_withoutOverrideConfiguration_shouldReturnEmptyFields () { + ProtocolRestXmlClient client = ProtocolRestXmlClient.builder() + .build(); + + assertThat(client.serviceClientConfiguration().overrideConfiguration().toString()).isEqualTo( + "ClientOverrideConfiguration(headers={}, executionInterceptors=[], advancedOptions={})"); + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallAttemptTimeout()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallTimeout()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().retryPolicy()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().defaultProfileFile()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().metricPublishers()).isEmpty(); + } + + @Test + public void asyncClient_serviceClientConfiguration_shouldReturnCorrectRegion() { + ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder() + .region(Region.ME_SOUTH_1) + .build(); + + Region region = client.serviceClientConfiguration().region(); + assertThat(region).isEqualTo(Region.ME_SOUTH_1); + } + + @Test + public void asyncClientWithEndpointOverride_serviceClientConfiguration_shouldReturnCorrectEndpointOverride() { + URI uri = URI.create("https://www.amazon.com/"); + ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder() + .endpointOverride(uri) + .build(); + + URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null); + assertThat(endpointOverride).isEqualTo(uri); + } + + @Test + public void asyncClientWithoutEndpointOverride_serviceClientConfiguration_shouldReturnEmptyOptional() { + ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder() + .build(); + + URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null); + assertThat(endpointOverride).isNull(); + } + + @Test + public void asyncClient_serviceClientConfiguration_shouldReturnCorrectClientOverrideConfigurationFields() { + ClientOverrideConfiguration overrideConfiguration = ClientOverrideConfiguration.builder() + .apiCallAttemptTimeout(Duration.ofSeconds(30)) + .apiCallTimeout(Duration.ofSeconds(90)) + .retryPolicy(c -> c.numRetries(4)) + .build(); + + ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder() + .overrideConfiguration(overrideConfiguration) + .build(); + + + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallAttemptTimeout().get()).isEqualTo(Duration.ofSeconds(30)); + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallTimeout().get()).isEqualTo(Duration.ofSeconds(90)); + assertThat(client.serviceClientConfiguration().overrideConfiguration().retryPolicy().get().numRetries()).isEqualTo(4); + assertThat(client.serviceClientConfiguration().overrideConfiguration().defaultProfileFile()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().metricPublishers()).isEmpty(); + } + + @Test + public void asyncClient_serviceClientConfiguration_withoutOverrideConfiguration_shouldReturnEmptyFields () { + ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder() + .build(); + + assertThat(client.serviceClientConfiguration().overrideConfiguration().toString()).isEqualTo( + "ClientOverrideConfiguration(headers={}, executionInterceptors=[], advancedOptions={})"); + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallAttemptTimeout()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().apiCallTimeout()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().retryPolicy()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().defaultProfileFile()).isNotPresent(); + assertThat(client.serviceClientConfiguration().overrideConfiguration().metricPublishers()).isEmpty(); + } + +} diff --git a/test/http-client-tests/pom.xml b/test/http-client-tests/pom.xml index b08d38088457..59cf3e6ed8e7 100644 --- a/test/http-client-tests/pom.xml +++ b/test/http-client-tests/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml http-client-tests diff --git a/test/module-path-tests/pom.xml b/test/module-path-tests/pom.xml index b0dcbe7d3882..4a606da6982a 100644 --- a/test/module-path-tests/pom.xml +++ b/test/module-path-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/protocol-tests-core/pom.xml b/test/protocol-tests-core/pom.xml index 09dac8574f26..c2cef88bcc3c 100644 --- a/test/protocol-tests-core/pom.xml +++ b/test/protocol-tests-core/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json index 4329d6d52c1a..ae115affc126 100644 --- a/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json +++ b/test/protocol-tests-core/src/main/resources/software/amazon/awssdk/protocol/suites/cases/query-output.json @@ -349,5 +349,46 @@ "stringMember": "" } } + }, + { + "description": "ListOfTimeStamp with known values unmarshalled correctly", + "given": { + "response": { + "status_code": 200, + "body": "1398796238.1232591234567.123" + } + }, + "when": { + "action": "unmarshall", + + "operation": "AllTypes" + }, + "then": { + "deserializedAs": { + "ListOfTimeStamp": [1398796238123,2591234567123] + } + } + }, + { + "description": "MapOfTimeStamp with known values unmarshalled correctly", + "given": { + "response": { + "status_code": 200, + "body": "test11398796238.123test22591234567.123" + } + }, + "when": { + "action": "unmarshall", + + "operation": "AllTypes" + }, + "then": { + "deserializedAs": { + "MapOfTimeStamp": { + "test1": "1398796238123", + "test2": "2591234567123" + } + } + } } ] \ No newline at end of file diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml index 868eade2ed6e..b97ffdd912aa 100644 --- a/test/protocol-tests/pom.xml +++ b/test/protocol-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json index d15bc34f6116..9f948d7f3a70 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/awsjson/service-2.json @@ -169,6 +169,10 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "UnixTimestamp":{ + "type":"timestamp", + "timestampFormat":"unixTimestamp" + }, "ListOfAllTypesStructs":{ "type":"list", "member":{"shape":"AllTypesStructure"} @@ -300,12 +304,12 @@ "Timestamp":{"type":"timestamp"}, "ListOfTimeStamp":{ "type":"list", - "member":{"shape":"Timestamp"} + "member":{"shape":"UnixTimestamp"} }, "MapOfTimeStamp":{ "type":"map", "key":{"shape":"String"}, - "value":{"shape":"Timestamp"} + "value":{"shape":"UnixTimestamp"} }, "MyDocument": { "type": "structure", diff --git a/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json index 934ce562522c..6d6a8bf11141 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/query/service-2.json @@ -87,7 +87,9 @@ "structWithNestedTimestampMember":{"shape":"StructWithTimestamp"}, "blobArg":{"shape":"BlobType"}, "blobMap":{"shape":"BlobMapType"}, - "listOfBlobs":{"shape":"ListOfBlobsType"} + "listOfBlobs":{"shape":"ListOfBlobsType"}, + "ListOfTimeStamp": {"shape": "ListOfTimeStamp"}, + "MapOfTimeStamp": {"shape": "MapOfTimeStamp"} } }, "BlobMapType":{ @@ -213,6 +215,19 @@ "NestedTimestamp":{"shape":"Timestamp"} } }, + "ListOfTimeStamp":{ + "type":"list", + "member":{"shape":"UnixTimestamp","locationName":"item"} + }, + "MapOfTimeStamp":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"UnixTimestamp"} + }, + "UnixTimestamp":{ + "type":"timestamp", + "timestampFormat":"unixTimestamp" + }, "ImplicitPayloadException":{ "type":"structure", "members":{ diff --git a/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json b/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json index 6701ab2fbb17..18766fafc6e0 100644 --- a/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json +++ b/test/protocol-tests/src/main/resources/codegen-resources/restjson/service-2.json @@ -393,6 +393,10 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "UnixTimestamp":{ + "type":"timestamp", + "timestampFormat":"unixTimestamp" + }, "JsonValuesStructure":{ "type":"structure", "members":{ @@ -771,12 +775,12 @@ "Timestamp":{"type":"timestamp"}, "ListOfTimeStamp":{ "type":"list", - "member":{"shape":"Timestamp"} + "member":{"shape":"UnixTimestamp"} }, "MapOfTimeStamp":{ "type":"map", "key":{"shape":"String"}, - "value":{"shape":"Timestamp"} + "value":{"shape":"UnixTimestamp"} }, "EventStreamOperationRequest": { "type": "structure", diff --git a/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/timeout/async/AsyncApiCallTimeoutTest.java b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/timeout/async/AsyncApiCallTimeoutTest.java index 7ad0319a2c7b..dac122f87fee 100644 --- a/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/timeout/async/AsyncApiCallTimeoutTest.java +++ b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/timeout/async/AsyncApiCallTimeoutTest.java @@ -15,10 +15,6 @@ package software.amazon.awssdk.protocol.tests.timeout.async; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; @@ -36,7 +32,10 @@ import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.core.exception.ApiCallTimeoutException; import software.amazon.awssdk.core.retry.RetryPolicy; +import software.amazon.awssdk.http.HttpExecuteResponse; +import software.amazon.awssdk.http.SdkHttpResponse; import software.amazon.awssdk.protocol.tests.timeout.BaseApiCallTimeoutTest; +import software.amazon.awssdk.protocol.tests.util.MockAsyncHttpClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonAsyncClient; import software.amazon.awssdk.services.protocolrestjson.model.AllTypesResponse; @@ -104,13 +103,34 @@ protected WireMockRule wireMock() { @Test public void increaseTimeoutInRequestOverrideConfig_shouldTakePrecedence() { - stubFor(post(anyUrl()) - .willReturn(aResponse().withStatus(200).withBody("{}").withFixedDelay(DELAY_AFTER_TIMEOUT))); + MockAsyncHttpClient mockClient = new MockAsyncHttpClient(); + ProtocolRestJsonAsyncClient asyncClient = createClientWithMockClient(mockClient); + mockClient.stubNextResponse(mockResponse(200)); + mockClient.withFixedDelay(DELAY_AFTER_TIMEOUT); + CompletableFuture allTypesResponseCompletableFuture = - client.allTypes(b -> b.overrideConfiguration(c -> c.apiCallTimeout(Duration.ofMillis(DELAY_AFTER_TIMEOUT + 1000)))); + asyncClient.allTypes(b -> b.overrideConfiguration(c -> c.apiCallTimeout(Duration.ofMillis(DELAY_AFTER_TIMEOUT + 1000)))); AllTypesResponse response = allTypesResponseCompletableFuture.join(); assertThat(response).isNotNull(); } + public ProtocolRestJsonAsyncClient createClientWithMockClient(MockAsyncHttpClient mockClient) { + return ProtocolRestJsonAsyncClient.builder() + .region(Region.US_WEST_1) + .httpClient(mockClient) + .credentialsProvider(() -> AwsBasicCredentials.create("akid", "skid")) + .overrideConfiguration(b -> b.apiCallTimeout(Duration.ofMillis(TIMEOUT)) + .retryPolicy(RetryPolicy.none())) + .build(); + } + + private HttpExecuteResponse mockResponse(int statusCode) { + return HttpExecuteResponse.builder() + .response(SdkHttpResponse.builder() + .statusCode(statusCode) + .build()) + .build(); + } + } diff --git a/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/util/MockAsyncHttpClient.java b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/util/MockAsyncHttpClient.java new file mode 100644 index 000000000000..bbb4478650e3 --- /dev/null +++ b/test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/util/MockAsyncHttpClient.java @@ -0,0 +1,89 @@ +package software.amazon.awssdk.protocol.tests.util; + +import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely; + +import java.nio.ByteBuffer; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import org.reactivestreams.Subscriber; +import org.reactivestreams.Subscription; +import software.amazon.awssdk.http.HttpExecuteResponse; +import software.amazon.awssdk.http.async.AsyncExecuteRequest; +import software.amazon.awssdk.http.async.SdkAsyncHttpClient; +import software.amazon.awssdk.http.async.SdkHttpContentPublisher; +import software.amazon.awssdk.utils.IoUtils; + +/** + * Mock implementation of {@link SdkAsyncHttpClient}. + */ +public class MockAsyncHttpClient implements SdkAsyncHttpClient { + private HttpExecuteResponse nextResponse; + private long fixedDelay; + + @Override + public CompletableFuture execute(AsyncExecuteRequest request) { + + byte[] content = nextResponse.responseBody().map(p -> invokeSafely(() -> IoUtils.toByteArray(p))) + .orElseGet(() -> new byte[0]); + + request.responseHandler().onHeaders(nextResponse.httpResponse()); + request.responseHandler().onStream(new ResponsePublisher(content)); + + try { + Thread.sleep(fixedDelay); + } catch (InterruptedException e) { + } + + return CompletableFuture.completedFuture(null); + } + + @Override + public void close() { + } + + public void stubNextResponse(HttpExecuteResponse nextResponse) { + this.nextResponse = nextResponse; + } + + public void withFixedDelay(long fixedDelay) { + this.fixedDelay = fixedDelay; + } + + private static class ResponsePublisher implements SdkHttpContentPublisher { + private final byte[] content; + + private ResponsePublisher(byte[] content) { + this.content = content; + } + + @Override + public Optional contentLength() { + return Optional.of((long) content.length); + } + + @Override + public void subscribe(Subscriber s) { + s.onSubscribe(new Subscription() { + private boolean running = true; + + @Override + public void request(long n) { + if (n <= 0) { + running = false; + s.onError(new IllegalArgumentException("Demand must be positive")); + } else if (running) { + running = false; + s.onNext(ByteBuffer.wrap(content)); + s.onComplete(); + } + } + + @Override + public void cancel() { + running = false; + } + }); + } + } + +} diff --git a/test/region-testing/pom.xml b/test/region-testing/pom.xml index 1ca3f17a6b0b..7bb6cb15ba43 100644 --- a/test/region-testing/pom.xml +++ b/test/region-testing/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/ruleset-testing-core/pom.xml b/test/ruleset-testing-core/pom.xml index e8f96659fe3f..494648125feb 100644 --- a/test/ruleset-testing-core/pom.xml +++ b/test/ruleset-testing-core/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/s3-benchmarks/pom.xml b/test/s3-benchmarks/pom.xml index d65b74c1619d..6ee9cd894393 100644 --- a/test/s3-benchmarks/pom.xml +++ b/test/s3-benchmarks/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/sdk-benchmarks/pom.xml b/test/sdk-benchmarks/pom.xml index 0778a3aa83a2..c47f2857a68b 100644 --- a/test/sdk-benchmarks/pom.xml +++ b/test/sdk-benchmarks/pom.xml @@ -19,7 +19,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml diff --git a/test/sdk-native-image-test/pom.xml b/test/sdk-native-image-test/pom.xml index 14767b6b6817..02449dc56d87 100644 --- a/test/sdk-native-image-test/pom.xml +++ b/test/sdk-native-image-test/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/service-test-utils/pom.xml b/test/service-test-utils/pom.xml index cef4222ef5a6..cc20ae9cd8f9 100644 --- a/test/service-test-utils/pom.xml +++ b/test/service-test-utils/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml service-test-utils diff --git a/test/stability-tests/pom.xml b/test/stability-tests/pom.xml index 085c7a42d4be..99de82ca369a 100644 --- a/test/stability-tests/pom.xml +++ b/test/stability-tests/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/test/test-utils/pom.xml b/test/test-utils/pom.xml index f95215fa8814..67dc504b2b8f 100644 --- a/test/test-utils/pom.xml +++ b/test/test-utils/pom.xml @@ -21,7 +21,7 @@ software.amazon.awssdk aws-sdk-java-pom - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml test-utils diff --git a/test/tests-coverage-reporting/pom.xml b/test/tests-coverage-reporting/pom.xml index dda4da27063e..5e5d1a378d82 100644 --- a/test/tests-coverage-reporting/pom.xml +++ b/test/tests-coverage-reporting/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/third-party/pom.xml b/third-party/pom.xml index 0eb0d983db63..c869ed76620f 100644 --- a/third-party/pom.xml +++ b/third-party/pom.xml @@ -21,7 +21,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT third-party diff --git a/third-party/third-party-jackson-core/pom.xml b/third-party/third-party-jackson-core/pom.xml index 59b12dbfd375..77706e3bbc62 100644 --- a/third-party/third-party-jackson-core/pom.xml +++ b/third-party/third-party-jackson-core/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/third-party/third-party-jackson-dataformat-cbor/pom.xml b/third-party/third-party-jackson-dataformat-cbor/pom.xml index 889767c6960b..0c1d71ed7d99 100644 --- a/third-party/third-party-jackson-dataformat-cbor/pom.xml +++ b/third-party/third-party-jackson-dataformat-cbor/pom.xml @@ -20,7 +20,7 @@ third-party software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/utils/pom.xml b/utils/pom.xml index db8b409fdc35..586b35d5a90a 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -20,7 +20,7 @@ aws-sdk-java-pom software.amazon.awssdk - 2.20.2-SNAPSHOT + 2.20.47-SNAPSHOT 4.0.0 diff --git a/utils/src/main/java/software/amazon/awssdk/utils/async/FlatteningSubscriber.java b/utils/src/main/java/software/amazon/awssdk/utils/async/FlatteningSubscriber.java index bf68ee568789..7ff7b830eed0 100644 --- a/utils/src/main/java/software/amazon/awssdk/utils/async/FlatteningSubscriber.java +++ b/utils/src/main/java/software/amazon/awssdk/utils/async/FlatteningSubscriber.java @@ -235,7 +235,7 @@ private void handleOnCompleteState() { * result is subject to change. */ private boolean onCompleteNeeded() { - return allItems.isEmpty() && onCompleteCalledByUpstream && !terminalCallMadeDownstream; + return onCompleteCalledByUpstream && allItems.isEmpty() && !terminalCallMadeDownstream; } /** diff --git a/utils/src/main/java/software/amazon/awssdk/utils/cache/CachedSupplier.java b/utils/src/main/java/software/amazon/awssdk/utils/cache/CachedSupplier.java index 74a3362e9948..b0bf3f53bff1 100644 --- a/utils/src/main/java/software/amazon/awssdk/utils/cache/CachedSupplier.java +++ b/utils/src/main/java/software/amazon/awssdk/utils/cache/CachedSupplier.java @@ -54,10 +54,6 @@ public class CachedSupplier implements Supplier, SdkAutoCloseable { */ private static final Duration BLOCKING_REFRESH_MAX_WAIT = Duration.ofSeconds(5); - /** - * Random instance used for jittering refresh results. - */ - private static final Random JITTER_RANDOM = new Random(); /** * Used as a primitive form of rate limiting for the speed of our refreshes. This will make sure that the backing supplier has @@ -102,6 +98,11 @@ public class CachedSupplier implements Supplier, SdkAutoCloseable { */ private final Supplier> valueSupplier; + /** + * Random instance used for jittering refresh results. + */ + private final Random jitterRandom = new Random(); + private CachedSupplier(Builder builder) { Validate.notNull(builder.supplier, "builder.supplier"); Validate.notNull(builder.jitterEnabled, "builder.jitterEnabled"); @@ -323,7 +324,7 @@ private Duration maxStaleFailureJitter(int numFailures) { private Instant jitterTime(Instant time, Duration jitterStart, Duration jitterEnd) { long jitterRange = jitterEnd.minus(jitterStart).toMillis(); - long jitterAmount = Math.abs(JITTER_RANDOM.nextLong() % jitterRange); + long jitterAmount = Math.abs(jitterRandom.nextLong() % jitterRange); return time.plus(jitterStart).plusMillis(jitterAmount); } diff --git a/utils/src/main/java/software/amazon/awssdk/utils/cache/lru/LruCache.java b/utils/src/main/java/software/amazon/awssdk/utils/cache/lru/LruCache.java index 90bfebdf9e9f..6456e37d0bc0 100644 --- a/utils/src/main/java/software/amazon/awssdk/utils/cache/lru/LruCache.java +++ b/utils/src/main/java/software/amazon/awssdk/utils/cache/lru/LruCache.java @@ -21,6 +21,7 @@ import java.util.function.Function; import software.amazon.awssdk.annotations.SdkProtectedApi; import software.amazon.awssdk.annotations.ThreadSafe; +import software.amazon.awssdk.utils.Logger; import software.amazon.awssdk.utils.Validate; /** @@ -40,6 +41,8 @@ @ThreadSafe public final class LruCache { + private static final Logger log = Logger.loggerFor(LruCache.class); + private static final int DEFAULT_SIZE = 100; private final Map> cache; @@ -146,10 +149,21 @@ private void addToQueue(CacheEntry entry) { */ private void evict() { leastRecentlyUsed.isEvicted(true); + closeEvictedResourcesIfPossible(leastRecentlyUsed.value); cache.remove(leastRecentlyUsed.key()); removeFromQueue(leastRecentlyUsed); } + private void closeEvictedResourcesIfPossible(V value) { + if (value instanceof AutoCloseable) { + try { + ((AutoCloseable) value).close(); + } catch (Exception e) { + log.warn(() -> "Attempted to close instance that was evicted by cache, but got exception: " + e.getMessage()); + } + } + } + public int size() { return cache.size(); } diff --git a/utils/src/test/java/software/amazon/awssdk/utils/async/FlatteningSubscriberTest.java b/utils/src/test/java/software/amazon/awssdk/utils/async/FlatteningSubscriberTest.java index 4f8639fd544e..6993927924d7 100644 --- a/utils/src/test/java/software/amazon/awssdk/utils/async/FlatteningSubscriberTest.java +++ b/utils/src/test/java/software/amazon/awssdk/utils/async/FlatteningSubscriberTest.java @@ -18,10 +18,17 @@ import static org.mockito.Mockito.times; import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicInteger; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; +import org.reactivestreams.Publisher; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; @@ -195,10 +202,67 @@ public void requestsFromDownstreamDoNothingAfterOnError() { Mockito.verifyNoMoreInteractions(mockUpstream, mockDelegate); } + @Test + public void stochastic_dataFlushedBeforeOnComplete() { + ExecutorService exec = Executors.newSingleThreadExecutor(); + try { + for (int i = 0; i < 30_000_000; ++i) { + Publisher> iterablePublisher = subscriber -> subscriber.onSubscribe(new Subscription() { + @Override + public void request(long l) { + exec.submit(() -> { + subscriber.onNext(Collections.singletonList("data")); + subscriber.onComplete(); + }); + } + + @Override + public void cancel() { + } + }); + + AtomicInteger seen = new AtomicInteger(0); + CompletableFuture finished = new CompletableFuture<>(); + FlatteningSubscriber elementSubscriber = new FlatteningSubscriber<>(new Subscriber() { + @Override + public void onSubscribe(Subscription subscription) { + subscription.request(1); + } + + @Override + public void onNext(String s) { + seen.incrementAndGet(); + } + + @Override + public void onError(Throwable e) { + finished.completeExceptionally(e); + } + + @Override + public void onComplete() { + if (seen.get() != 1) { + finished.completeExceptionally( + new RuntimeException("Should have gotten 1 element before onComplete")); + } else { + finished.complete(null); + } + } + }); + + iterablePublisher.subscribe(elementSubscriber); + + finished.join(); + } + } finally { + exec.shutdown(); + } + } + private Subscription getDownstreamFromDelegate() { ArgumentCaptor subscriptionCaptor = ArgumentCaptor.forClass(Subscription.class); Mockito.verify(mockDelegate).onSubscribe(subscriptionCaptor.capture()); return subscriptionCaptor.getValue(); } -} \ No newline at end of file +} diff --git a/utils/src/test/java/software/amazon/awssdk/utils/cache/lru/LruCacheTest.java b/utils/src/test/java/software/amazon/awssdk/utils/cache/lru/LruCacheTest.java index 625e546c8a69..d11496c1bc6d 100644 --- a/utils/src/test/java/software/amazon/awssdk/utils/cache/lru/LruCacheTest.java +++ b/utils/src/test/java/software/amazon/awssdk/utils/cache/lru/LruCacheTest.java @@ -21,6 +21,7 @@ import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -113,6 +114,37 @@ void when_cacheFillsUp_ValuesAreEvictedFromCache() { verify(simpleValueSupplier, times(1)).apply(simpleTestKeys.get(4)); } + @Test + void when_closeableValuesAreEvicted_CloseMethodIsCalled() { + int cacheSize = 3; + int evictNum = 2; + LruCache cache = LruCache.builder(CloseableClass::new) + .maxSize(cacheSize) + .build(); + CloseableClass.reset(); + for (int i = 0; i < cacheSize + evictNum; i++) { + cache.get(i); + } + assertThat(CloseableClass.evictedItems()).isNotEmpty(); + assertThat(CloseableClass.evictedItems()).hasSize(evictNum); + assertThat(CloseableClass.evictedItems().get(0)).isEqualTo(0); + assertThat(CloseableClass.evictedItems().get(1)).isEqualTo(1); + } + + @Test + void when_closeableValuesAreEvicted_NoExceptionsAreThrownIfCloseFails() { + int cacheSize = 3; + int evictNum = 2; + LruCache cache = LruCache.builder(FaultyCloseableClass::new) + .maxSize(cacheSize) + .build(); + CloseableClass.reset(); + for (int i = 0; i < cacheSize + evictNum; i++) { + cache.get(i); + } + assertThat(CloseableClass.evictedItems()).isEmpty(); + } + @Test void when_mostRecentValueIsHit_ValuesAreReorderedCorrectly() { LruCache cache = simpleCache.get(); @@ -257,4 +289,42 @@ public String apply(Integer key) { return value; } } + + private static class CloseableClass implements AutoCloseable { + + private static List evictedList = new ArrayList<>(); + + private final Integer key; + CloseableClass(Integer key) { + this.key = key; + } + public Integer get() throws Exception { + return key; + } + + public static void reset() { + evictedList = new ArrayList<>(); + } + + public static List evictedItems() { + return Collections.unmodifiableList(evictedList); + } + + @Override + public void close() { + evictedList.add(key); + } + } + + private static class FaultyCloseableClass extends CloseableClass { + + FaultyCloseableClass(Integer key) { + super(key); + } + + @Override + public void close() { + throw new RuntimeException("Could not close resources!"); + } + } }